[英]Understanding actual and virtual subnets in Kubernetes
我在 AWS 上設置了一個自我管理的 Kubernetes 集群,在一個 VPC 中使用三個實例,CIDR 為10.0.0.0/16
,一個 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 和服務 c 不重疊. 所有 EC2 實例都從主機 CIDR 獲取 IP。 Kubernetes 中的所有 Pod 將從 Pod CIDR 獲取 IP。 這些 Pod IP 由 Cilium 分配,而不是由 Kubernetes 分配,因為 Cilium 在您的情況下負責為 Kubernetes 提供網絡。 所有 Kubernetes 服務都從服務 CIDR 獲取集群 IP。 這些 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")
sudo kubeadm init --pod-network-cidr=10.217.0.0/16
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.