无法使用 'gcloud alpha' 命令使用 NVMe 接口使用本地 SSD 创建 GKE

Unable to use 'gcloud alpha' command to create GKE with local SSDs using NVMe interface

我正在尝试使用预配置的本地 SSD 配置创建 GKE - 即我希望设备使用 NVMe 接口并执行 not format/mount设备。

gcloud alpha container clusters create 命令,如 here 所述,有一个名为 --local-ssd-volumes 的命令行选项,它支持这些选项。

提供示例:

gcloud alpha container clusters create example_cluster --local-ssd-volumes count=2,type=nvme,format=fs

'count' must be between 1-8
'type' must be either scsi or nvme
'format' must be either fs or block

每当我尝试使用 --local-ssd-volumes 选项时,我都会得到:

ERROR: (gcloud.alpha.container.clusters.create) ResponseError: code=404, message=Method not found.

在进行故障排除时,我发现了使用 GCP Web 控制台生成大部分 gcloud 配置的建议。这导致我使用以下命令行:

$ gcloud alpha container --project "<REDACTED>" clusters create "gcp-ceph" \
  --zone "europe-west2-b" --no-enable-basic-auth \
  --cluster-version "1.20.8-gke.900" --release-channel "None" \
  --machine-type "n2-standard-2" --image-type "UBUNTU_CONTAINERD" \
  --disk-type "pd-standard" --disk-size "100" \
  --metadata disable-legacy-endpoints=true \
  --scopes "https://www.googleapis.com/auth/devstorage.read_only","https://www.googleapis.com/auth/logging.write","https://www.googleapis.com/auth/monitoring","https://www.googleapis.com/auth/servicecontrol","https://www.googleapis.com/auth/service.management.readonly","https://www.googleapis.com/auth/trace.append" \
  --max-pods-per-node "110" \
  --enable-kubernetes-alpha \
  --num-nodes "5" --enable-stackdriver-kubernetes \
  --enable-ip-alias --network "projects/<REDACTED>/global/networks/default" 
  --subnetwork "projects/<REDACTED>/regions/europe-west2/subnetworks/default" \
  --no-enable-intra-node-visibility --default-max-pods-per-node "110" \
  --no-enable-master-authorized-networks \
  --addons HorizontalPodAutoscaling,HttpLoadBalancing,GcePersistentDiskCsiDriver \
  --no-enable-autoupgrade --no-enable-autorepair \
  --max-surge-upgrade 1 --max-unavailable-upgrade 0 --enable-shielded-nodes \
  --node-locations "europe-west2-b" \
  --local-ssd-volumes "count=8,type=nvme,format=block"

GCP 控制台建议我在按 Equivalent COMMAND LINE 时使用 gcloud beta。当我 运行 这样做时,我得到一个预期的错误,指出该命令不在 Beta 中,但在 alpha 中找到。

ERROR: (gcloud.beta.container.clusters.create) unrecognized arguments:

 --local-ssd-volumes flag is available in one or more alternate release tracks. Try:

  gcloud alpha container clusters create --local-ssd-volumes

当我使用 gcloud alpha 时出现 404 Method Not Found 错误。

我如何运行这个命令?我需要将我的项目列入白名单吗?

要回答您的问题,产品仍处于测试阶段,您可能需要 whitelisted/invited。检查底部的 notes 部分。

beta 中,除了计数之外,我没有看到本地磁盘的其他选项,所以我认为此时它不能与 gcloud beta 一起使用。

获得邀请的可能方式。请注意,此答案更适用于一般社区,并不能保证成功:

  1. 根据产品的不同,可能会提供表格,例如 Google blog。以新产品为例,这可能会发生。
  2. 可以访问 Google 的客户经理。这意味着您目前正在使用 Google.
  3. 联系销售。
  4. Post 在 Google Discussion 中,因为它们由 Googlers 监控,但不保证邀请成功。也许如果您解释您的业务需求,您可能会看到一些牵引力。

Alpha API 仅在 alpha 集群上启用,并不适合生产使用。以下是 relevant documentation 的一些摘录:

To ensure stability and production quality, normal GKE clusters only enable features that are beta or higher. Alpha features are not enabled on normal clusters because they are not production-ready or upgradeable.

Warning: Do not use Alpha clusters or alpha features for production workloads. Alpha clusters expire after thirty days and do not receive security updates. You must migrate your data from alpha clusters before they expire. GKE does not automatically save data stored on alpha clusters.