google-kubernetes-engine - 增加现有 GKE 集群的 IP 空间

标签 google-kubernetes-engine

我有一个现有的 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/

相关文章:

docker - kubernetes:在pod启动后挂载主机路径卷

kubernetes - 为什么 `kubectl logs` 只显示最近的日志行?

nginx - Kubernetes 中带有 nginx 入口 Controller 的 Kibana

作业失败后 Kubernetes pod 消失

kubernetes - Ingress无法暴露Kubernetes pods

google-compute-engine - 通过API创建GCE Kube集群v1.2失败

ssl - k8s 入口多个与 tls 主机

kubernetes - Istio 的最小 Google Kubernetes Engine 集群大小/配置是多少?

docker - 如何将 docker 镜像从 localhost docker 私有(private)注册表拉到 GKE?

google-cloud-platform - Google Cloud 构建条件步骤