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 直接复制这条命令执行即可

本星球包含了海量运维、安全、设计微服务k8s、Python干货分享、提供最完整的指引,帮助你轻松掌握ChatGPT理论和实战应用场景、如何变现、如何正确使用AI!!时代赋予的机遇,你可躺平,但生活从不手软,你赚的每一分钱都是成长的变现!!赶紧抓住这个巨大的风口红利,建议跟着这个课程来学习,相信能带你成为ChatGPT、技术大师!

posted @ 2020-07-08 16:19  seaskyccl  阅读(2778)  评论(0编辑  收藏  举报