了解 Kubernetes 中的实际和虚拟子网
Understanding actual and virtual subnets in Kubernetes
我正在 AWS 上设置一个自我管理的 Kubernetes 集群,在具有 CIDR 10.0.0.0/16
的 VPC 中使用三个实例,并为所有 instances/nodes 使用一个 AWS 子网 10.0.10.0/24
.
在使用 Kubeadm
初始化集群并指定 --pod-network-cidr
时,这个 CIDR 可以是什么吗?或者它是否需要与主机实例(控制平面和工作人员)所在的 AWS 子网保持一致?
Cilium 网络、服务网络也是如此……它们可以是任何东西吗,还是必须与实际的主机子网一致?
我还没有找到关于自我管理集群的可能(和不可能)子网配置的任何好的文档。
根据 Kubernetes 文档 https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#pod-network,主机 cidr、pod cidr 和服务 cidr 最好不要重叠。
所有 EC2 实例都从主机 CIDR 获取 IP。
Kubernetes 中的所有 Pods 将从 Pod CIDR 获取 IP。这些 Pod IP 由 Cilium 而不是 Kubernetes 分配,因为 Cilium 负责在您的情况下为 Kubernetes 提供网络。
所有 Kubernetes 服务都从服务 CIDR 获取 clusterIP。这些 clusterIP 由 Kubernetes 分配。
根据下面的 kubeadm init 文档,service-cidr 的默认值为 10.96.0.0/12,这与您的 VPC cidr 10.0.0.0/16
不重叠
kubeadm init --help | grep cidr
--pod-network-cidr string Specify range of IP addresses for the pod network. If set, the control plane will automatically allocate CIDRs for every node.
--service-cidr string Use alternative range of IP address for service VIPs. (default "10.96.0.0/12")
- 根据 https://cilium.io/blog/2018/09/26/bionic-beaver#initialize-the-kubernetes-master 博客,您应该为 pods 使用 CIDR 10.217.0.0/16。因此,请在 kubeadm init 的命令下方 运行。 CIDR 10.217.0.0/16 也不与您的 VPC cidr 10.0.0.0/16
重叠
sudo kubeadm init --pod-network-cidr=10.217.0.0/16
我正在 AWS 上设置一个自我管理的 Kubernetes 集群,在具有 CIDR 10.0.0.0/16
的 VPC 中使用三个实例,并为所有 instances/nodes 使用一个 AWS 子网 10.0.10.0/24
.
在使用 Kubeadm
初始化集群并指定 --pod-network-cidr
时,这个 CIDR 可以是什么吗?或者它是否需要与主机实例(控制平面和工作人员)所在的 AWS 子网保持一致?
Cilium 网络、服务网络也是如此……它们可以是任何东西吗,还是必须与实际的主机子网一致?
我还没有找到关于自我管理集群的可能(和不可能)子网配置的任何好的文档。
根据 Kubernetes 文档 https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#pod-network,主机 cidr、pod cidr 和服务 cidr 最好不要重叠。 所有 EC2 实例都从主机 CIDR 获取 IP。 Kubernetes 中的所有 Pods 将从 Pod CIDR 获取 IP。这些 Pod IP 由 Cilium 而不是 Kubernetes 分配,因为 Cilium 负责在您的情况下为 Kubernetes 提供网络。 所有 Kubernetes 服务都从服务 CIDR 获取 clusterIP。这些 clusterIP 由 Kubernetes 分配。
根据下面的 kubeadm init 文档,service-cidr 的默认值为 10.96.0.0/12,这与您的 VPC cidr 10.0.0.0/16
不重叠
kubeadm init --help | grep cidr
--pod-network-cidr string Specify range of IP addresses for the pod network. If set, the control plane will automatically allocate CIDRs for every node.
--service-cidr string Use alternative range of IP address for service VIPs. (default "10.96.0.0/12")
- 根据 https://cilium.io/blog/2018/09/26/bionic-beaver#initialize-the-kubernetes-master 博客,您应该为 pods 使用 CIDR 10.217.0.0/16。因此,请在 kubeadm init 的命令下方 运行。 CIDR 10.217.0.0/16 也不与您的 VPC cidr 10.0.0.0/16 重叠
sudo kubeadm init --pod-network-cidr=10.217.0.0/16