解决90%的部署问题!openEuler/k8s-install常见错误排查与解决方案

发布时间:2026/7/3 13:55:40
解决90%的部署问题!openEuler/k8s-install常见错误排查与解决方案 解决90%的部署问题openEuler/k8s-install常见错误排查与解决方案【免费下载链接】k8s-installCloud native infrastructuer (base on Kubernetes) multiple baseline maintain/installation/configuratgion/security-update, online/offline package publish tool.项目地址: https://gitcode.com/openeuler/k8s-install前往项目官网免费下载https://ar.openeuler.org/ar/ 你是否在使用openEuler/k8s-install部署Kubernetes集群时遇到各种报错别担心本文将为你揭秘90%的部署问题解决方案让你轻松驾驭这个强大的云原生基础设施部署工具openEuler/k8s-install是一个基于Kubernetes的云原生基础设施多基线维护/安装/配置/安全更新工具支持在线/离线包发布但复杂的部署环境常常让新手望而却步。 为什么选择openEuler/k8s-installopenEuler/k8s-install是一款专为openEuler和CTyunOS系统设计的Kubernetes一键部署工具它支持多版本Kubernetes1.20.2、1.25.3、1.29.1多种容器运行时containerd、docker、crio多种操作系统openEuler 20.03/22.03/23.09/24.03/25.03CTyunOS 2/3/4系列在线/离线部署支持网络环境和离线环境部署 安装前检查清单避免常见错误1️⃣ 系统环境验证在开始部署前请确保满足以下条件# 检查系统版本 cat /etc/os-release # 检查内核版本 uname -r # 检查内存和CPU free -h nproc # 检查磁盘空间 df -h 关键点openEuler/k8s-install对系统版本有严格要求确保你的系统在支持列表中2️⃣ 网络配置检查网络问题是部署失败的常见原因# 检查网络连通性 ping -c 3 8.8.8.8 # 检查DNS解析 nslookup gitcode.com # 检查防火墙状态 systemctl status firewalld # 检查SELinux状态 getenforce常见错误防火墙未关闭或SELinux未禁用会导致节点间通信失败 五大常见错误及解决方案1️⃣ 错误镜像拉取失败症状Error response from daemon: Get https://registry-crs-xinan1.ctyun.cn/v2/: net/http: request canceled解决方案方法一配置镜像仓库代理编辑配置文件config/daemon.json 添加镜像仓库{ insecure-registries: [ docker.ctyun.cn:60001, docker-hb02.ctyun.cn:60001 ], registry-mirrors: [ https://registry.docker-cn.com, https://docker.mirrors.ustc.edu.cn ] }方法二手动拉取镜像如果在线拉取失败可以使用离线包中的镜像# 使用离线包中的镜像 ./k8s-install-offline -d oe2403 -b 129 -t containerd -n master2️⃣ 错误Yum源配置错误症状Cannot find a valid baseurl for repo: everything-2403解决方案步骤一检查repo文件确保正确的repo文件在正确位置config/openEuler2403.repo步骤二切换镜像源如果华为源访问慢可以切换到网易镜像cd config sed -i s/repo\.huawei\.com/mirrors.163.com/g openEuler2403.repo yum clean all yum makecache步骤三使用离线安装如果网络问题无法解决直接使用离线安装# 下载离线包后执行 ./k8s-install-offline -d ctl3 -b 129 -t containerd -n master3️⃣ 错误容器运行时冲突症状Failed to start containerd: address already in use解决方案方法一清理旧容器运行时# 停止并卸载旧版本 systemctl stop docker containerd crio yum remove -y docker docker-client docker-common containerd.io # 清理残留文件 rm -rf /var/lib/docker rm -rf /var/lib/containerd rm -rf /etc/docker rm -rf /etc/containerd方法二正确选择容器运行时根据Kubernetes版本选择合适的运行时Kubernetes版本支持的容器运行时1.29.1containerd、crio1.25.3仅containerd1.20.2containerd、docker示例命令# 正确129基线使用containerd k8s-install -d oe2403 -b 129 -t containerd -n master # 错误129基线使用docker不支持 k8s-install -d oe2403 -b 129 -t docker -n master4️⃣ 错误节点加入集群失败症状error execution phase preflight: couldnt validate the identity of the API Server解决方案步骤一检查token有效期# 在master节点生成新token kubeadm token create --print-join-command步骤二检查网络连通性# 在worker节点ping master节点 ping master-ip # 检查6443端口 telnet master-ip 6443步骤三重新执行加入命令# 重置worker节点 kubeadm reset -f # 使用新token加入集群 kubeadm join master-ip:6443 --token new-token \ --discovery-token-ca-cert-hash sha256:hash5️⃣ 错误Pod网络插件问题症状Container runtime network not ready: NetworkReadyfalse解决方案方法一检查Flannel配置编辑配置文件config/flannel.yaml 确保镜像地址正确image: registry.cn-hangzhou.aliyuncs.com/k8s-install-flannel/flannel:v0.25.1方法二切换网络插件如果Flannel有问题可以尝试Calico# 使用Calico网络插件 k8s-install -d oe2403 -b 129 -t containerd -n master -p calico方法三检查网络配置# 启用IP转发 echo net.ipv4.ip_forward 1 /etc/sysctl.conf sysctl -p # 加载内核模块 modprobe br_netfilter modprobe overlay️ 高级故障排查技巧1️⃣ 日志分析快速定位问题# 查看kubelet日志 journalctl -xeu kubelet # 查看containerd日志 journalctl -xeu containerd # 查看系统日志 dmesg | grep -i error # 查看Pod状态 kubectl get pods -A -o wide2️⃣ 配置文件检查避免配置错误关键配置文件位置在线安装/etc/k8s-install/离线安装解压包的config/目录重要配置文件variable.sh - 版本和镜像配置kubeadm-template.yaml - kubeadm配置模板daemon.json - Docker配置3️⃣ 环境变量验证确保参数正确# 检查环境变量 echo $KUBERNETES_VERSION echo $IMAGE_REPO echo $FLANNEL_VERSION # 重新加载变量 source variable.sh 错误代码速查表错误代码可能原因解决方案ErrImagePull镜像拉取失败检查网络、配置镜像仓库CrashLoopBackOffPod反复崩溃查看Pod日志、检查资源限制NodeNotReady节点未就绪检查kubelet服务、网络插件NetworkPluginNotReady网络插件问题重新部署Flannel/CalicoContainerCreating容器创建中检查镜像拉取、存储卷Pending调度失败检查节点资源、污点设置 实用调试命令集1️⃣ 集群状态检查# 检查节点状态 kubectl get nodes -o wide # 检查所有Pod状态 kubectl get pods -A -o wide # 检查服务状态 kubectl get svc -A # 检查事件 kubectl get events -A --sort-by.lastTimestamp2️⃣ 网络诊断# 检查CoreDNS kubectl get pods -n kube-system | grep coredns # 测试DNS解析 kubectl run -it --rm --imagebusybox:1.28 test --restartNever -- nslookup kubernetes.default # 检查网络策略 kubectl get networkpolicies -A3️⃣ 资源监控# 查看节点资源使用 kubectl top nodes # 查看Pod资源使用 kubectl top pods -A # 查看详细资源请求 kubectl describe nodes | grep -A 10 -B 10 Allocated resources 最佳实践建议1️⃣ 部署前准备✅ 确保系统版本匹配✅ 关闭防火墙和SELinux✅ 配置时间同步✅ 设置主机名和hosts✅ 配置IP转发和桥接流量2️⃣ 部署过程✅ 使用正确的参数组合✅ 先安装依赖再部署集群✅ 按顺序部署节点先master后worker✅ 验证每个步骤的成功3️⃣ 部署后验证✅ 检查所有节点状态为Ready✅ 检查所有系统Pod运行正常✅ 测试网络连通性✅ 部署测试应用验证功能 小贴士避免常见陷阱版本匹配确保Kubernetes版本、容器运行时、操作系统版本三者兼容参数顺序命令行参数顺序很重要确保-d、-b、-t、-n参数正确组合网络环境离线环境使用离线包在线环境配置好镜像源权限问题所有操作都需要root权限使用sudo或切换到root用户清理工作部署失败后彻底清理再重试避免残留配置影响 总结openEuler/k8s-install虽然功能强大但在实际部署中难免遇到各种问题。通过本文提供的错误排查指南和解决方案相信你已经掌握了解决90%部署问题的能力记住耐心细心正确的排查方法成功部署核心要点回顾仔细检查系统环境和网络配置使用正确的参数组合和版本匹配学会查看和分析日志信息掌握常用的调试和诊断命令遵循最佳实践和部署流程现在你可以自信地使用openEuler/k8s-install部署你的Kubernetes集群了如果遇到本文未涵盖的问题欢迎查看项目文档或在社区中寻求帮助。 记住每一个错误都是学习的机会每一次排查都是经验的积累【免费下载链接】k8s-installCloud native infrastructuer (base on Kubernetes) multiple baseline maintain/installation/configuratgion/security-update, online/offline package publish tool.项目地址: https://gitcode.com/openeuler/k8s-install创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考