如何解决gcloud 命令显示分配给实例的 vCPU 和内存
如何使用 glcoud 计算实例列表命令列出分配给实例的 vCPU 和内存。我能够构建以下命令,但它没有显示任何价值。我知道机器类型具有映射所需的所有信息,我正在寻找显示 vCPU 和内存的命令
gcloud compute instances list --format="value(name,machineType,items[].scheduling.minNodeCpus,zone,disks[].type,disks[].diskSizeGb.list())"
TestVM custom-4-32768-ext us-central1-a PERSISTENT 200
TestVM1 custom-4-32768-ext us-central1-a PERSISTENT 400
我正在寻找类似的东西
TestVM custom-4-32768-ext 8 32GB us-central1-a PERSISTENT 200
TestVM1 custom-4-32768-ext 4 16GB us-central1-a PERSISTENT 200
解决方法
有几个挑战:
-
instances describe
与实例名称和区域 配合使用效果最佳
- 需要
machine-types describe
(!?) 来为非自定义获取 CPU|RAM - 自定义机器类型是自描述的
在 Linux|Bash 上,以下是基本信息:
# Get instance name,zone for `${PROJECT}
for PAIR in $(\
gcloud compute instances list \
--project=${PROJECT} \
--format="csv[no-heading](name,zone.scope(zones))")
do
# Parse result from above into instance and zone vars
IFS=,read INSTANCE ZONE <<< ${PAIR}
# Get the machine type value only
MACHINE_TYPE=$(\
gcloud compute instances describe ${INSTANCE} \
--project=${PROJECT} \
--zone=${ZONE} \
--format="value(machineType.scope(machineTypes))")
# If it's custom-${vCPUs}-${RAM} we've sufficient info
if [[ ${MACHINE_TYPE}} == custom* ]]
then
IFS=- read CUSTOM CPU MEM <<< ${MACHINE_TYPE}
printf "%s: vCPUs: %s; Mem: %s\n" ${INSTANCE} ${CPU} ${MEM}
else
# Otherwise,we need to call `machine-types describe`
CPU_MEMORY=$(\
gcloud compute machine-types describe ${MACHINE_TYPE} \
--project=${PROJECT} \
--zone=${ZONE} \
--format="csv[no-heading](guestCpus,memoryMb)")
IFS=,read CPU MEM <<< ${CPU_MEMORY}
printf "%s: vCPUs: %s; Mem: %s\n" ${INSTANCE} ${CPU} ${MEM}
fi
done
我会让你根据需要与 instances describe
数据结合。
毫无疑问,还有另一种(可能更好)的方法来做到这一点。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。