以下是Debian部署K8S时的常见错误及解决方法:
- 网络配置问题
- 节点间通信异常:检查防火墙是否开放必要端口(如6443、2379等),确保所有节点网络连通。
- Pod间无法通信:确认网络插件(如Calico/Flannel)正确安装,检查其配置文件及运行状态。
- 权限问题
- 命令执行失败:使用
sudo运行特权命令,或检查服务账户权限及RBAC配置。
- 命令执行失败:使用
- 配置文件错误
- YAML语法错误:通过
kubectl apply -f命令查看报错信息,或使用在线工具验证配置文件。
- YAML语法错误:通过
- 依赖与版本兼容性
- 组件版本不匹配:确保Kubernetes组件(如kubelet、kubeadm)与操作系统、容器运行时版本兼容,可参考官方版本矩阵。
- Docker弃用问题:K8S 1.24+需使用containerd替代Docker,需提前调整配置。
- 资源不足
- 节点资源不足导致Pod驱逐:清理磁盘空间,调整Pod资源请求/限制,或增加节点。
- 存储问题
- 存储类未找到:检查StorageClass配置是否正确,确保存储后端可用。
- 服务访问失败
- 服务类型错误:将
ClusterIP类型服务改为NodePort或LoadBalancer以允许外部访问。 - 端口映射错误:检查Service的
ports配置,确保端口正确映射。
- 服务类型错误:将
- 内核参数异常
- IP转发未开启:执行
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf并生效配置。
- IP转发未开启:执行
- 日志与调试
- 无法定位问题:通过
kubectl logs查看Pod日志,journalctl -u kubelet查看系统组件日志。
- 无法定位问题:通过
参考来源: