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 直接復制這條命令執行即可