亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

kubeadm安裝k8s集群1.17版本

發布時間:2020-04-04 04:47:04 來源:網絡 閱讀:391 作者:wx5c1cfd6e22842 欄目:系統運維

kubeadm安裝k8s集群1.17版本

一、安裝要求:

滿足以下條件
一臺或多臺機器,操作系統 CentOS7.x-86_x64
硬件配置:2GB或更多RAM,2個CPU或更多CPU,硬盤30GB或更多
集群中所有機器之間網絡互通
可以訪問外網,需要拉取鏡像
禁止swap分區

說在前面的話,kubeadm是k8s官方推出的一個用于快速部署一套k8s集群的工具,而在近幾年現在kubeadm上生產的公司也有了,不過對于各個方面對于集群的管理以及二次性的開發,大多數都是采用二進制的方式進行去部署生產上的k8s集群,由于k8s版本更新比較頻繁,像對于拿k8s集群進行一些測試方面的操作,平時希望自己能夠快速的部署一套進行測試,而對于二進制以及Ansible部署的方式當然也可以部署,不過二進制就慢了很多,像ansible的話還得需要一臺服務器單獨拿出來做管理節點,對于我們平時拿虛擬機去測試的話,如果自己的機器比較緊張,kubeadm也是一個比較不錯的選擇,另外也是嘗試一下新版本的k8s,緊跟官方新版本的腳步。

話不多說,進入正題

在kubeadm中有兩條重要的命令,一個是kubeadm init,一個是kubeadm join, init 主要的實現就是去創建一個master節點,而在運行init之后,首先會運行一系列的輸出,首先它會檢查你的docker版本或者你的swap有沒有關閉,因為docker首先是必須要運行的,在k8s集群中,docker是用來啟動我們的容器和鏡像的下載的,而swap需要進行關閉,這是k8s官方提出的一個默認的規則,在k8s-1.8之后就是需要你關閉swap,否則會出現報錯,目的開啟swap會占用大的內存,也會對性能影響很大的消耗。

第二它會生成一個用來認證k8s組件之間進行調用的CA證書,證書有兩套,第一個就是k8s的證書,另一套就是etcd的證書,而這個證書kubeadm安裝的放置證書的位置在/etc/kubernetes/pki下面。

第三它會把kubelet、controller-manager和scheduler等組件的配置文件寫到/etc/kubernets/目錄中,里面包含了一些證書文件,這些主要用來連接api-server,除了上面幾個配置文件,還會生成一個管理相關的admin.conf文件

第四它會生成token文件,如果其他節點加入進來到master的話,就會使用到這個token

第五設置一些允許節點以 Bootstrap Tokens) 和 TLS bootstrapping 方式加入集群的必要的操作
設置csr請求自動認證的機制,這個的話,kubeadm是自己做好的,部署過二進制的應該知道,當node加入進來的時候,我們需要對它授權approve,手動允許加入集群中

第六,部署dns服務,kube-proxy插件,當然一般DNS服務需要我們部署好flannel網絡插件之后,這個服務才能運行起來

大概的流程是這樣的,詳情請看官網文檔
https://kubernetes.io/

二、集群配置

k8s-master            192.168.1.15
k8s-node1             192.168.1.11
k8s-node2             192.168.1.14

系統初始化配置(每個節點都需要配置)

關閉防火墻:

#systemctl stop firewalld
#systemctl disable firewalld

關閉selinux:

#sed -i 's/enforcing/disabled/' /etc/selinux/config  # 永久
#setenforce 0  # 臨時

關閉swap:

#swapoff -a  # 臨時
#vim /etc/fstab  # 永久

設置主機名:主機名根據自己的主機去使用這條命令
#hostnamectl set-hostname <hostname>

每臺主機添加hosts:

#cat >> /etc/hosts << EOF
192.168.1.15 k8s-master
192.168.1.11 k8s-node1
192.168.1.14 k8s-node2
EOF

將橋接的IPv4流量傳遞到iptables的鏈:

#cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
#sysctl --system  # 生效

時間同步:

#yum install ntpdate -y
#ntpdate us.pool.ntp.org

三、 所有節點安裝Docker/kubeadm/kubelet

Kubernetes默認CRI(容器運行時)為Docker,因此先安裝Docker。
3.1 安裝Docker

#wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
#yum -y install docker-ce-18.06.1.ce-3.el7
#systemctl enable docker && systemctl start docker
#docker --version
Docker version 18.06.1-ce, build e68fc7a

鏡像加速劑
Daocloud公司建議使用,提高鏡像下載速度,使用k8s官方默認的cgroup的

systemd
#more /etc/docker/daemon.json 
{
"registry-mirrors": ["http://f1361db2.m.daocloud.io"],
 "exec-opts":["native.cgroupdriver=systemd"]
}
重啟docker
#systemctl restart docker

3.2 所有節點添加阿里云YUM軟件源

#cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

3.3 所有節點安裝kubeadm,kubelet和kubectl
由于版本更新頻繁,這里指定版本號部署:

#yum install -y kubelet-1.17.0 kubeadm-1.17.0 kubectl-1.17.0
#systemctl enable kubelet

四、部署Kubernetes Master

在192.168.1.15(Master)執行
并將--apiserver -advertise-address的地址寫成master的地址
由于默認拉取鏡像地址k8s.gcr.io國內無法訪問,這里指定阿里云鏡像倉庫地址。
對于其他的辦法,或者就是提前將鏡像下載好,然后導進去,其實這塊阿里云倉庫默認已經有維護的k8s組件的鏡像了,這里直接可以使用

#kubeadm init \
--apiserver-advertise-address=192.168.1.15 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.17.0 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16

kubeadm init,執行init 初始化之后會顯示k8s的版本,第二就是檢查配置比如swap關閉,docker的cgroup,k8s默認需要的是systemd的驅動程序,另外需要去下載k8s組件所需要的鏡像,這里需要等待一會.....

[init] Using Kubernetes version: v1.17.0
[preflight] Running pre-flight checks
[preflight] Pulling images required for setting up a Kubernetes cluster
[preflight] This might take a minute or two, depending on the speed of your internet connection
[preflight] You can also perform this action in beforehand using 'kubeadm config images pull'

使用kubectl工具:
默認init初始化之后會輸入下面應該操作的步驟,直接執行

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

由于我們的網絡cni插件還沒有部署,所以它的狀態一直是未就緒狀態

#kubectl get nodes
NAME         STATUS     ROLES    AGE   VERSION
k8s-master   NotReady   master   19m   v1.17.0

五、安裝Pod網絡插件(CNI)

#mkdir /k8s-cni
#wget -P /k8s-cni https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

默認這個網絡插件下載會出現一些問題,拉取不到,導致網絡不通,節點無法準備就緒
可以改成這個鏡像地址,到flannel的yaml下,找到amd64有兩行放置flannel的鏡像的位置替換為:zhaocheng172/flannel:v0.11.0-amd64
確保flannel起來

#kubectl get pod -A
NAMESPACE     NAME                                 READY   STATUS    RESTARTS   AGE
kube-system   coredns-9d85f5447-htzgm              1/1     Running   0          27m
kube-system   coredns-9d85f5447-sz9kg              1/1     Running   0          27m
kube-system   etcd-k8s-master                      1/1     Running   0          27m
kube-system   kube-apiserver-k8s-master            1/1     Running   0          27m
kube-system   kube-controller-manager-k8s-master   1/1     Running   0          27m
kube-system   kube-flannel-ds-amd64-5r2qv          1/1     Running   0          4m13s
kube-system   kube-proxy-npgrm                     1/1     Running   0          27m
kube-system   kube-scheduler-k8s-master            1/1     Running   0          27m

六、加入Kubernetes Node

在192.168.1.11/14(Node)執行。
向集群添加新節點,執行在kubeadm init輸出的kubeadm join命令:
加入之后需要等待一會時間,因為它會像k8s的node節點都啟動兩個flanneld的進行,打通跨主機節點之間容器的通信,驗證命令kubectl get pod -A

#kubeadm join 192.168.1,15:6443 --token esce21.q6hetwm8si29qxwn \
  --discovery-token-ca-cert-hash sha256:00603a05805807501d7181c3d60b478788408cfe6cedefedb1f97569708be9c5

七、查看node是否加入進來

#kubectl get node
NAME         STATUS   ROLES    AGE   VERSION
k8s-master   Ready    master   55m   v1.17.0
k8s-node1    Ready    <none>   25m   v1.17.0
k8s-node2    Ready    <none>   25m   v1.17.0
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巫山县| 宝鸡市| 临海市| 许昌市| 诏安县| 丹凤县| 滨海县| 宁强县| 金山区| 襄樊市| 安化县| 隆昌县| 潢川县| 湖南省| 谷城县| 樟树市| 郎溪县| 定西市| 台山市| 黄浦区| 新竹县| 阳新县| 闻喜县| 江安县| 淅川县| 视频| 京山县| 会宁县| 宣恩县| 同心县| 明溪县| 桐柏县| 垦利县| 儋州市| 青川县| 城市| 保山市| 梧州市| 阳江市| 永州市| 竹溪县|