K8s调试积累

文章目录

  • [一、K8S 集群服务访问失败?](#一、K8S 集群服务访问失败?)
  • [二、K8S 集群服务访问失败?](#二、K8S 集群服务访问失败?)
  • [三、K8S 集群服务暴露失败?](#三、K8S 集群服务暴露失败?)
  • [四、外网无法访问 K8S 集群提供的服务?](#四、外网无法访问 K8S 集群提供的服务?)
  • [五、pod 状态为 ErrImagePull?](#五、pod 状态为 ErrImagePull?)
  • [六、探测存活 pod 状态为 CrashLoopBackOff?](#六、探测存活 pod 状态为 CrashLoopBackOff?)
  • [七、POD 创建失败?](#七、POD 创建失败?)
  • [八、POD 的 ready 状态未进入?](#八、POD 的 ready 状态未进入?)
  • [九、pod 创建失败?](#九、pod 创建失败?)
  • [十、kube-flannel-ds-amd64-ndsf7 插件 pod 的 status为 Init:0/1?](#十、kube-flannel-ds-amd64-ndsf7 插件 pod 的 status为 Init:0/1?)
  • [十一、K8S 创建服务 status 为 ErrImagePull?](#十一、K8S 创建服务 status 为 ErrImagePull?)
  • 十二、不能进入指定容器内部?
  • [十三、创建 PV 失败?](#十三、创建 PV 失败?)
  • [十四、pod 使用 PV 后,无法访问其内容?](#十四、pod 使用 PV 后,无法访问其内容?)
  • 十五、查看节点状态失败?
  • [十六、pod 一直处于 pending状态?](#十六、pod 一直处于 pending状态?)
  • [十七、helm 安装组件失败?](#十七、helm 安装组件失败?)

一、K8S 集群服务访问失败?

  • 问题:
  • 原因分析:证书不能被识别,其原因为:自定义证书,过期等。
  • 解决方法:更新证书即可。

二、K8S 集群服务访问失败?

  • 问题
    curl: (7) Failed connect to 10.103.22.158:3000; Connection refused
  • 原因分析:端口映射错误,服务正常工作,但不能提供服务。
  • 解决方法:删除 svc,重新映射端口即可。kubectl delete svc nginx-deployment

三、K8S 集群服务暴露失败?

  • 问题
    Error from server (AlreadyExists): services "nginx-deployment" already exists
  • 原因分析:该容器已暴露服务了。
  • 解决方法:删除 svc,重新映射端口即可。

四、外网无法访问 K8S 集群提供的服务?

  • 原因分析:K8S 集群的 type 为 ClusterIP,未将服务暴露至外网。
  • 解决方法:修改 K8S 集群的 type 为 NodePort 即可,于是可通过所有 K8S 集群节点访问服务。修改命令kubectl edit svc nginx-deployment

五、pod 状态为 ErrImagePull?

  • 问题

  • 原因分析:image 无法拉取。
  • 解决方法:更换镜像即可。

六、探测存活 pod 状态为 CrashLoopBackOff?

  • 原因分析:镜像问题,导致容器重启失败。
  • 解决方法:更换镜像即可。

七、POD 创建失败?

  • 问题:
  • 原因分析:镜像问题导致容器无法启动。
  • 解决方法:更换镜像。

八、POD 的 ready 状态未进入?

  • 问题:
  • 原因分析:POD 的执行命令失败,无法获取资源。
  • 解决方法 :进入容器内部,创建 yaml 定义的资源。

九、pod 创建失败?

  • 问题:
  • 原因分析:yml 文件内容出错----使用中文字符:
  • 解决方法:修改 myregistrykey 内容即可。

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

  • 问题:
  • 排查思路:kubectl -n kube-system describe pod kube-flannel-ds-amd64-ndsf7 #查询 pod 描述信息;
  • 原因分析:k8s-slave1 节点拉取镜像失败。
  • 解决方法:
    1. 登录 k8s-slave1,重启 docker 服务,手动拉取镜像。
    2. k8s-master 节点,重新安装插件即可。kubectl create -f kube-flannel.yml;kubectl get nodes

十一、K8S 创建服务 status 为 ErrImagePull?

  • 问题:
  • 排查思路:kubectl describe pod test-nginx
  • 原因分析:拉取镜像名称问题。
  • 解决方法:删除错误 pod;重新拉取镜像;
    kubectl delete pod test-nginx;kubectl run test-nginx --image=10.0.0.81:5000/nginx:alpine

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

  • 问题:
  • 原因分析:yml 文件 comtainers 字段重复,导致该 pod 没有该容器。
  • 解决方法:去掉 yml 文件中多余的 containers 字段,重新生成 pod。

十三、创建 PV 失败?

  • 问题:
  • 原因分析:pv 的 name 字段重复。
  • 解决方法:修改 pv 的 name 字段即可。

十四、pod 使用 PV 后,无法访问其内容?

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

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

十五、查看节点状态失败?

  • 问题:
    Error from server (NotFound): the server could not find the requested resource (get services http:heapster:)
  • 原因分析:没有 heapster 服务。
  • 解决方法:安装 promethus 监控组件即可。

十六、pod 一直处于 pending状态?

  • 问题:
  • 原因分析:由于已使用同样镜像发布了 pod,导致无节点可调度。
  • 解决方法:删除所有 pod 后部署 pod 即可。

十七、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

相关推荐
富士康质检员张全蛋28 分钟前
云原生|kubernetes|kubernetes的etcd集群备份策略
云原生·kubernetes·etcd
慧一居士44 分钟前
Kubernetes 中kind类型和各类型详细配置完整示例介绍
云原生·kubernetes·yaml配置
云手机管家2 小时前
CDN加速对云手机延迟的影响
运维·服务器·网络·容器·智能手机·矩阵·自动化
孤的心了不冷2 小时前
【Docker】CentOS 8.2 安装Docker教程
linux·运维·docker·容器·eureka·centos
头疼的程序员3 小时前
docker学习与使用(概念、镜像、容器、数据卷、dockerfile等)
学习·docker·容器
淡水猫.3 小时前
hbit资产收集工具Docker(笔记版)
运维·docker·容器
水淹萌龙9 小时前
k8s 中使用 Service 访问时NetworkPolicy不生效问题排查
云原生·容器·kubernetes
alden_ygq11 小时前
K8S cgroups详解
容器·贪心算法·kubernetes
旧故新长12 小时前
访问 Docker 官方镜像源(包括代理)全部被“重置连接”或超时
运维·docker·容器
matrixlzp13 小时前
K8S Gateway AB测试、蓝绿发布、金丝雀(灰度)发布
kubernetes·gateway·ab测试