K8S與docker常見問題及解決辦法


1、docker容器處於dead狀態,使用刪除命令提示無法刪除

答:盡量避免快速刪除容器,當前暫未找到較好的辦法,除非重啟系統

2、k8s集群調度的時區設置

答:如果集群使用的yaml文件中的image鏡像本身已經設置好了時區那么可直接啟動,也可設置為configmap,從configmap中直接加載,或者使用mount的方式直接掛載本地/etc/localtime

3、報錯提示:Failed at step CHDIR spawning /usr/bin/kubelet: No such file or directory

答:可能出錯的地方:/usr/bin/kubelet二進制文件不存在,/var/lib/kubelet工作目錄不存在

4、K8S集群如何保證session共享?

5、K8S集群使用traefik實現負載均衡

答:traefik能實現動態熱更新后端配置文件,並且不需要額外安裝ingress controller,非常方便

6、如何實現K8S集群API的高可用?

答:api-server是無狀態的可以啟動多個,然后在前端再加一個nginx或者ha-proxy。而scheduler和controller都是直接用容器的方式啟動的

7、kube-proxy報錯kube-proxy[2241]: E0502 15:55:13.889842 2241 conntrack.go:42] conntrack returned error: error looking for path of conntrack: exec: "conntrack": executable file not found in $PATH,kubedns啟動成功,運行正常,但是service之間無法解析,kubernetes中的DNS解析異常

答:CentOS中安裝conntrack-tools包后重啟kubernetes集群即可。

8、k8s調度pod中的容器如何保證時間與當前系統一致?

答:在yaml文件中將本地/etc/localtime掛載至容器中,加入如下圖畫框所示部分內容即可

9、k8s使用nfs當做掛載目錄,出現創建pod失敗報錯的情況,如何解決?

答:很有可能是因為nfs的權限問題,比如pod運行rabbitmq應用,默認情況下,使用官方的rabbitmq運行的程序用戶是rabbitmq,對nfs掛載的目錄可能沒有操作寫入權限導致出錯,解決辦法是在nfs服務器上新建一個目錄,並且將這個目錄權限設置為rabbitmq用戶,然后就可以使用了。

10、創建etcd集群出現tls:bad證書的提示,如何解決?

答:很有可能是因為ca根證書不是從master節點拷貝過去,而是自己在node節點單獨生成導致的,刪除node的ca證書,從master節點拷貝ca證書過去重新生成etcd證書即可

11、etcd節點啟動報錯:member 6592a7647e207a6e has already been bootstrapped,如何解決?

答:這是因為節點已經存在,可能是因為之前這個節點已經加入過集群了,但是啟動參數那里設置的是new,所以需要將new修改為existing。

12、kubectl命令自動補全

答:source <(kubectl completion bash) && echo "source <(kubectl completion bash)" >> ~/.bashrc 直接復制這條命令執行即可


免責聲明!

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



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