向现有集群添加新节点池失败,没有节点注册。
用于添加节点池的命令如下(项目名称已更改):
gcloud container --project my-project node-pools create hm-pool --cluster ds-cluster-west4 --zone europe-west4-c --node-version 1.16.9-gke.2 --machine-type n1-highmem-4 --image-type COS --disk-type pd-standard --disk-size 100 --metadata disable-legacy-endpoints=true --scopes logging-write,monitoring,pubsub,service-control,service-management,storage-full,taskqueue,trace --num-nodes 2 --enable-autoupgrade --enable-autorepair --max-surge-upgrade 1 --max-unavailable-upgrade 0
我收到以下错误消息
This will enable the autorepair feature for nodes. Please see https://cloud.google.com/kubernetes-engine/docs/node-auto-repair for more information on node autorepairs.
Creating node pool hm-pool...done.
ERROR: (gcloud.container.node-pools.create) Operation [<Operation
clusterConditions: [<StatusCondition
message: 'All cluster resources were brought up, but: only 0 nodes out of 2 have registered; cluster may be unhealthy.'>]
detail: 'All cluster resources were brought up, but: only 0 nodes out of 2 have registered; cluster may be unhealthy.'
endTime: '2020-06-04T15:17:05.810921209Z'
name: 'operation-1591282299021-26295b28'
nodepoolConditions: []
operationType: OperationTypeValueValuesEnum(CREATE_NODE_POOL, 7)
selfLink: 'https://container.googleapis.com/v1/projects/473462597806/zones/europe-west4-c/operations/operation-1591282299021-26295b28'
startTime: '2020-06-04T14:51:39.021046271Z'
status: StatusValueValuesEnum(DONE, 3)
statusMessage: 'All cluster resources were brought up, but: only 0 nodes out of 2 have registered; cluster may be unhealthy.'
targetLink: 'https://container.googleapis.com/v1/projects/473462597806/zones/europe-west4-c/clusters/ds-cluster-west4/nodePools/hm-pool'
zone: 'europe-west4-c'>] finished with error: All cluster resources were brought up, but: only 0 nodes out of 2 have registered; cluster may be unhealthy.
在控制台上,我看到消息“自动修复节点池 hm-pool 中的节点”。我看到它hm-pool
正在更新。池中有 0 个节点。
我究竟做错了什么?
问题在于新节点池的规范中缺少应用于集群的标签。我使用从现有节点之一提取标签信息,
gcloud compute instances describe --format="value[delimiter=','](tags.items) INSTANCE-NAME
并将输出用作--tags
node-pools create 命令选项的参数。然后成功创建了节点池。