1. Kubernetes Host Scope
cilium IPAM的kubernetes host-scope模式通过选项ipam: kubernetes开启,将集群IP地址分配委托给每个独立的节点,并在每个kubernetes node的podCIDR范围内分配IP地址。

这种模式下,cilium agent会等待kubernetes的v1.Node对象通过以下任意一种办法告知podCIDR的地址族范围后后再完成启动:
1. 通过 v1.Node的资源域
| 域 | 描述 |
|---|---|
| spec.podCIDRs | IPv4 and/or IPv6 PodCIDR 范围 |
| spec.podCIDR | IPv4 or IPv6 PodCIDR 范围 |
**kube-controler-manager 的 **
--allocate-node-cidrs选项用于告诉kubernetes 为PodCIDR准备的地址范围。
2. 通过v1.Nodeannotation
| Annotation | 描述 |
|---|---|
| io.cilium.network.ipv4-pod-cidr | IPv4 PodCIDR 范围 |
| io.cilium.network.ipv6-pod-cidr | IPv6 PodCIDR 范围 |
| io.cilium.network.ipv4-cilium-host | IPv4 address of the cilium host interface |
| io.cilium.network.ipv6-cilium-host | IPv6 address of the cilium host interface |
| io.cilium.network.ipv4-health-ip | IPv4 address of the cilium-health endpoint |
| io.cilium.network.ipv6-health-ip | IPv6 address of the cilium-health endpoint |
基于注释的机制主要与不支持
spec.podCIDRs但支持IPv4和IPv6的旧版本Kubernetes结合使用。
配置
下面两种方式用于配置kubernetes host-scope 模式IPAM。
1. ConfigMap
ipam: kubernetes:启用 kubernetes host-scope 模式IPAM。开启模式时如果配置了enable-ipv4: true选项会自动启用k8s-require-ipv4-pod-cidr;如果配置了enable-ipv6则会自动启用k8s-require-ipv6-pod-cidr。k8s-require-ipv4-pod-cidr: true: 通知cilium agent等待,直到v1.Node资源的IPV4 PodCIDR 可用。k8s-require-ipv6-pod-cidr: true: 通知cilium agent等待,直到v1.Node资源的IPV6 PodCIDR 可用。
2. Helm
在helm中可使用下面的选项来实现ConfigMap的能力:
ipam: kubernetes:--set ipam.mode=kubernetes.k8s-require-ipv4-pod-cidr: true:--set k8s.requireIPv4PodCIDR=true, 需要和--set ipam.mode=kubernetes选项配合使用。k8s-require-ipv6-pod-cidr: true:--set k8s.requireIPv6PodCIDR=true, 需要和--set ipam.mode=kubernetes选项配合使用。
本文介绍ciliumIPAM如何通过kuberneteshost-scope模式与Kubernetes集成,详细解释了通过v1.Node对象及注释配置IP地址的过程,并提供了ConfigMap与Helm配置方法。
977

被折叠的 条评论
为什么被折叠?



