kubernetes连连无法与外界交流

时间:2018-10-03 15:05:26

标签: docker kubernetes kubernetes-ingress

我用kubeadm版本1.11.2创建了一个HA kubernetes集群,并安装了可运行的calico CNI插件。我正在尝试使用Docker映像创建部署。它成功创建了部署,并在节点上创建了一个容器,但是该容器无法与托管它的节点(使用IP)以外的外界进行通信。

我已经登录到容器,并尝试ping发生故障的主节点和其他节点。

有人可以帮助我解决此问题吗?

1 个答案:

答案 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

进行检查。