我用kubeadm版本1.11.2创建了一个HA kubernetes集群,并安装了可运行的calico CNI插件。我正在尝试使用Docker映像创建部署。它成功创建了部署,并在节点上创建了一个容器,但是该容器无法与托管它的节点(使用IP)以外的外界进行通信。
我已经登录到容器,并尝试ping发生故障的主节点和其他节点。
有人可以帮助我解决此问题吗?
答案 0 :(得分:1)
很难说,但是Calico / CNI必须要解决这个问题。是否已在所有节点上准备好所有Calico吊舱,像这样:
$ kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
calico-node-xxxxx 2/2 Running 0 15h
您可以在/etc/cni/net.d
下检查CNI配置,也许您在Calico吊舱中的install-cni.sh
容器没有初始化配置?例如:
{
"name": "k8s-pod-network",
"cniVersion": "0.3.0",
"plugins": [
{
"type": "calico",
"log_level": "info",
"datastore_type": "kubernetes",
"nodename": "<node-name>",
"mtu": 1500,
"ipam": {
"type": "host-local",
"subnet": "usePodCidr"
},
"policy": {
"type": "k8s"
},
"kubernetes": {
"kubeconfig": "/etc/cni/net.d/calico-kubeconfig"
}
},
{
"type": "portmap",
"snat": true,
"capabilities": {"portMappings": true}
}
]
}
通常,您的容器将分配有一个接口和podCidr IP,因此,在装入容器/容器后,您可以使用$ ifconfig