我将尝试启动一个GKE集群,使用“custom”类型的网络,而不是“auto”类型的网络。
我使用以下命令来启动我的集群:
我收到以下错误:
似乎需要一个带有
我使用以下命令来启动我的集群:
$ gcloud container clusters create --cluster-ipv4-cidr=10.0.0.0/14 --network=ttest --subnetwork=ttest --num-nodes=1 jt
我收到以下错误:
Creating cluster jt...done.
ERROR: (gcloud.container.clusters.create) Operation [<Operation
name: u'operation-1467037655793-e319dc5e'
operationType: OperationTypeValueValuesEnum(CREATE_CLUSTER, 1)
selfLink: u'https://container.googleapis.com/v1/projects/TRUNCATED/zones/us-east1-b/operations/operation-1467037655793-e319dc5e'
status: StatusValueValuesEnum(DONE, 3)
statusMessage: u'Requested CIDR 10.0.0.0/14 is not available in network "ttest".'
targetLink: u'https://container.googleapis.com/v1/projects/TRUNCATED/zones/us-east1-b/clusters/jt'
zone: u'us-east1-b'>] finished with error: Requested CIDR 10.0.0.0/14 is not available in network "ttest".
似乎需要一个带有
/14
地址范围的网络或子网络,因此命令理论上应该可以工作,但实际上并没有。
这非常奇怪,因为我的网络看起来像这样:
ttest网络:
$ gcloud compute networks describe ttest
autoCreateSubnetworks: false
creationTimestamp: '2016-06-27T07:25:03.691-07:00'
id: '5404409453117999568'
kind: compute#network
name: ttest
selfLink: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/ttest
subnetworks:
- https://www.googleapis.com/compute/v1/projects/myproject/regions/us-east1/subnetworks/ttest
x_gcloud_mode: custom
测试子网络:
$ gcloud compute networks subnets describe ttest
creationTimestamp: '2016-06-27T07:25:21.649-07:00'
gatewayAddress: 10.0.0.1
id: '6237639993374575038'
ipCidrRange: 10.0.0.0/14
kind: compute#subnetwork
name: ttest
network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/ttest
region: https://www.googleapis.com/compute/v1/projects/myproject/regions/us-east1
selfLink: https://www.googleapis.com/compute/v1/projects/myproject/regions/us-east1/subnetworks/ttest
我曾尝试使用手动创建的遗留网络,其中--range=10.0.0.0/8
,然后尝试在该网络中创建群集,但似乎也不起作用。
看起来 /14 规则已经硬编码到 GKE 配置中的某个地方,但我不知道它想要在自定义网络中启动容器。
GKE 容器启动命令适用于任何模式/类型为 "auto" 的网络。
我查阅了相关文档,但没有太大的收获。唯一引人注目的是this page中的以下片段:
在与其他产品一起使用子网时,存在以下限制:
- Google 托管 VM:仅支持自动子网网络。无法部署在自定义子网网络中。
GKE 在幕后使用托管 VM 吗?这是导致问题的原因吗?
网络“mynetwork”在10.0.0.0/8中没有可用的专用IP空间来保留此集群的/14块
。昨晚我很晚才找到答案,这个网络的VPN曾经配置为Remote IP Network Ranges
为0.0.0.0/0
,然后又配置为10.0.0.0/8
,GKE可能会查看这个(我不知道如何),并发现它没有自己的空间而抱怨。但令人惊讶的是,我可以正常地计算引擎实例。 - ffledgling