试图了解 flanneld 与 flannel pod 的用法

Trying to understand usage of flanneld vs flannel pod

我有机会在 CentOS 虚拟机上安装 k8s 集群。在大多数情况下,我使用法兰绒作为覆盖层。但是,在其他一些情况下,我注意到 kube-system 命名空间中的 flannel pods。恕我直言,我们不需要同时拥有 flanneld 和 flannel pods 底层 CNI 才能与 kubernetes 一起正常运行。

已阅读大量有关 flannel overlay 如何融入 kubernetes 生态系统的文档。但是,我还没有找到一些问题的答案。希望有人指点。

  1. 选择flanneld还是flannel pod的依据是什么?
  2. flanneld 和 flannel pod 在功能上有什么不同吗?
  3. flannel pod如何提供CNI功能?我的理解是 pod 使用 IP 地址 k/v 对填充 etcd,但这些信息是如何真正使用的?
  4. 大多数 CNI 插件是否可以选择 运行 作为守护进程或 pod?

你是对的,你不需要他们两个,因为他们做同样的工作。它们之间没有区别,只是守护进程 运行 在系统中,在隔离容器中或在系统中作为常规守护进程。所有 CNI 插件都基于 CNI 库并路由流量。 Flannel 使用系统 ETCD 作为键值存储。如果你在 kubernetes 集群中有 ETCD,它将使用它,如果在外部,它将使用外部 ETCD。只有你选择你喜欢的东西,例如,如果你是 运行ning 外部 ETCD,通常人们 运行ning flannel 作为系统中的守护进程。