1. 程式人生 > 其它 >Ubuntu安裝k8s叢集遇到的問題及解決辦法【都已解決】

Ubuntu安裝k8s叢集遇到的問題及解決辦法【都已解決】

執行kubeadm init叢集初始化時遇到:

[WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd".

[警告IsDockerSystemdCheck]:檢測到“cgroupfs”作為Docker cgroup驅動程式。 推薦的驅動程式是“systemd”。

所以我們更換一下驅動。

當時忘記截圖,圖片來自下面連結的大佬。

解決前:

解決方法:

修改docker

由於Ubuntu預設沒有設定root,所以設定一下root使用者

$ sudo passwd root
$ su root

輸入密碼後,切換root使用者:su root

修改 /etc/docker/daemon.json

$ vim  /etc/docker/daemon.json

#加入以下內容
{
        "registry-mirrors": ["https://y0qd3iq.mirror.aliyuncs.com"],
		"exec-opts":["native.cgroupdriver=systemd"]

}

然後重新載入json配置,重啟docker服務

$ systemctl daemon-reload
$ systemctl restart docker

解決後:

$ docker info | grep Cgrou

參考連結:https://www.cnblogs.com/liuyi778/p/12123994.html

解決kubernetes v1.21.1 從 registry.aliyuncs.com/google_containers/coredns/coredns:v1.8.0 拉取映象失敗的問題

雖然我已經配置了阿里映象倉庫,但是還是無法下載coredns。

報錯資訊

Pulled registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.13-0

failed to pull image "registry.cn-hangzhou.aliyuncs.com/google_containers/coredns/coredns:v1.8.0": output: Error response from daemon: pull access denied for registry.cn-hangzhou.aliyuncs.com/google_containers/coredns/coredns, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

, error: exit status 1

解決方案

#1.手動下載映象 
hadoop@master:~$ docker pull coredns/coredns
#2.檢視kubeadm需要映象
hadoop@master:~$ kubeadm config images list 
#3.檢視映象
hadoop@master:~$ docker images
#4.打標籤,修改名稱
hadoop@master:~$ docker tag coredns/coredns:latest registry.aliyuncs.com/google_containers/coredns/coredns:v1.8.0
#5.刪除多餘映象
hadoop@master:~$ docker rmi coredns/coredns:latest

參考連結:https://blog.51cto.com/8999a/2784605

解決flannel無法下載問題

檢視所有節點的狀態:

$ kubectl get nodes
NAME       STATUS     ROLES    AGE     VERSION
master01   NotReady   master   3m21s   v1.19.3
node01     NotReady   <none>   71s     v1.19.3
node02     NotReady   <none>   56s     v1.19.3

發現STATUSNotReady,是因為我們還沒有安裝網路元件。

安裝網路:

$ kubectl apply -f https://docs.projectcalico.org/v3.14/manifests/calico.yaml

再次檢測,已經Ready

$ kubectl get nodes
NAME       STATUS   ROLES    AGE     VERSION
master01   Ready    master   4m32s   v1.19.3
node01     Ready    <none>   2m22s   v1.19.3
node02     Ready    <none>   2m7s    v1.19.3

參考連結:https://www.pkslow.com/archives/install-kubernetes-on-ubuntu-with-kubeadm

搭建k8s叢集,master節點初始化init模板

$ sudo kubeadm init --apiserver-advertise-address=10.60.238.130 --image-repository registry.aliyuncs.com/google_containers  --kubernetes-version v1.21.1   --ignore-preflight-errors=Swap  --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16

其中需要修改的地方:

--apiserver-advertise-address: 自己的master節點的IP地址

--kubernetes-version: 自己的kubernetes版本,可以通過 kubectl version 進行檢視