19 个 K8S集群常见问题总结,建议收藏

DevOps技术栈

共 8986字,需浏览 18分钟

 ·

2023-05-10 23:14

    
      

来源:https://www.cnblogs.com/chalon/p/14415252.html


问题1:K8S集群服务访问失败?

925f391cb3aab139b515b7a53cdd4663.webp

e7a984bcd279f7fb9132cbf9ed56e180.webp

原因分析:证书不能被识别,其原因为:自定义证书,过期等。

解决方法:更新证书即可。

问题2:K8S集群服务访问失败?

      curl: (7) Failed connect to 10.103.22.158:3000Connection refused

原因分析:端口映射错误,服务正常工作,但不能提供服务。

解决方法:删除svc,重新映射端口即可。

      kubectl delete svc nginx-deployment

问题3:K8S集群服务暴露失败?

      Error from server (AlreadyExists): services "nginx-deployment" already exists

原因分析:该容器已暴露服务了。

解决方法:删除svc,重新映射端口即可。

问题4:外网无法访问K8S集群提供的服务?

原因分析:K8S集群的type为ClusterIP,未将服务暴露至外网。

解决方法:修改K8S集群的type为NodePort即可,于是可通过所有K8S集群节点访问服务。

      kubectl edit svc nginx-deployment

问题5:pod状态为ErrImagePull?

      readiness-httpget-pod   0/1     ErrImagePull   0          10s


1fbbb6a1b993a63f9f018b33c6676fc5.webp

原因分析:image无法拉取;

128865adc9f8e76298f1dc4f96d37cee.webp

28b10962934b2e8768a73484192232c9.webp

解决方法:更换镜像即可。

问题6:创建init C容器后,其状态不正常?

      NAME READY STATUS RESTARTS AGE
myapp-pod 0/1 Init:0/2 0 20s

原因分析:查看日志发现,pod一直出于初始化中;然后查看pod详细信息,定位pod创建失败的原因为:初始化容器未执行完毕。

      Error from server (BadRequest): container "myapp-container" in pod "myapp-pod" is waiting to start: PodInitializing


a8ade9af7046ba955286c5a251333142.webp

ee42e88c6ac4b9556869e239c8a3ad4d.webp

f5fb3ce705181f16112c6fe8e9b25de8.webp

      waiting for myservice

Server: 10.96.0.10
Address: 10.96.0.10:53

** server can't find myservice.default.svc.cluster.local: NXDOMAIN

*** Can'
t find myservice.svc.cluster.local: No answer
*** Can't find myservice.cluster.local: No answer
*** Can'
t find myservice.default.svc.cluster.local: No answer
*** Can't find myservice.svc.cluster.local: No answer
*** Can'
t find myservice.cluster.local: No answer

解决方法:创建相关service,将SVC的name写入K8S集群的coreDNS服务器中,于是coreDNS就能对POD的initC容器执行过程中的域名解析了。

      kubectl apply -f myservice.yaml


3854a817f6467be5b46b5afc1c021a94.webp

152595e131f30867054407a88ef006a7.webp

10f7506b4881a68359c15ee981eeddf1.webp

      NAME READY STATUS RESTARTS AGE

myapp-pod 0/1 Init:1/2 0 27m
myapp-pod 0/1 PodInitializing 0 28m
myapp-pod 1/1 Running 0 28m


aca9ec30098d4c887205b8391f483d3c.webp

问题7:探测存活pod状态为CrashLoopBackOff?

原因分析:镜像问题,导致容器重启失败。

解决方法:更换镜像即可。

e89f6061fa703248732fc5600bba7b98.webp

aa1e99830cd78af01416f9ca2440aa7e.webp

问题8:POD创建失败?

      readiness-httpget-pod 0/1 Pending 0 0s
readiness-httpget-pod 0/1 Pending 0 0s
readiness-httpget-pod 0/1 ContainerCreating 0 0s
readiness-httpget-pod 0/1 Error 0 2s
readiness-httpget-pod 0/1 Error 1 3s
readiness-httpget-pod 0/1 CrashLoopBackOff 1 4s
readiness-httpget-pod 0/1 Error 2 15s
readiness-httpget-pod 0/1 CrashLoopBackOff 2 26s
readiness-httpget-pod 0/1 Error 3 37s
readiness-httpget-pod 0/1 CrashLoopBackOff 3 52s
readiness-httpget-pod 0/1 Error 4 82s

原因分析:镜像问题导致容器无法启动。

d5bdec5595d942771e7865e2fe21027a.webp

解决方法:更换镜像。

8ecab16e4a374c169629341c77cbf1ac.webp

8ecab16e4a374c169629341c77cbf1ac.webp

问题9:POD的ready状态未进入?

      readiness-httpget-pod   0/1     Running   0          116s

原因分析:POD的执行命令失败,无法获取资源。

ff1dd7e2a78aa6a47e63f44693eec041.webp

解决方法:进入容器内部,创建yaml定义的资源

4fedbe49978188eb1fbf7cb65f7525ac.webp

d6793844099dd48098e565abfe38d08c.webp

问题10:pod创建失败?

cf0dbae4a05b1e152f2c5b898eae3f9c.webp

原因分析:yml文件内容出错—-使用中文字符;

解决方法:修改myregistrykey内容即可。

2424401caa13a2978923050e1223ccf3.webp

11、kube-flannel-ds-amd64-ndsf7插件pod的status为Init:0/1?

ebad09d20cd8e2d8591e9bcd1daa7db9.webp

排查思路:kubectl -n kube-system describe pod kube-flannel-ds-amd64-ndsf7 #查询pod描述信息;

5bac3feac7ac57034b4c00fc93693148.webp

原因分析:k8s-slave1节点拉取镜像失败。

解决方法:登录k8s-slave1,重启docker服务,手动拉取镜像。

f1982ea0f6defa7affbbb180648faa5e.webp

k8s-master节点,重新安装插件即可。

          kubectl create -f kube-flannel.yml;kubectl get nodes

6aa728179fdfa1767e38a53415b1e7f5.webp

12、K8S创建服务status为ErrImagePull?

364158a72e106f14199c2e14752c6f5e.webp

排查思路:

          kubectl describe pod test-nginx
        

9b415b3afb14c15537be26668d627889.webp

原因分析:拉取镜像名称问题。

解决方法:删除错误pod;重新拉取镜像;

          kubectl delete pod test-nginx;kubectl run test-nginx --image=10.0.0.81:5000/nginx:alpine

13、不能进入指定容器内部?

5634d4fae1e224161dc2648969873f51.webp

原因分析:yml文件comtainers字段重复,导致该pod没有该容器。

解决方法:去掉yml文件中多余的containers字段,重新生成pod。

0ff2ad46db781cf4468a7ca1c65ad31a.webp

3809945df6e4bb5e052bd96afee7b470.webp

14、创建PV失败?

5e1335f49a354e5edc163100f379b36a.webp

原因分析:pv的name字段重复。

解决方法:修改pv的name字段即可。

5d8d3246b3fc3362c6f6477ff4d14e03.webp

15、pod无法挂载PVC?

927f7c15b896addc81da64766bd73441.webp

217647d4b2a9c116281744b5b0c5933d.webp

原因分析:pod无法挂载PVC。

63d46549c735aaa799d399e2ae758f1b.webp

c0141f5c7ec27076c497c7d71e3056d1.webp

accessModes与可使用的PV不一致,导致无法挂载PVC,由于只能挂载大于1G且accessModes为RWO的PV,故只能成功创建1个pod,第2个pod一致pending,按序创建时则第3个pod一直未被创建;

解决方法:修改yml文件中accessModes或PV的accessModes即可。

ae84cd2b5e0af6f9500695b13bc9dbbf.webp

16、问题:pod使用PV后,无法访问其内容?

c56e99071e42304eb052f87c5ed37e67.webp

原因分析:nfs卷中没有文件或权限不对。

fd58591fb2b565b90ab929e26f811fef.webp

a48d55a4f4d652c4886db9bcd7b7489b.webp

解决方法:在nfs卷中创建文件并授予权限。

87727256faa518abd1c7e7be3abc8dc9.webp

51794ceb6e459f9808cf8669cd4ea214.webp

17、查看节点状态失败?

          Error from server (NotFound): the server could not find the requested resource (get services http:heapster:)

原因分析:没有heapster服务。

解决方法:安装promethus监控组件即可。

f89a280964850b695dd191c656aac050.webp

76036be0d3a5a3d8ed16885dd2ed084a.webp

18、pod一直处于pending’状态?

e8f560ce2281302f2f8242e0d8eeeeca.webp

原因分析:由于已使用同样镜像发布了pod,导致无节点可调度。

b1efd3d57282f60013a2071825dfb64a.webp

解决方法:删除所有pod后部署pod即可。

169f4d841ef60d7bff1b8067be949a0e.webp

19、helm安装组件失败?

            [root@k8s-master01 hello-world]# helm install

Error: This command needs 1 argument: chart nam

[root@k8s-master01 hello-world]# helm install ./
Error: no Chart.yaml exists in directory "/root/hello-world"

原因分析:文件名格式不对。

解决方法:mv chart.yaml Chart.yaml

d1ee155f6637aaf6f398ee497544578d.webp

- END -

            
              
                
                    
                      
                          
                            
                              
                                  
                                    
                                         
                                        推荐阅读 
                                        
                                          





                                
                                  31天拿下K8s含金量最高的CKA+CKS证书! Prometheus 高可用架构 Thanos
                                    
运维高可用架构的 6 大常规方案
运维监控指标全方面总结 我去,Linux 系统 CPU 100% 打满了! 解决 Linux 性能瓶颈的黄金 60 秒! 9 个实用 Shell 脚本,建议收藏!
详解 K8S Helm CI/CD发布流程
ES+Redis+MySQL,这套高可用架构设计太顶了! 一台服务器最大能支持多少条TCP连接? K8S运维必知必会的 Kubectl 命令总结
16 张图硬核讲解 Kubernetes 网络
史上最全 Jenkins Pipeline流水线详解 Jenkins 自动化部署实例讲解,另附安装教程! 主流监控系统 Prometheus 学习指南
                                  
                                      搭建一套完整的企业级 K8s 集群(二进制方式)
                                    
                                    
                                    
                                        40个 Nginx 常问面试题
                                      
                                    
                                        Linux运维工程师 50个常见面试题
                                      
                                    
                  
                    
                        
                            

点亮,服务器三年不宕机14d7291be623047a5fb188c0c4ad5e94.webp
浏览 110
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报