k8s 常见问题

201 阅读1分钟

coredns常见问题

pod中不能通过servicename.namespace来访问其他服务,先查看coredns 启动的ip来试试能否使用

查看coredns

kubectl get pod -n kube-system -o wide

image.png

# 查看dns是否畅通
nslookup springboot.default 172.17.0.5

image.png

如果coredns的ip可以连通,而coredns的service连不通,则修改service重启

image.png

查看最新的coredns clusterIP 继续去pod中测试,看是否能通

最后修改kubelet --clusterDNS,这样新创建的pod /etc/resolv.confnameserver为新的coredns clusterIP.

# 修改kubelet配置
vim  /var/lib/kubelet/config.yaml

# 找到clusterDNS
clusterDNS:
- 10.244.47.231

# 重启kubelet生效,注意k8s中所有节点都需要修改重启
systemctl restart kubelet.service

测试没问题就通过了

集群其他节点不能使用kubectl命令

#在master节点将**admin.conf**文件拷贝到其它从节点
srp -r vim /etc/kubernetes/admin.conf root@node1:/etc/kubernetes/admin.conf

#然后在节点运行下面命令
mkdir -p $HOME/.kube 
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config 
sudo chown $(id -u):$(id -g) $HOME/.kube/config

k8s节点重启后node状态为notReady

#重启kubelet即可
systemctl restart kubelet