使用国内源安装k8s
安裝過程中的問題
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
?
轉載于:https://blog.51cto.com/forsk/2319115
總結
以上是生活随笔為你收集整理的使用国内源安装k8s的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vmx转换ofv模板,导入esxi
- 下一篇: Vue CLI 3.0脚手架如何在本地配