我有一个现有的GKE集群,它是从Terraform中的某个配置创建的,这是我从GitHub教程中获得的。
集群有一个包含3个节点的默认节点池。
我试图通过GKE控制台添加另一个具有3个节点的节点池,
但是当我执行kubectl get nodes时,我只看到4个节点,而不是6个节点。
当我通过gcloud命令行尝试相同的命令时,
我记得因为IP空间我看到了一条消息。
似乎我不能有6个节点,因为IP空间。
如何更改现有集群的IP空间?
我对此做了一些研究,似乎不能将其更改为GKE中现有的集群?
那么,我如何在哪里为新集群设置这个IP空间呢?
更新
我在GCP中的通知中找到了错误消息:
(1)部署错误:不是在19.314823406 s之后在IGM中运行的所有实例。预期1.当前错误:'projects//regions/us-east4/subnetworks/-pods-4851bf1518184e60‘的IP空间耗尽: IP_SPACE_EXHAUSTED: IP_SPACE_EXHAUSTED’-6fa3ebb6-cw6t‘创建失败。(2)部署错误:不是所有在19.783096708之后在IGM中运行的实例。预期1.当前错误:'projects//regions/us-east4/subnetworks/-pods-4851bf1518184e60‘的IP空间耗尽,IP_SPACE_EXHAUSTED: Instance '-spec--bf111c8e-h8mm’创建失败。
发布于 2019-05-17 05:58:56
我已经解决了这个问题。
有关这一问题的背景资料可详细阅读这里。
具体而言,该部分:
"...if --您将每个节点的最大per设置为30,然后根据上表使用/26 CIDR范围,并为每个节点分配64个IP地址。如果不配置每个节点的最大per数,则使用/24 CIDR范围,并为每个节点分配256个IP地址.“
我已经通过Terraform演示部署了这个集群,所以我不知道如何通过GCP控制台或命令行进行更改。
我已经对Terraform中的配置进行了更改,从而解决了这个问题。
名为kubernetes_pods_ipv4_cidr的变量的Terraform配置为10.1.92.0/22。
这意味着为Pods的集群节点分配了10.1.92.0-10.1.95.255的范围。
根据GCP文档,默认情况下,节点最多将有110个Pods,并且分配256个IP地址。
因此,使用默认的每个节点的最大Pod数,我的集群上只能有4个节点,因为每个节点将为Pods分配256个IP地址。
我在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范围。
发布于 2019-05-14 08:51:17
您所看到的错误消息并不是您的GKE集群超出了IP空间(如果您为pod IP创建一个具有少量CIDR范围的集群,就会发生这种情况),而是存在集群的底层GCP网络空间不足。如果您查看运行集群的子网(根据您的错误消息看起来它被称为-pods-4851bf1518184e60 ),您应该会发现它没有足够的空间来添加额外的节点。
您可以通过删除新的节点池并尝试将原始节点池从3个节点扩展到6个节点来确认这是问题所在。
我不记得是否有一种方法可以动态扩展子网的大小。如果是这样,则可以向子网中添加IP空间以添加节点。如果没有,则需要在更大的子网中创建一个新的集群。
https://stackoverflow.com/questions/56123435
复制相似问题