常见表现:节点间无法通信、kubectl get nodes显示节点状态为NotReady、镜像拉取失败。
解决方法:
ping <node-ip>测试连通性;6443、etcd端口2379/2380、kubelet端口10250/10255等),例如使用ufw命令:sudo ufw allow 6443/tcp; sudo ufw allow 2379/tcp; sudo ufw allow 2380/tcp;kubelet服务,确保其监听正确地址:编辑/etc/systemd/system/kubelet.service.d/10-kubeadm.conf,添加--node-ip=<node-ip>参数;kubectl get pods -n kube-system | grep kube-proxy,若未运行,可尝试重新安装网络插件。常见表现:安装过程中提示“Insufficient resources”(资源不足)、Pod无法调度(Pending状态)。
解决方法:
free -h查看内存、df -h查看磁盘空间、top查看CPU负载;resources.requests和resources.limits,例如:resources:
requests:
memory: "512Mi"
cpu: "500m"
limits:
memory: "1Gi"
cpu: "1"
常见表现:E: Unable to locate package kubeadm(找不到kubeadm包)、kubeadm安装失败。
解决方法:
sudo apt-get update;sudo apt-get install -y apt-transport-https curl software-properties-common;curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt update
kubelet、kubeadm、kubectl:sudo apt install -y kubelet kubeadm kubectl,并锁定版本(避免自动升级):sudo apt-mark hold kubelet kubeadm kubectl。常见表现:kubeadm version is not supported(kubeadm版本不兼容)、组件启动失败。
解决方法:
kubelet、kubeadm、kubectl版本一致,且与Debian版本兼容(如Debian 11/12支持Kubernetes 1.26+);sudo apt install -y kubelet=<version> kubeadm=<version> kubectl=<version>
sudo apt-mark hold kubelet kubeadm kubectl
常见表现:执行kubeadm init或kubectl命令时提示“Permission denied”(权限不足)。
解决方法:
sudo运行命令,例如:sudo kubeadm init;kubectl,将用户加入sudoers文件:sudo visudo,添加<username> ALL=(ALL) NOPASSWD:ALL;kubeconfig文件权限:sudo chown $(id -u):$(id -g) $HOME/.kube/config。常见表现:Invalid configuration: no servers are available(无效配置,无可用服务器)、kubectl无法连接集群。
解决方法:
kubeconfig文件路径和内容是否正确,默认路径为$HOME/.kube/config,可使用kubectl config view查看当前配置;kubeconfig中的clusters.server字段指向正确的API Server地址(如https://<master-ip>:6443);kubeadm init,再复制新的admin.conf文件。常见表现:安装或运行过程中出现未知错误,无法定位原因。
解决方法:
journalctl查看系统组件日志,例如:sudo journalctl -u kubelet -f # 实时查看kubelet日志
sudo journalctl -u kube-apiserver -f # 查看API Server日志
kubectl logs查看Pod日志,例如:kubectl logs -n kube-system <pod-name> # 查看指定Pod日志
常见表现:工作节点无法加入集群,提示“Token expired”(令牌过期)或“Discovery token CA cert hash mismatch”(CA证书哈希不匹配)。
解决方法:
sudo kubeadm token create --print-join-command,获取新的token和discovery-token-ca-cert-hash;sudo kubeadm join <master-ip>:6443 --token <new-token> --discovery-token-ca-cert-hash sha256:<new-hash>;kubelet数据并重新加入:sudo rm -rf /etc/kubernetes /var/lib/kubelet,然后再次运行加入命令。常见表现:kubelet无法启动、Pod无法创建,提示“Permission denied”或“Operation not permitted”。
解决方法:
sudo setenforce 0,永久禁用需修改/etc/selinux/config文件(SELINUX=disabled);kubelet的AppArmor配置:编辑/etc/apparmor.d/usr.sbin.kubelet,添加必要的权限,或临时禁用:sudo systemctl stop apparmor。常见表现:Pod无法挂载存储卷、PersistentVolumeClaim(PVC)处于Pending状态。
解决方法:
nfs-kernel-server并导出目录;StorageClass配置是否正确,例如默认的local-path存储类是否启用;PersistentVolume(PV)状态:kubectl get pv,确保存在可用的PV匹配PVC的需求。