0

我在一个多集群入口后面的谷歌云上运行多个 GKE 集群,其设置需要一些修补。

话虽如此,当我把它整理出来时,我已经用完了我的 5 个子网,特别是在 us-east1 区域。我不需要超过 5 个,但是......显然删除集群并不会删除使用它创建的子网

因此 — 我需要手动删除未使用的子网,为此我需要知道子网名称。

我的问题是,我在 GCP 的文档中找不到任何描述使用新 GKE 集群创建后子网名称的位置(未指定子网名称)。

使用以下 Create Cluster 命令(例如),子网名称将是什么:

gcloud container clusters create example-cluster --num-nodes=1 --region us-east1-c \
  --machine-type g1-small \
  --enable-ip-alias --cluster-ipv4-cidr=10.2.0.0/21 \
  --services-ipv4-cidr=10.6.0.0/19

以下 gcloud 子网文档 ( https://cloud.google.com/vpc/docs/configure-alias-ip-ranges ) 描述了如何列出子网 - 但在运行时: gcloud compute networks list我只得到默认响应:

NAME     SUBNET_MODE  BGP_ROUTING_MODE  IPV4_RANGE  
default  AUTO         REGIONAL

我知道在该区域内创建了多个子网,因为尝试创建另一个子网(使用新集群)会给我以下错误:

“重试预算用尽(5 次尝试):Google Compute Engine:超过每个子网支持的最大辅助范围数:5。” 结束时间:u'2019-01-10T22:16:14.496871616Z'

我对允许我正确列出区域中所有子网的其他解决方案持开放态度,但我的问题是 GKE 如何命名一个没有名称创建的子网

4

1 回答 1

4

好的。我刚放弃并发布问题,就发现有一个 gcloud beta 功能可以列出容器网络子网:

gcloud beta container subnets list-usable

你可以在这里找到完整的文档: https ://cloud.google.com/sdk/gcloud/reference/beta/container/subnets/list-usable

基本上使用问题中规定的集群创建命令,GKE 将创建两个辅助范围,一个用于 Pod,一个用于服务,如下所示:

┌───────────────────────────────────────┬───────────────┬──────────┐
│          SECONDARY_RANGE_NAME         │ IP_CIDR_RANGE │  STATUS  │
├───────────────────────────────────────┼───────────────┼──────────┤
│ gke-example-cluster-pods-241ef819     │ 10.0.0.0/21   │ unusable │
│ gke-example-cluster-services-241ef819 │ 10.4.0.0/19   │ unusable │

我不确定次要范围名称末尾标记的字符是什么,但我假设它们是为每个集群唯一生成的,因为它们在我的多区域集群中都是不同的。

我根据上述命令发现的一件奇怪的事情是,每个区域中只能有两个可使用 VPC Native 网络进行路由的集群。

虽然这确实适用于我的用例(我同意它应该适用于大多数人),但我只是觉得它很有趣。作为使用上述命令的旁白,我看到使用 GKE 创建的范围在集群删除时被删除,但是每个网络最多只能有 5 个子网范围(在这种情况下为默认值)。

我的猜测是你可以创建一个额外的子网,然后在其中有额外的二级范围——但我现在还没有尝试过。

于 2019-01-10T22:55:27.117 回答