【问题标题】:Why calico missing some nodes peer address in Kubernetes?为什么 calico 在 Kubernetes 中缺少一些节点对等地址?
【发布时间】:2020-11-01 13:11:46
【问题描述】:

我正在使用 kubernetes v1.18 并使用 calico 作为我的 CNI 插件,这是 calico pod 状态(删除不相关的 pod):

[root@localhost ~]# kubectl get pods --all-namespaces -o wide
NAME                                            READY   STATUS    RESTARTS   AGE     IP              NODE                    NOMINATED NODE   READINESS GATES
calico-kube-controllers-75d555c48-lt4jr         1/1     Running   0          2d12h   10.11.102.134   localhost.localdomain   <none>           <none>
calico-node-6rj58                               1/1     Running   0          37h     192.168.31.30   k8sslave1               <none>           <none>
calico-node-czhww                               1/1     Running   0          2d12h   192.168.31.29   localhost.localdomain   <none>           <none>
calico-node-vwr5w                               1/1     Running   0          2d12h   192.168.31.31   k8sslave2               <none>           <none>
calicoctl                                       1/1     Running   0          93m     192.168.31.31   k8sslave2               <none>           <none>

我在我的主主机节点中安装了 calicoctl:

curl -O -L  https://github.com/projectcalico/calicoctl/releases/download/v3.15.1/calicoctl
chmod +x calicoctl
mv calicoctl /usr/local

并获取calico节点状态。

[root@localhost ~]# calicoctl node status
Calico process is running.

IPv4 BGP status
+---------------+-------------------+-------+----------+-------------+
| PEER ADDRESS  |     PEER TYPE     | STATE |  SINCE   |    INFO     |
+---------------+-------------------+-------+----------+-------------+
| 192.168.31.31 | node-to-node mesh | up    | 02:56:08 | Established |
| 192.168.31.30 | node-to-node mesh | up    | 02:56:09 | Established |
+---------------+-------------------+-------+----------+-------------+

IPv6 BGP status
No IPv6 peers found.

问题是:为什么找不到master192.168.31.29calico节点?所有 pod 运行良好,我不知道如何找到原因。

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    问题是:为什么找不到master 192.168.31.29 calico节点?

    听起来 Calico 无法为主人检索到您的 NODENAME。我看到它在您的命令输出中定义为localhost.localdomain

    如果您看到 docs,Calico 需要能够确定您的 NODENAME 以添加 calico/node 资源并将其视为“网格”的一部分。

    calico/node 必须知道它正在运行的节点的名称。节点名称用于检索为该节点配置的 Node 资源(如果存在),如果不存在则创建代表该节点的新节点资源。它还用于将节点与每个节点的 BGP 配置、felix 配置和端点相关联。

    另一个问题是,您是否打算在您的 Kubernetes 主服务器上运行工作负载?如果你不这样做,那么你的设置现在很好。如果您这样做,那么是的,您必须确保 Calico(覆盖)工作,以便您的工作负载具有网络连接。

    【讨论】:

      猜你喜欢
      • 2019-02-22
      • 2018-08-02
      • 1970-01-01
      • 1970-01-01
      • 2020-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多