【发布时间】:2019-04-10 03:00:41
【问题描述】:
我一直在使用 kubeadm 设置 Kubernets,并且我使用 Flannel 设置了 pod 网络。设置基本上可以工作,但我一直遇到各种问题(和错误),现在我试图更好地了解网络设置过程中涉及的不同步骤(例如 CNI 和 flannel)。
从最终用户/管理员的角度来看,我只是将带有一些网络参数的 --pod-network-cidr 传递给 kubeadm,然后我使用 kubectl 为 flannel 应用 pod 配置。然后 Kubernetes 将在我的每个节点上启动一个 flannel pod。假设一切正常,flannel 应该使用 Kubernetes 的容器网络接口 (CNI) 来设置 pod 网络。
作为这个过程的结果,我应该得到一个 pod 网络,其中包括以下内容:
-
cni0网桥。 -
flannel.x接口。 - iptables 条目在主机和 pod 网络之间进行路由。
设置中似乎涉及以下文件和二进制文件:
-
kubectl读取 CNI 配置,例如/etc/cni/net.d/10-flannel.conflist,并调用配置文件中描述的 CNI 插件。 - 不知何故,正在创建一个文件夹
/var/lib/cni,其中似乎包含网络设置的配置文件。 - 一个 CNI 插件如
/opt/cni/bin/flannel运行,我还不明白它的作用。
我在此列表中缺少什么以及 (2.) 如何适合这些步骤。 /var/lib/cni 是如何创建的,由哪个程序负责?
【问题讨论】:
标签: kubernetes kubectl flannel cni