日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

Ubuntu下搭建Kubernetes集群(3)--k8s部署

發布時間:2024/10/12 Ubuntu 109 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ubuntu下搭建Kubernetes集群(3)--k8s部署 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 關閉swap并關閉防火墻

首先,我們需要先關閉swap和防火墻,否則在安裝Kubernetes時會導致不成功:

# 臨時關閉 swapoff -a# 編輯/etc/fstab,注釋掉包含swap的那一行即可,重啟后可永久關閉ufw disable

2.配置阿里源

sudo echo "deb http://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list

然后更新下:

sudo apt update

如果遇到以下問題:

可以記下提示的PUBKEY的最后8位,這里是BA07F4FB,然后執行:

gpg --keyserver keyserver.ubuntu.com --recv-keys BA07F4FB gpg --export --armor BA07F4FB | sudo apt-key add - sudo apt-get update

3. 安裝組件

sudo apt install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl #確保不會被自動更新

4. 配置kubelet的cgroup drive

需要確保kubelet的cgroup drive在docker的一致。
分別可以通過以下命令查看:

docker info | grep -i cgroupcat /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

若顯示不一樣,則添加或修改Environment="KUBELET_CGROUP_ARGS=--cgroup-dirver=cgroupfs":

systemctl daemon-reload systemctl restart kubelet

5. 啟動kubelet

systemctl enable kubelet && systemctl start kubelet

6. 下載K8S的Docker鏡像

在/etc/apt/sources.list中添加阿里源:

deb http://mirrors.aliyun.com/ubuntu/ xenial main deb-src http://mirrors.aliyun.com/ubuntu/ xenial maindeb http://mirrors.aliyun.com/ubuntu/ xenial-updates main deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates maindeb http://mirrors.aliyun.com/ubuntu/ xenial universe deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universedeb http://mirrors.aliyun.com/ubuntu/ xenial-security main deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe

sudo apt update更新下源。

首先使用kubeadm config images list顯示我們需要下載的鏡像。
uploading-image-472461.png

然后從mirrorgooglecontainers上把這些鏡像都拉下來,以免在初始化的時候從k8s.gcr.io拉取:

docker pull mirrorgooglecontainers/kube-apiserver:v1.14.2 docker pull mirrorgooglecontainers/kube-controller-manager:v1.14.2 docker pull mirrorgooglecontainers/kube-scheduler:v1.14.2 docker pull mirrorgooglecontainers/kube-proxy:v1.14.2 docker pull mirrorgooglecontainers/pause:3.1 docker pull mirrorgooglecontainers/etcd:3.3.10 docker pull coredns/coredns:1.3.1

具體版本請自行修改。

然后修改tag成k8s執行init檢查的鏡像:

docker tag mirrorgooglecontainers/kube-apiserver:v1.14.2 k8s.gcr.io/kube-apiserver:v1.14.2 docker tag mirrorgooglecontainers/kube-controller-manager:v1.14.2 k8s.gcr.io/kube-controller-manager:v1.14.2 docker tag mirrorgooglecontainers/kube-scheduler:v1.14.2 k8s.gcr.io/kube-scheduler:v1.14.2 docker tag mirrorgooglecontainers/kube-proxy:v1.14.2 k8s.gcr.io/kube-proxy:v1.14.2 docker tag mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1 docker tag mirrorgooglecontainers/etcd:3.3.10 k8s.gcr.io/etcd:3.3.10 docker tag coredns/coredns:1.3.1 k8s.gcr.io/coredns:1.3.1

注意,至此基礎的組件都安裝完成,接下來要根據是master節點還是普通node節點來分別配置。

7. master節點配置

在master節點上運行:

kubeadm init --pod-network-cidr=10.0.0.0/24 --kubernetes-version=v1.14.2 --apiserver-advertise-address=10.0.2.15

注意:

pod-network-cidr: 選項--pod-network-cidr=10.0.0.0/24表示集群將使用網絡的子網范圍;選項--kubernetes-version=v1.14.2指定K8S版本,必須和前面導入的鏡像一致。選項--apiserver-advertise-address表示綁定的網卡IP,這里是指定所用網絡的網卡。若執行kubeadm init出錯或強制終止,則再需要執行該命令時,需要先執行kubeadm reset重置。

執行成功后,它提示還需要執行:

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

此外最后還會提示其他節點加入集群時的命令:

kubeadm join 10.0.2.15:6443 --token zuhiop.bmxq2jofv1j68o9o \--discovery-token-ca-cert-hash sha256:b65ca09d1f18ef0af3ded2c831c609dfe48b19c5dc53a8398af5b735603828fb

不過需要注意的是這里的token值24小時后會失效,因此,當以后還想加入節點時,可以先用kubeadm token list命令查看當前的token表,并在master節點上執行openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'來查看hash。

此時我們查看網絡狀態kubectl get pod -n kube-system,可以發現都處于Pending阻塞狀態,此時,我們需要配置網絡,直接使用Calico,即執行:

kubectl apply -f https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/rbac-kdd.yaml kubectl apply -f https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yaml

(注意這里也是有版本號的,如果不是很清楚是多少,可以直接訪問官網獲取最新的進行嘗試:https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/)

過段時間,再執行kubectl get pod -n kube-system就會發現都處于running狀態了。

最后將master設為工作節點:

kubectl taint nodes --all node-role.kubernetes.io/master-

執行成功時會顯示

node/xl-virtualbox untainted

對于mater至此配置成功,可以使用kubectl get nodes命令查看節點狀態。當然目前只有一個master節點。

8.普通工作節點

對于普通的node節點,只需執行:

kubeadm join 10.0.2.15:6443 --token zuhiop.bmxq2jofv1j68o9o \--discovery-token-ca-cert-hash sha256:b65ca09d1f18ef0af3ded2c831c609dfe48b19c5dc53a8398af5b735603828fb

就可以了。

如果此時在master節點上使用kubectl get nodes查看節點的狀態時'NotReady',請在對應主機上重啟docker服務即可:

systemctl restart docker

最后,可以看到兩個節點都能正常工作了:

PS:
為了每臺節點顯示名稱不一樣,最好是給每個節點設置不同的hostname,可以通過以下命令修改:

hostnamectl set-hostname new-name

轉載于:https://www.cnblogs.com/xl2432/p/10933022.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Ubuntu下搭建Kubernetes集群(3)--k8s部署的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。