到這裡購買安裝包1.8.1
注意1.9.2安裝方式見商品頁面,與1.8.1有點差別,做一些配置和指令碼的優化
安裝
- master節點執行init-master.sh
- node節點執行init-node.sh
- node節點執行master輸出的kubeadm join命令
選裝,dashboard,master安裝完就可以裝這個了,這樣dashboard不會排程到node節點:
執行init-dashboard.sh
把type:ClusterIP改成 NodePort 然後訪問dashboard所在節點+埠號即可。
沒有然後了,任何問題聯絡我,100%安裝成功。
常見問題
kubelet服務啟動不了?
cgroup driver配置要相同
檢視docker cgroup driver:
docker info|grep Cgroup
有systemd和cgroupfs兩種,把kubelet service配置改成與docker一致
vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
KUBELET_CGROUP_ARGS=–cgroup-driver=cgroupfs #這個配置與docker改成一致
節點not ready ?
建議安裝calico網路,如果要把主節點當成node節點需要加個命令:
[root@dev-86-202 ~]# kubectl taint nodes --all node-role.kubernetes.io/master-
dashboard 訪問不了?
如果是NodePort方式訪問,那需要知道dashboard服務具體排程到哪個節點上去了。訪問那個節點的ip而不是master的ip。
不行的話把https 改成http試試。
檢視具體在哪個節點
kubectl get pod -n kube-system -o wide
拉取映象失敗?
可以把node節點與master節點的映象都在每個節點load一下。
dashboard crash, dns起不來?
可以把node節點與master節點的映象都在每個節點load一下。
192.168網段與calico網段衝突?
如果你恰好也是192.168網段,那麼建議修改一下calico的網段
這樣init
kubeadm init --pod-network-cidr=192.168.122.0/24 --kubernetes-version v1.8.1
修改calico.yaml
- name: FELIX_DEFAULTENDPOINTTOHOSTACTION
value: "ACCEPT"
# Configure the IP Pool from which Pod IPs will be chosen.
- name: CALICO_IPV4POOL_CIDR
value: "192.168.122.0/24"
- name: CALICO_IPV4POOL_IPIP
value: "always"
# Disable IPv6 on Kubernetes.
- name: FELIX_IPV6SUPPORT
value: "false"
dns 半天起不來?
dns映象如果load成功了的話,可能是機器配置太低,起的會非常慢,有朋友 單核2G上15分鐘沒啟動成功。 建議雙核4G以上資源
kubelet unhealthy?
[kubelet-check] The HTTP call equal to `curl -sSL http://localhost:10255/healthz/syncloop` failed with error: Get http://localhost:10255/healthz/syncloop: dial tcp 127.0.0.1:10255: getsockopt: connection refused.
[kubelet-check] It seems like the kubelet isn`t running or healthy.
可能是manifast已經存在,刪除即可:
[root@dev-86-205 kubeadm]# rm -rf /etc/kubernetes/manifests
時間超過24小時,節點加不進去?
[root@dev-86-208 test]# kubeadm token create
[kubeadm] WARNING: starting in 1.8, tokens expire after 24 hours by default (if you require a non-expiring token use --ttl 0)
887ac7.e82f0e13ad72c367
上面命令重新生成一下token,執行kubeadm join 時用上面的token替換一下,如果想永遠不過期init時把ttl設定成0
–token-ttl duration