本文主要是介绍k8s(网络组件calico)pod到service域名解析错误解决,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题:安装配置k8s calico网络后, pods之间网络互通,但在测试pod上通过nslookup 获取指定service的域名解析时异常
解决思路:
查看calico日志
calico报错Readiness probe failed: calico/node is not ready: BIRD is not ready: BGP not established
安装配置calicoctl工具查看calico-node状态
安装配置过程如下(master 节点和node节点都安装):
wget https://github.com/projectcalico/calicoctl/releases/download/v3.10.0/calicoctl -O /usr/bin/calicoctl
chmod +x /usr/bin/calicoctl
#配置calicoctl.cfg(通过kubeadm安装的k8s集群,只需在master 节点配置即可)
mkdir -p /etc/calico
vi /etc/calico/calicoctl.cfg
apiVersion: projectcalico.org/v3
kind: CalicoAPIConfig
metadata:
spec:datastoreType: "kubernetes"kubeconfig: "/root/.kube/config"
获取calico-node状态
calicoctl node status
结果显示node节点的calico-node状态为start, info显示为Passive
在woker节点查看calico-node状态, 则获取的master节点的ip地址并非master节点的实际IP地址
修改calico的yaml文件,添加
# Specify interface- name: IP_AUTODETECTION_METHODvalue: "interface=ens33" #以实际网卡名称为准
添加结果如下:
执行以下命令更新calico
kubectl apply -f calico-3.9.2.yaml
完成更新后查看calico-node状态确认是否变为up状态, info是否为Established状态
确认正常后,pod到service之间的ip不能ping通,域名解析正常,wget获取页面信息正常
参考:
https://github.com/projectcalico/calico/issues/2561
这篇关于k8s(网络组件calico)pod到service域名解析错误解决的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!