我在 k8s 中有一个主节点、一个工作节点和 10 个命名空间。我想使用 pod 创建并分配子网到每个命名空间。例如,我想创建并分配 10.0.0.0/24 到命名空间 1,创建并分配 10.1.0.0/24 到命名空间 2,然后...
我尝试了网络策略,但没有任何结果。我该怎么办?
答案1
Kubernetes 本身并不提供这样的功能来将命名空间映射到 pod CIDR 范围。
网络策略定义了 Pod 的入口/出口规则,而不是命名空间的 CIDR 范围。
我能想到的最接近的解决方案:
- 像 Calico IPAM 这样的 CNI 特定解决方案。
https://docs.tigera.io/calico/latest/networking/ipam/ https://docs.tigera.io/calico/latest/reference/configure-cni-plugins#using-kubernetes-annotations
- 利用不同节点具有不同 pod IP 范围这一事实,并调度选定的 pod 在特定节点上运行。我不推荐这样做。
https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
- 利用静态 pod 和守护进程 pod 将具有其所运行节点的 IP 地址这一事实。同样,我不推荐这样做。