您好,登錄后才能下訂單哦!
安裝過程中的問題
https://kubernetes.io/docs/setup/independent/install-kubeadm/
官網ubuntu安裝命令
apt-get update && apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubelet kubeadm kubectl
apt-mark hold kubelet kubeadm kubectl
1、源問題
此處kubernetes的源 我選擇的ustc源
因此/etc/apt/sources.list.d/kubernetes.list文件需要添加(ubuntu16.04 代號為xenial),
deb https://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial main
軟件源更改 /etc/apt/sources.list
# 默認注釋了源碼倉庫,如有需要可自行取消注釋
deb https://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse#
預發布軟件源,不建議啟用# deb https://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
2、swap問題
kubernetes需要關閉swap
swapoff -a
同時把/etc/fstab包含swap那行記錄刪掉。
3、image問題
安裝好kubectl,kubeadm,kubelet之后,使用kubectl init進行初始化,初始化的時候默認使用國外的鏡像。
因此可以使用kubeadm config images lsit --kunernetes-version v1.12.2(自己的版本號)查看k8s都需要那些image,可以事先使用國內能訪問的網站下載下來
使用kubeadm初始化的時候無法拉取鏡像
推薦使用anjia0532的鏡像,機器人自動跟官方同步,非常及時。
docker pull anjia0532/google-containers.kube-controller-manager-amd64:v1.11.2
docker pull anjia0532/google-containers.kube-apiserver-amd64:v1.11.2
docker pull anjia0532/google-containers.kube-scheduler-amd64:v1.11.2
docker pull anjia0532/google-containers.kube-proxy-amd64:v1.11.2
docker pull anjia0532/google-containers.pause:3.1
docker pull anjia0532/google-containers.etcd-amd64:3.2.18
docker pull anjia0532/google-containers.coredns:1.1.3
然后重新tag
docker tag anjia0532/google-containers.kube-controller-manager-amd64:v1.11.2 k8s.gcr.io/kube-controller-manager-amd64:v1.11.2
docker tag anjia0532/google-containers.kube-apiserver-amd64:v1.11.2 k8s.gcr.io/kube-apiserver-amd64:v1.11.2
docker tag anjia0532/google-containers.kube-scheduler-amd64:v1.11.2 k8s.gcr.io/kube-scheduler-amd64:v1.11.2
docker tag anjia0532/google-containers.kube-proxy-amd64:v1.11.2 k8s.gcr.io/kube-proxy-amd64:v1.11.2
docker tag anjia0532/google-containers.pause:3.1 k8s.gcr.io/pause:3.1
docker tag anjia0532/google-containers.etcd-amd64:3.2.18 k8s.gcr.io/etcd-amd64:3.2.18
docker tag anjia0532/google-containers.coredns:1.1.3 k8s.gcr.io/coredns:1.1.3
再刪掉原來的image
docker rmi [imagename]
4、join加入master時的問題
因為我的測試機時克隆的,所以3個主機名字是一樣的,加入的時候
kubeadm join IP:6443 --token xuzad4.qkfdi57gal2bkobo
在master上 kubectl get nodes 看不到加入的節點,發現問題的原因是主機名相同,修改主機名,Ubuntu修改方法 編輯/etc/hostname
修改完成之后使用kubeadm reset在節點主機上使用,重置,然后在使用kubeadm join命令,加入成功。
5、join之后各節點需要運行一些組件
kubectl get nodes
可以查看到現有的節點仍處于not ready狀態,當各節點需要運行的組件都啟動正常之后會變為ready狀態
可以通過
kubectl get pod --all-namespaces
查看組件啟動情況,若有組件未啟動成功,可以使用
kubectl describe pod (上一命令查到的NAME) --namespace=kube-system
節點在ready的時候會創建一些容器,需要上邊列出的7個image中的一些,所以在節點機器上也要下載部分第3部中的image
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。