当前位置: 首页 > news >正文

雅安城市建设网站宁波住房和城乡建设局网站首页

雅安城市建设网站,宁波住房和城乡建设局网站首页,免费的wordpress主题好,动漫设计公司一、排查顺序#xff1a; 查看node状态→查看pod状态→查看container状态→查看service流量是否路由到pod→查看ingress配置是否正确→查看kubelet系统日志 二、具体排查思路#xff1a; 1、排查node故障#xff1a; #查看各节点状态#xff1a; kubectl get node …一、排查顺序 查看node状态→查看pod状态→查看container状态→查看service流量是否路由到pod→查看ingress配置是否正确→查看kubelet系统日志 二、具体排查思路 1、排查node故障 #查看各节点状态 kubectl get node node-name#查看node事件 kubectl describe node node-name Node 本身宕机或者 Kubelet 无法启动会导致 Node 上面的 Pod 无法正常运行 已在运行的 Pod 无法正常终止 2、排查pod故障 #查看 Pod 状态 kubectl get pods pod-name -n namespace -o wide#查看 Pod 的 yaml 配置 kubectl get pods pod-name -n namespace -o yaml#查看 Pod 的事件 kubectl describe pods pod-name -n namespace#查看 Pod 容器日志 kubectl logs -n namespace pod-name [-c container-name]#常见错误 ##启动时的错误包括 ImagePullBackoff ImageInspectError ErrImagePull ErrImageNeverPull RegistryUnavailable InvalidImageName ##运行中的错误包括 CrashLoopBackOff RunContainerError KillContainerError VerifyNonRootError RunInitContainerError CreatePodSandboxError ConfigPodSandboxError KillPodSandboxError SetupNetworkError TeardownNetworkError 3、service故障排查 kubectl describe svc svc-name -n dev 4、ingress故障排查 kubectl describe ingress ingress-name -n dev 5、查看kubelet系统日志 journalctl -l -u kubelet -n 1000 kube-apiserver 日志 PODNAME$(kubectl -n kube-system get pod -l componentkube-apiserver -o jsonpath{.items[0].metadata.name}) kubectl -n kube-system logs $PODNAME --tail 100 kube-apiserver 无法启动会导致 集群不可访问已有的 Pod 和服务正常运行(依赖于 Kubernetes API 的除外) kube-controller-manager 日志 PODNAME$(kubectl -n kube-system get pod -l componentkube-controller-manager -o jsonpath{.items[0].metadata.name}) kubectl -n kube-system logs $PODNAME --tail 100 kube-scheduler 日志 PODNAME$(kubectl -n kube-system get pod -l componentkube-scheduler -o jsonpath{.items[0].metadata.name}) kubectl -n kube-system logs $PODNAME --tail 100 kube-controller-manager/kube-scheduler 异常会导致 复制控制器、节点控制器、云服务控制器等无法工作从而导致 Deployment、Service 等无法工作也无法注册新的 Node 到集群中来新创建的 Pod 无法调度(总是 Pending 状态) kube-dns 日志 PODNAME$(kubectl -n kube-system get pod -l k8s-appkube-dns -o jsonpath{.items[0].metadata.name}) kubectl -n kube-system logs $PODNAME -c kubedns Kubelet 日志 查看 Kubelet 日志需要首先 SSH 登录到 Node 上。 journalctl -l -u kubelet Kube-proxy 日志 Kube-proxy 通常以 DaemonSet 的方式部署 kubectl -n kube-system get pod -l componentkube-proxy NAME               READY     STATUS    RESTARTS   AGE kube-proxy-42zpn   1/1       Running   0          1d kube-proxy-7gd4p   1/1       Running   0          3d kube-proxy-87dbs   1/1       Running   0          4d kubectl -n kube-system logs kube-proxy-42zpn Kube-dns/Dashboard CrashLoopBackOff 由于 Dashboard 依赖于 kube-dns所以这个问题一般是由于 kube-dns 无法正常启动导致的。查看 kube-dns 的日志 kubectl logs --namespacekube-system $(kubectl get pods --namespacekube-system -l k8s-appkube-dns -o name) -c kubedns kubectl logs --namespacekube-system $(kubectl get pods --namespacekube-system -l k8s-appkube-dns -o name) -c dnsmasq kubectl logs --namespacekube-system $(kubectl get pods --namespacekube-system -l k8s-appkube-dns -o name) -c sidecar 三、异常排错 1、Node异常排错  Node NotReady Node 处于 NotReady 状态大部分是由于 PLEGPod Lifecycle Event Generator问题导致的。社区 issue #45419 目前还处于未解决状态。 NotReady 的原因比较多在排查时最重要的就是执行 kubectl describe node node name 并查看 Kubelet 日志中的错误信息。常见的问题及修复方法为 Kubelet 未启动或者异常挂起重新启动 Kubelet。CNI 网络插件未部署部署 CNI 插件。Docker 僵死API 不响应重启 Docker。磁盘空间不足清理磁盘空间比如镜像、临时文件等。 Node 节点加入 Kubernetes 集群后无法被调度怎么办 检查该节点的 taints 和 tolerations 是否与 Pod 的 selector 匹配检查该节点的资源使用情况是否满足 Pod 的调度要求确保该节点与 Kubernetes API server 的连接正常 2、pod异常排错 Pod 运行异常的排错方法。 一般来说无论 Pod 处于什么异常状态都可以执行以下命令来查看 Pod 的状态 kubectl get pod pod-name -o yaml 查看 Pod 的配置是否正确kubectl describe pod pod-name 查看 Pod 的事件kubectl logs pod-name [-c container-name] 查看容器日志 这些事件和日志通常都会有助于排查 Pod 发生的问题。 Pod 一直处于 Pending 状态 Pending 说明 Pod 还没有调度到某个 Node 上面。可以通过 kubectl describe pod pod-name 命令查看到当前 Pod 的事件进而判断为什么没有调度。如 $ kubectl describe pod mypod Events:Type     Reason            Age                From               Message----     ------            ----               ----               -------Warning  FailedScheduling  12s (x6 over 27s)  default-scheduler  0/4 nodes are available: 2 Insufficient cpu. 可能的原因包括 资源不足集群内所有的 Node 都不满足该 Pod 请求的 CPU、内存、GPU 或者临时存储空间等资源。解决方法是删除集群内不用的 Pod 或者增加新的 Node。HostPort 端口已被占用通常推荐使用 Service 对外开放服务端口检查该节点的 taints 和 tolerations 是否与 Pod 的 selector 匹配调整 Pod 的调度策略如使用 NodeSelector、Affinity 等 Pod 一直处于 Waiting 或 ContainerCreating 状态 首先还是通过 kubectl describe pod pod-name 命令查看到当前 Pod 的事件 $ kubectl -n kube-system describe pod nginx-pod Events:Type     Reason                 Age               From               Message----     ------                 ----              ----               -------Normal   Scheduled              1m                default-scheduler  Successfully assigned nginx-pod to node1Normal   SuccessfulMountVolume  1m                kubelet, gpu13     MountVolume.SetUp succeeded for volume config-volumeNormal   SuccessfulMountVolume  1m                kubelet, gpu13     MountVolume.SetUp succeeded for volume coredns-token-sxdmcWarning  FailedSync             2s (x4 over 46s)  kubelet, gpu13     Error syncing podNormal   SandboxChanged         1s (x4 over 46s)  kubelet, gpu13     Pod sandbox changed, it will be killed and re-created. 可以发现该 Pod 的 Sandbox 容器无法正常启动具体原因需要查看 Kubelet 日志 $ journalctl -u kubelet ... Mar 14 04:22:04 node1 kubelet[29801]: E0314 04:22:04.649912   29801 cni.go:294] Error adding network: failed to set bridge addr: cni0 already has an IP address different from 10.244.4.1/24 Mar 14 04:22:04 node1 kubelet[29801]: E0314 04:22:04.649941   29801 cni.go:243] Error while adding to cni network: failed to set bridge addr: cni0 already has an IP address different from 10.244.4.1/24 Mar 14 04:22:04 node1 kubelet[29801]: W0314 04:22:04.891337   29801 cni.go:258] CNI failed to retrieve network namespace path: Cannot find network namespace for the terminated container c4fd616cde0e7052c240173541b8543f746e75c17744872aa04fe06f52b5141c Mar 14 04:22:05 node1 kubelet[29801]: E0314 04:22:05.965801   29801 remote_runtime.go:91] RunPodSandbox from runtime service failed: rpc error: code 2 desc NetworkPlugin cni failed to set up pod nginx-pod network: failed to set bridge addr: cni0 already has an IP address different from 10.244.4.1/24 发现是 cni0 网桥配置了一个不同网段的 IP 地址导致删除该网桥网络插件会自动重新创建即可修复 $ ip link set cni0 down $ brctl delbr cni0 除了以上错误其他可能的原因还有 镜像拉取失败比如 配置了错误的镜像Kubelet 无法访问镜像国内环境访问 gcr.io 需要特殊处理私有镜像的密钥配置错误镜像太大拉取超时可以适当调整 kubelet 的 --image-pull-progress-deadline 和 --runtime-request-timeout 选项 CNI 网络错误一般需要检查 CNI 网络插件的配置比如 无法配置 Pod 网络无法分配 IP 地址 容器无法启动需要检查是否打包了正确的镜像或者是否配置了正确的容器参数 Pod 处于 ImagePullBackOff 状态 这通常是镜像名称配置错误或者私有镜像的密钥配置错误导致。这种情况可以使用 docker pull image 来验证镜像是否可以正常拉取。 $ kubectl describe pod mypod ... Events:Type Reason Age From Message---- ------ ---- ---- -------Normal Scheduled 36s default-scheduler Successfully assigned sh to k8s-agentpool1-38622806-0Normal SuccessfulMountVolume 35s kubelet, k8s-agentpool1-38622806-0 MountVolume.SetUp succeeded for volume default-token-n4pn6Normal Pulling 17s (x2 over 33s) kubelet, k8s-agentpool1-38622806-0 pulling image a1pineWarning Failed 14s (x2 over 29s) kubelet, k8s-agentpool1-38622806-0 Failed to pull image a1pine: rpc error: code Unknown desc Error response from daemon: repository a1pine not found: does not exist or no pull accessWarning Failed 14s (x2 over 29s) kubelet, k8s-agentpool1-38622806-0 Error: ErrImagePullNormal SandboxChanged 4s (x7 over 28s) kubelet, k8s-agentpool1-38622806-0 Pod sandbox changed, it will be killed and re-created.Normal BackOff 4s (x5 over 25s) kubelet, k8s-agentpool1-38622806-0 Back-off pulling image a1pineWarning Failed 1s (x6 over 25s) kubelet, k8s-agentpool1-38622806-0 Error: ImagePullBackOff 如果是私有镜像需要首先创建一个 docker-registry 类型的 Secret kubectl create secret docker-registry my-secret --docker-serverDOCKER_REGISTRY_SERVER --docker-usernameDOCKER_USER --docker-passwordDOCKER_PASSWORD --docker-emailDOCKER_EMAIL 然后在容器中引用这个 Secret spec:containers:- name: private-reg-containerimage: your-private-imageimagePullSecrets:- name: my-secret Pod 一直处于 CrashLoopBackOff 状态 CrashLoopBackOff 状态说明容器曾经启动了但又异常退出了。此时 Pod 的 RestartCounts 通常是大于 0 的可以先查看一下容器的日志 kubectl describe pod pod-name kubectl logs pod-name kubectl logs --previous pod-name 这里可以发现一些容器退出的原因比如 容器进程退出健康检查失败退出OOMKilled $ kubectl describe pod mypod ... Containers:sh:Container ID: docker://3f7a2ee0e7e0e16c22090a25f9b6e42b5c06ec049405bc34d3aa183060eb4906Image: alpineImage ID: docker-pullable://alpinesha256:7b848083f93822dd21b0a2f14a110bd99f6efb4b838d499df6d04a49d0debf8bPort: noneHost Port: noneState: TerminatedReason: OOMKilledExit Code: 2Last State: TerminatedReason: OOMKilledExit Code: 2Ready: FalseRestart Count: 3Limits:cpu: 1memory: 1GRequests:cpu: 100mmemory: 500M ... 如果此时如果还未发现线索还可以到容器内执行命令来进一步查看退出原因 kubectl exec cassandra -- cat /var/log/cassandra/system.log 如果还是没有线索那就需要 SSH 登录该 Pod 所在的 Node 上查看 Kubelet 或者 Docker 的日志进一步排查了 # Query Node kubectl get pod pod-name -o wide# SSH to Node ssh usernamenode-name Pod 处于 Error 状态 通常处于 Error 状态说明 Pod 启动过程中发生了错误。常见的原因包括 依赖的 ConfigMap、Secret 或者 PV 等不存在请求的资源超过了管理员设置的限制比如超过了 LimitRange 等违反集群的安全策略比如违反了 PodSecurityPolicy 等容器无权操作集群内的资源比如开启 RBAC 后需要为 ServiceAccount 配置角色绑定   Pod 处于 Terminating 或 Unknown 状态 从 v1.5 开始Kubernetes 不会因为 Node 失联而删除其上正在运行的 Pod而是将其标记为 Terminating 或 Unknown 状态。想要删除这些状态的 Pod 有三种方法 从集群中删除该 Node。使用公有云时kube-controller-manager 会在 VM 删除后自动删除对应的 Node。而在物理机部署的集群中需要管理员手动删除 Node如 kubectl delete node node-name。Node 恢复正常。Kubelet 会重新跟 kube-apiserver 通信确认这些 Pod 的期待状态进而再决定删除或者继续运行这些 Pod。用户强制删除。用户可以执行 kubectl delete pods pod --grace-period0 --force 强制删除 Pod。除非明确知道 Pod 的确处于停止状态比如 Node 所在 VM 或物理机已经关机否则不建议使用该方法。特别是 StatefulSet 管理的 Pod强制删除容易导致脑裂或者数据丢失等问题。 如果 Kubelet 是以 Docker 容器的形式运行的此时 kubelet 日志中可能会发现如下的错误 {log:I0926 19:59:07.162477 54420 kubelet.go:1894] SyncLoop (DELETE, \api\): \billcenter-737844550-26z3w_meipu(30f3ffec-a29f-11e7-b693-246e9607517c)\\n,stream:stderr,time:2017-09-26T11:59:07.162748656Z} {log:I0926 19:59:39.977126 54420 reconciler.go:186] operationExecutor.UnmountVolume started for volume \default-token-6tpnm\ (UniqueName: \kubernetes.io/secret/30f3ffec-a29f-11e7-b693-246e9607517c-default-token-6tpnm\) pod \30f3ffec-a29f-11e7-b693-246e9607517c\ (UID: \30f3ffec-a29f-11e7-b693-246e9607517c\) \n,stream:stderr,time:2017-09-26T11:59:39.977438174Z} {log:E0926 19:59:39.977461 54420 nestedpendingoperations.go:262] Operation for \\\\kubernetes.io/secret/30f3ffec-a29f-11e7-b693-246e9607517c-default-token-6tpnm\\\ (\\\30f3ffec-a29f-11e7-b693-246e9607517c\\\)\ failed. No retries permitted until 2017-09-26 19:59:41.977419403 0800 CST (durationBeforeRetry 2s). Error: UnmountVolume.TearDown failed for volume \default-token-6tpnm\ (UniqueName: \kubernetes.io/secret/30f3ffec-a29f-11e7-b693-246e9607517c-default-token-6tpnm\) pod \30f3ffec-a29f-11e7-b693-246e9607517c\ (UID: \30f3ffec-a29f-11e7-b693-246e9607517c\) : remove /var/lib/kubelet/pods/30f3ffec-a29f-11e7-b693-246e9607517c/volumes/kubernetes.io~secret/default-token-6tpnm: device or resource busy\n,stream:stderr,time:2017-09-26T11:59:39.977728079Z} 如果是这种情况则需要给 kubelet 容器设置 --containerized 参数并传入以下的存储卷 # 以使用 calico 网络插件为例-v /:/rootfs:ro,shared \-v /sys:/sys:ro \-v /dev:/dev:rw \-v /var/log:/var/log:rw \-v /run/calico/:/run/calico/:rw \-v /run/docker/:/run/docker/:rw \-v /run/docker.sock:/run/docker.sock:rw \-v /usr/lib/os-release:/etc/os-release \-v /usr/share/ca-certificates/:/etc/ssl/certs \-v /var/lib/docker/:/var/lib/docker:rw,shared \-v /var/lib/kubelet/:/var/lib/kubelet:rw,shared \-v /etc/kubernetes/ssl/:/etc/kubernetes/ssl/ \-v /etc/kubernetes/config/:/etc/kubernetes/config/ \-v /etc/cni/net.d/:/etc/cni/net.d/ \-v /opt/cni/bin/:/opt/cni/bin/ \ 处于 Terminating 状态的 Pod 在 Kubelet 恢复正常运行后一般会自动删除。但有时也会出现无法删除的情况并且通过 kubectl delete pods pod --grace-period0 --force 也无法强制删除。此时一般是由于 finalizers 导致的通过 kubectl edit 将 finalizers 删除即可解决。  finalizers: [foregroundDeletion ]
http://www.pierceye.com/news/772221/

相关文章:

  • 哪里有建设好的网站做网站用哪个预装系统
  • h5技术建设网站的知识wordpress+主题+欣赏
  • 如何优化网站排名淘宝客 备案 网站名称
  • 网站后台管理系统源代码沧州市宇通网站建设公司
  • 郴州网站设计公司阜新网站设计
  • 成都网站制作中国互联个人做电影网站赚钱吗
  • 如何做自己的影视网站惠州惠城网站建设
  • 温州网站推广外包推推蛙网站建设
  • 北京百度网站排名优化四川公共资源交易网招标网
  • 上海网站制作商多用户网上商城
  • 四川建设网电子招投标网站莱芜金点子电话
  • 深圳科技网站建设网站怎么做跳站
  • 做网站需要多少人全国物流货运平台
  • 温州建网站用自己的电脑做网站
  • 综合性门户网站有哪些高端网站建设 房产
  • 百度做的网站能优化吗如何在jsp上做网站页面代码
  • 广州市品牌网站建设公司营销型网站开发推广
  • 甜品网站首页设计用php做的网站模版
  • 怎样做企业的网站百度下载安装免费版
  • 常州市网站优化汕头网站建设和运营
  • wordpress 同分类评论调用seo排名是什么
  • 网站建设推广怎么玩软件开发模型是什么
  • 网站开发报价表格海口注册公司代理公司地址电话
  • 西宁好的网站建设视频网站文案
  • 郑州网站优化网络建设有限公司网站建设 交单流程
  • 网站搬家内页打不开重庆市建设工程信息网怎么进不去
  • 深圳 做公司网站网站用什么建设
  • 网站更换空间对优化的影响营销号视频生成器手机版
  • 南宁大型网站推广公司昆山网站制作哪家好
  • 格尔木哪里有做网站的wordpress编辑器排版