二進制k8s使用的一些問題報錯---持續補充中


二進制k8s部署后的一些問題解決

 

問題一:虛擬機掛起之后重開,發現etcd集群其中一個節點起不來(k8s-1)

用這個命令在k8s-1啟動,怎么樣都起不來:supervisorctl start etcd-server-7-128

用一個正常起了etcd的服務器(k8s-2)運行命令:

ETCDCTL_API=3 /opt/apps/etcd/etcdctl --cacert=/opt/apps/etcd/certs/ca.pem --cert=/opt/apps/etcd/certs/etcd-peer.pem --key=/opt/apps/etcd/certs/etcd-peer-key.pem --endpoints="https://10.4.7.128:2379,https://10.4.7.129:2379,https://10.4.7.130:2379" endpoint health

 

 

 

 說的128連接不了

 

查看128報錯信息:

 

 

 

etcd起不來,apiserver都起不了了

W1201 13:41:22.278707 8011 clientconn.go:1251] grpc: addrConn.createTransport failed to connect to {10.4.7.130:2379 0 <nil>}. Err :connection error: desc = "transport: Error while dialing dial tcp 10.4.7.130:2379: connect: net
work is unreachable". Reconnecting...

 

問題解決:檢查回環接口是否正常監聽127.0.0.1

etcd啟動文件有個監聽127.0.0.1的配置: /opt/apps/etcd/etcd-server-startup.sh 

 

查看該機器的回環網口,確實沒有監聽127.0.0.1

 

檢查下 ifcfg-lo,ip地址有設置成127.0.0.1 。 重啟網絡就可以了:systemctl restart network

 

 

問題二: kubectl get nodes 返回 No resources found.

查看報錯日志:/data/logs/kubernetes/kube-kubelet/kubelet.stdout.log

 

 

說這個k8s-node 用戶沒有權限

問題解決:想起部署文章有個這樣的用戶授權

 

 

 

重新運行下就好了:

kubectl create -f k8s-node.yaml 

kubectl get clusterrolebinding k8s-node 

 

 至於為啥沒有了這些信息。因為我后來把etcd節點從兩個增加到三個了,其中增加第3個節點的時候報錯,網上說要刪除這個data-dir目錄才能添加上,etcd是利用data-dir來進行數據的持久化保存的。之后要搞個etcd備份腳本才行,不然東西一多,數據壞了啥都沒有

別人給的etcd持久化備份腳本(先留着)

 1 cat bk_etcd.sh 
 2 #!/bin/bash
 3 set -e
 4 exec >> /opt/backup_week/backup_etcd.log
 5 
 6 Date=`date +%Y-%m-%d-%H-%M`
 7 EtcdEndpoints="localhost:2379"
 8 EtcdCmd="/opt/etcd/etcdctl"
 9 BackupDir="/opt/backup_week"
10 BackupFile="etcd.db.$Date"
11 
12 echo "`date` backup etcd..."
13 
14 export ETCDCTL_API=3
15 $EtcdCmd --endpoints $EtcdEndpoints snapshot save  $BackupDir/$BackupFile
16 
17 echo  "`date` backup done!"
View Code

 

 問題三:kubectl get pods -o wide 返回pod狀態為:ImagePullBackOff 

 

 查看pod的日志:kubectl describe pod nginx-ds-68x2r

 

 問題排查及解決:

1、首先檢查下docker的配置文件 /etc/docker/daemon.json是否有把私有倉庫地址添加進來 ——》 沒問題

 

2、curl 和 telnet harbor倉庫地址是否可以  ——》 沒問題

 

3、看看docker 是否有nginx這個鏡像  ——》 發現沒有

docker images

 

 4、嘗試重新拉取nginx鏡像  ——》報錯

 docker pull harbor.odljy.com/public/nginx:latest (前面應該要先運行下docker login 看看是否有登錄權限)

 

5、最后重啟docker和harbor服務就解決了,估計網絡有問題(之前有交代過虛擬機有關過機,還有掛起操作重起,估計影響到吧。。。)

然后跑pod的node要是能成功的話,本地應該是有nginx鏡像的

 

 get pod 也有返回了,不再是ImagePullBackOff 狀態

參考文檔:

http://dockone.io/article/10055

http://dockone.io/article/2247

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM