【问题标题】:Kubernetes Pods get IP from docker networkKubernetes Pods 从 docker 网络获取 IP
【发布时间】:2022-01-03 14:59:30
【问题描述】:

我有 3 个主人,几个工人和 Calico 作为 cni。在 master 上创建的 Pod 获得 172.17.0.* IP,这是 docker 网络。 worker 上的 Pod 应该从 calico 池中获取 IP。 calicoctl 显示所有节点的status ok

我也有相同的 kubelet 参数和配置文件,我没有任何 pod cidr 设置。 Kube-system/calico pod 已启动并运行,日志未显示任何原因。如何为 master 上的 pod 设置正确的 cidr?

kubectl describe node master1 | egrep -i 'cidr|calico': 

    projectcalico.org/IPv4Address: 192.168.0.26/24
    projectcalico.org/IPv4IPIPTunnelAddr: 10.129.40.64
    PodCIDR:                      10.128.0.0/24
    PodCIDRs:                     10.128.0.0/24

吊舱详情:

kubectl describe po mypod | egrep -i 'master|ip'
Node:         master1/192.168.0.26
IP:           172.17.0.3
IPs:
  IP:           172.17.0.3

【问题讨论】:

  • 您是如何设置集群的,您使用了哪种解决方案(kubeadm、kubespray 等)?您是如何安装 Docker 并使用 Kubernetes 对其进行配置的?您是如何安装 Calico 的 - 您是否使用了一些标志来设置 IP?主人和工人有什么区别,他们有相同的操作系统,他们的配置方式相同吗?请添加更多信息,以便您的问题will be reproducible
  • 嗨 Micolaj,我希望找到一个快速的解决方案。我需要在 kubelet 启动选项中添加“--network-plugin=cni”。我仍然感到困惑,为什么它在没有此选项的情况下适用于工人。
  • 请提供我之前评论中问题的答案,这样我就可以在本地复制它并找出它为什么会这样;)
  • 它是通过自定义工具安装的,所以我无法确定可能有什么问题或不同。我只能检查当前设置,据我所知,它们都是相同的(版本、配置、操作系统)

标签: kubernetes calico


【解决方案1】:

发布基于 cmets 的社区 wiki 以获得更好的可见性。随意扩展它。


该问题的解决方案是将标志 --network-plugin=cni 添加到主节点上的 Kubelet 启动选项(来自 @mzv 评论):

我需要在 kubelet 启动选项中添加“--network-plugin=cni”

关于如何将此标志添加到 Kubelet can be found here 的说明。

【讨论】:

    猜你喜欢
    • 2019-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-01
    • 2018-09-01
    • 1970-01-01
    • 2020-05-23
    相关资源
    最近更新 更多