cry*_*bhu 5 google-kubernetes-engine
我有一个现有的 GKE 集群,它是从 Terraform 中的一些配置创建的,我从 GitHub 的教程中获得。
集群有一个包含 3 个节点的默认节点池。
我尝试通过 GKE 控制台添加另一个具有 3 个节点的节点池,
但是当我这样做时,kubectl get nodes我只看到 4 个节点,而不是 6 个。
当我通过gcloud命令行尝试相同时,
我记得由于 IP 空间而看到一条消息。
由于 IP 空间,我似乎不能有 6 个节点。
如何更改现有集群的 IP 空间?
我对此进行了一些研究,似乎无法为 GKE 中的现有集群更改它?
那么如何以及在哪里可以为新集群设置此 IP 空间?
更新:
我在 GCP 的通知中发现了错误消息:
(1) 部署错误:并非所有实例都在 19.314823406s 之后在 IGM 中运行。预期 1. 当前错误:[IP_SPACE_EXHAUSTED]:实例 '--6fa3ebb6-cw6t' 创建失败:'projects//regions/us-east4/subnetworks/-pods-4851bf1518184e60' 的 IP 空间已用完。(2) 部署错误:并非所有实例在 19.783096708s 之后都在 IGM 中运行。预期 1. 当前错误:[IP_SPACE_EXHAUSTED]:实例 '-spec--bf111c8e-h8mm' 创建失败:'projects//regions/us-east4/subnetworks/-pods-4851bf1518184e60' 的 IP 空间已用完。
我已经弄清楚了这个问题。
可以在此处详细阅读该问题的背景信息。
具体来说,该部分:
“...如果您将每个节点的最大 Pod 数设置为 30,那么根据上表,将使用 /26 CIDR 范围,并为每个节点分配 64 个 IP 地址。如果您未配置每个节点的最大 Pod 数, 使用了 /24 CIDR 范围,并且每个节点被分配了 256 个 IP 地址......”
我已经通过 Terraform 演示部署了这个集群,所以我不确定如何通过 GCP 控制台或命令行进行更改。
我对 Terraform 中的配置进行了更改,解决了这个问题。
名为变量的 Terraform 配置为kubernetes_pods_ipv4_cidr10.1.92.0/22。
这意味着 10.1.92.0 – 10.1.95.255 的范围被分配给 Pod 的集群节点。
根据 GCP 文档,默认情况下,一个节点最多将拥有 110 个 Pod,并分配有 256 个 IP 地址。
因此,对于每个节点数量的默认最大 Pod,我的集群上只能有 4 个节点,因为每个节点将被分配 256 个 IP 地址用于 Pod。
我default_max_pods_per_node在 Terraform 配置中添加了一个新字段 ,以将此最大值从默认值 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
Run Code Online (Sandbox Code Playgroud)
之后,我的集群能够支持更多节点。
或者,您也可以更改分配给 的 IP 范围kubernetes_pods_ipv4_cidr。
您看到的错误消息并不是您的 GKE 集群 IP 空间不足(如果您创建一个 Pod IP CIDR 范围较小的集群,则可能会发生这种情况),而是集群所在的底层 GCP 网络已超出的空间。如果您查看集群运行所在的子网(看起来是-pods-4851bf1518184e60根据您的错误消息调用的),您应该会发现它没有足够的空间来添加其他节点。
您可以通过删除新节点池并尝试将原始节点池从 3 个节点扩展到 6 个节点来确认问题所在。
我不记得是否有办法动态扩展子网的大小。如果是这样,那么您可以将 IP 空间添加到子网中以添加节点。如果没有,您将需要在更大的子网中创建一个新集群。
| 归档时间: |
|
| 查看次数: |
3833 次 |
| 最近记录: |