为每个命名空间创建并分配单独的子网

为每个命名空间创建并分配单独的子网

我在 k8s 中有一个主节点、一个工作节点和 10 个命名空间。我想使用 pod 创建并分配子网到每个命名空间。例如,我想创建并分配 10.0.0.0/24 到命名空间 1,创建并分配 10.1.0.0/24 到命名空间 2,然后...

我尝试了网络策略,但没有任何结果。我该怎么办?

答案1

Kubernetes 本身并不提供这样的功能来将命名空间映射到 pod CIDR 范围。

网络策略定义了 Pod 的入口/出口规则,而不是命名空间的 CIDR 范围。

我能想到的最接近的解决方案:

  1. 像 Calico IPAM 这样的 CNI 特定解决方案。

https://docs.tigera.io/calico/latest/networking/ipam/ https://docs.tigera.io/calico/latest/reference/configure-cni-plugins#using-kubernetes-annotations

  1. 利用不同节点具有不同 pod IP 范围这一事实,并调度选定的 pod 在特定节点上运行。我不推荐这样做。

https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/

  1. 利用静态 pod 和守护进程 pod 将具有其所运行节点的 IP 地址这一事实。同样,我不推荐这样做。

相关内容