我有一个现有的 GKE 集群,它是从 Terraform 中的一些配置创建的,我从 GitHub 的教程中获得。
集群有一个包含 3 个节点的默认节点池。
我尝试通过 GKE 控制台添加另一个具有 3 个节点的节点池,
但是当我执行 kubectl get nodes
时,我只看到 4 个节点,而不是 6 个。
当我通过 gcloud
命令行尝试相同时,
我记得因为 IP 空间而看到一条消息。
由于 IP 空间,我似乎不能有 6 个节点。
如何更改现有集群的 IP 空间?
我对此进行了一些研究,似乎无法为 GKE 中的现有集群更改它?
那么如何以及在哪里可以为新集群设置此 IP 空间?
更新 :
我在 GCP 的通知中发现了错误消息:
(1) deploy error: Not all instances running in IGM after 19.314823406s. Expect 1. Current errors: [IP_SPACE_EXHAUSTED]: Instance '--6fa3ebb6-cw6t' creation failed: IP space of 'projects//regions/us-east4/subnetworks/-pods-4851bf1518184e60' is exhausted. (2) deploy error: Not all instances running in IGM after 19.783096708s. Expect 1. Current errors: [IP_SPACE_EXHAUSTED]: Instance '-spec--bf111c8e-h8mm' creation failed: IP space of 'projects//regions/us-east4/subnetworks/-pods-4851bf1518184e60' is exhausted.
最佳答案
我已经弄清楚了这个问题。
可以详细阅读该问题的背景 here 。
具体来说,该部分:
"...if you set the maximum Pods per node to 30 then, per the table above, a /26 CIDR range is used, and each Node is assigned 64 IP addresses. If you do not configure the maximum number of Pods per node, a /24 CIDR range is used, and each node is assigned 256 IP addresses..."
我已经通过 Terraform 演示部署了这个集群,所以我不确定如何通过 GCP 控制台或命令行进行更改。
我对 Terraform 中的配置进行了更改,解决了这个问题。
名为
kubernetes_pods_ipv4_cidr
的变量的 Terraform 配置为 10.1.92.0/22。这意味着 10.1.92.0 – 10.1.95.255 的范围被分配给 Pod 的集群节点。
根据 GCP 文档,默认情况下,一个节点最多将拥有 110 个 Pod,并分配有 256 个 IP 地址。
因此,对于每个节点数量的默认最大 Pod,我的集群上只能有 4 个节点,因为每个节点将被分配 256 个 IP 地址用于 Pod。
我在 Terraform 配置中添加了一个新字段
default_max_pods_per_node
以将此最大值从默认值 110 减少到 55:resource "google_container_cluster" "my-cluster" {
provider = "google-beta"
name = "my-cluster"
project = "${local.my-cluster_project_id}"
location = "${var.region}"
default_max_pods_per_node = 55
之后,我的集群能够支持更多节点。
或者,您也可以更改分配给
kubernetes_pods_ipv4_cidr
的 IP 范围。
关于google-kubernetes-engine - 增加现有 GKE 集群的 IP 空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56123435/