gcloud 命令常用操作有哪些?开发人员如何提高日常云服务器管理效率
对于使用Google Cloud的开发人员来说,真正提高工作效率的并不是记住大量命令,而是掌握一套稳定的命令行工作流程。查看资源、登录服务器、修改配置、检查日志、管理磁盘、设置权限以及清理闲置资源,都可以通过gcloud完成。
gcloud是Google Cloud CLI的核心命令行工具。它能够调用Google Cloud API,让开发人员不必每次都打开网页控制台进行操作。对于需要频繁管理服务器的人来说,熟练使用gcloud以后,很多原本需要点击多个页面才能完成的工作,只需要一条命令或者一个脚本即可完成。
一、先完成gcloud的基础配置
第一次使用gcloud时,首先需要进行登录和初始化配置。
常见操作包括:
gcloud init
登录Google账号以后,可以选择默认项目和默认计算区域。
如果已经登录,也可以使用:
gcloud auth login
查看当前使用的账号:
gcloud auth list
查看当前项目:
gcloud config get-value project
如果同时管理多个GCP项目,建议不要长期依赖默认项目,而是在执行重要操作前明确确认当前项目。
例如:
gcloud config set project PROJECT_ID
这一点非常重要。很多云服务器误操作并不是命令写错,而是开发人员在错误的项目中执行了正确的命令。
二、查看和管理Compute Engine实例
如果使用的是Google Compute Engine,最常用的命令之一就是查看实例列表:
gcloud compute instances list
它可以快速显示实例名称、区域、内部IP、公网IP以及当前状态。
查看某一台实例的详细配置:
gcloud compute instances describe INSTANCE_NAME --zone=ZONE
启动实例:
gcloud compute instances start INSTANCE_NAME --zone=ZONE
停止实例:
gcloud compute instances stop INSTANCE_NAME --zone=ZONE
删除实例:
gcloud compute instances delete INSTANCE_NAME --zone=ZONE
删除命令尤其需要谨慎。生产服务器执行删除之前,应确认磁盘、备份以及其他依赖资源是否已经处理。
三、SSH登录服务器可以直接使用gcloud
管理Linux云服务器时,不一定需要自己记录复杂的公网IP和SSH参数。
例如:
gcloud compute ssh INSTANCE_NAME --zone=ZONE
gcloud会根据当前项目和实例信息建立SSH连接。
这对于经常管理多台服务器的开发人员非常方便。
如果需要在服务器上执行一条命令,也可以使用:
gcloud compute ssh INSTANCE_NAME --zone=ZONE --command="uptime"
例如检查磁盘空间:
gcloud compute ssh INSTANCE_NAME --zone=ZONE --command="df -h"
检查内存:
gcloud compute ssh INSTANCE_NAME --zone=ZONE --command="free -h"
这样可以减少频繁登录服务器的操作。
四、网络和防火墙应该怎么管理
GCP的网络安全模型与某些云平台的“安全组”概念并不完全相同。Compute Engine常用的是VPC网络以及防火墙规则。
查看防火墙规则:
gcloud compute firewall-rules list
查看某一条规则:
gcloud compute firewall-rules describe RULE_NAME
创建允许HTTP流量进入的规则,例如:
gcloud compute firewall-rules create allow-http \
--allow=tcp:80 \
--target-tags=http-server
实际生产环境中,防火墙规则不应该简单地允许所有来源访问所有端口。
例如SSH通常没有必要向整个互联网开放。
更安全的方式是根据实际管理需求限制来源IP,或者采用更合适的身份认证和访问方式。
五、公网IP并不是越多越好
云服务器可以拥有内部IP,也可以配置外部IP。
内部IP适合VPC内部的服务器之间通信。
外部IP则适合需要从互联网直接访问的服务。
如果数据库服务器只需要被应用服务器访问,那么通常没有必要给数据库配置公网IP。
减少公网暴露面,本身就是一种重要的安全措施。
开发人员可以通过:
gcloud compute instances list
快速检查当前有哪些实例,以及它们是否存在外部IP。
对于长期不需要公网访问的服务器,应重新评估网络设计,而不是简单地给每台机器分配一个公网地址。
六、磁盘和快照管理
Compute Engine的系统盘和数据盘可以独立管理。
查看磁盘:
gcloud compute disks list
查看具体磁盘:
gcloud compute disks describe DISK_NAME --zone=ZONE
创建持久化磁盘:
gcloud compute disks create DISK_NAME \
--size=100GB \
--type=pd-balanced \
--zone=ZONE
然后可以将磁盘挂载到实例:
gcloud compute instances attach-disk INSTANCE_NAME \
--disk=DISK_NAME \
--zone=ZONE
需要注意,云平台上的“磁盘存在”与Linux系统里面“已经挂载并可以使用”是两回事。
创建并挂载磁盘以后,还需要在操作系统中进行分区、格式化和挂载等操作。
七、备份不要只依赖一块磁盘
对于重要服务器,快照是常见的备份方式之一。
可以使用:
gcloud compute disks snapshot DISK_NAME \
--snapshot-names=SNAPSHOT_NAME \
--zone=ZONE
查看现有快照:
gcloud compute snapshots list
删除不再需要的快照:
gcloud compute snapshots delete SNAPSHOT_NAME
但需要注意,快照不是万能备份。
对于重要业务,应该根据实际情况建立更加完整的备份策略,例如多个恢复点、跨区域备份以及定期恢复测试。
最容易被忽略的问题是:备份存在并不等于备份可恢复。
真正重要的数据应该定期测试恢复流程。
八、IAM权限管理比记住命令更加重要
Google Cloud中大量操作都受到IAM权限控制。
查看项目中的IAM策略:
gcloud projects get-iam-policy PROJECT_ID
如果需要给用户或者服务账号增加权限,可以使用:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="user:USER@example.com" \
--role="roles/ROLE_NAME"
生产环境中不应该为了方便直接给账号授予过高权限。
例如一个只需要读取存储桶的服务,没有必要赋予整个项目的管理员权限。
最基本的原则就是:
需要什么权限,就授予什么权限。
这就是最小权限原则。
九、服务账号不要直接把密钥放进代码
自动化程序通常需要访问Google Cloud资源,这时候可能使用Service Account或者Workload Identity等身份机制。
如果确实需要使用服务账号密钥,也不要把JSON密钥文件直接提交到Git仓库。
尤其不要把类似下面的内容写进公开代码:
service-account-key.json
一旦密钥泄露,攻击者可能直接利用云账户访问资源,造成数据泄露甚至产生高额云费用。
因此,在自动化部署环境中,应优先采用更安全的身份认证方式,并严格控制服务账号权限。
十、日志和监控不要靠人工一直盯着
云服务器出现问题以后,第一件事情通常不是重启,而是查看日志和状态。
Google Cloud提供Cloud Logging和Cloud Monitoring,可以帮助开发人员查看系统和应用运行情况。
例如,可以使用gcloud查询日志:
gcloud logging read \
'resource.type="gce_instance"' \
--limit=20
如果知道具体实例,还可以进一步增加过滤条件。
对于生产环境,更合理的做法是建立监控指标和告警。
例如CPU长期处于高负载、磁盘空间接近耗尽或者实例发生异常,都可以设置告警通知。
这样开发人员就不需要每天人工登录几十台服务器检查状态。
十一、使用--format提高命令行效率
gcloud一个非常实用的功能是格式化输出。
例如:
gcloud compute instances list \
--format="table(name,zone,status,networkInterfaces[0].networkIP)"
只显示自己真正需要的信息。
也可以使用:
gcloud compute instances list \
--format="value(name)"
得到纯实例名称列表。
这对于脚本自动化尤其有用。
例如:
for instance in $(gcloud compute instances list --format="value(name)"); do
echo "$instance"
done
这样就可以把gcloud输出直接交给Shell脚本继续处理。
十二、使用过滤器减少人工查找
资源数量多以后,list命令返回的信息可能非常庞大。
这时候应该学会使用过滤器。
例如:
gcloud compute instances list \
--filter="status=RUNNING"
只查看运行中的实例。
查看名称中包含特定字符串的实例:
gcloud compute instances list \
--filter="name~'test'"
通过过滤器,可以把大量重复性的人工查找工作变成一条命令。
十三、把重复操作写成脚本
如果每天都要执行同样的操作,就不应该每天手动输入。
例如需要依次检查服务器:
for instance in web-1 web-2 web-3
do
echo "Checking $instance"
gcloud compute ssh "$instance" \
--zone=us-central1-a \
--command="uptime"
done
这样几台服务器可以一次检查完成。
更复杂的任务还可以使用Python调用Google Cloud API或者相关SDK。
但是需要注意,自动化的前提是先确认逻辑正确。
一条错误的删除命令放进循环以后,效率提高的同时,破坏资源的速度也会提高。
十四、不要把所有服务器管理工作都交给gcloud
gcloud适合管理Google Cloud资源,但登录Linux服务器以后,真正管理操作系统时仍然需要使用Linux工具。
例如:
systemctl status nginx
查看Nginx服务。
journalctl -u nginx
查看Nginx日志。
df -h
查看磁盘空间。
free -h
查看内存。
因此,真正高效的云服务器管理能力其实是两套工具的结合:
gcloud负责云资源,Linux命令负责操作系统。
如果再加入Git、Shell脚本、CI/CD和监控系统,就可以形成比较完整的自动化管理流程。
十五、CI/CD可以进一步减少人工操作
当项目进入稳定开发阶段以后,可以把部署流程加入CI/CD。
例如代码提交以后:
代码进入Git仓库;
自动执行测试;
构建应用;
创建新的部署版本;
更新服务器;
检查服务状态;
出现问题则回滚。
这样开发人员就不需要每次登录服务器手动复制文件、修改配置和重新启动服务。
不过,生产环境中的自动部署必须增加权限控制、备份和回滚机制。
自动化不是“完全不需要人工”,而是把容易出错的重复工作标准化。
十六、成本管理同样属于服务器管理效率
云服务器最大的特点之一是资源按使用情况产生费用。
因此,开发人员应该定期检查:
哪些实例长期闲置;
哪些磁盘已经没有使用;
哪些快照已经没有必要保留;
哪些公网IP没有实际用途;
哪些资源配置明显超过业务需求。
查看实例:
gcloud compute instances list
查看磁盘:
gcloud compute disks list
查看快照:
gcloud compute snapshots list
通过这些基础命令,可以快速建立自己的资源清理流程。
不过,删除资源之前必须确认它确实已经不再使用。生产环境中最好先停止、备份,再删除,而不是通过脚本无条件清理。
十七、真正高效的gcloud使用方式
对于日常开发,没有必要把所有gcloud命令都背下来。
更有效的方法是建立自己的常用命令库。
例如每天最常用的可能只有:
gcloud compute instances list
gcloud compute ssh INSTANCE --zone=ZONE
gcloud compute instances describe INSTANCE --zone=ZONE
gcloud compute instances start INSTANCE --zone=ZONE
gcloud compute instances stop INSTANCE --zone=ZONE
gcloud compute disks list
gcloud compute snapshots list
gcloud compute firewall-rules list
gcloud logging read 'resource.type="gce_instance"' --limit=20
掌握这些基础操作以后,再根据自己的项目逐渐增加命令即可。
从更长远的角度看,gcloud真正的价值并不是“用命令代替鼠标点击”,而是让云资源管理变得可重复、可自动化、可审计。
手动在网页控制台创建一台服务器,只解决了一次问题;把创建、配置、部署、监控和备份写成可以重复执行的流程,才真正提高了开发效率。
对于个人开发者和小型团队来说,最合理的路线通常是先掌握gcloud基础命令,再建立Shell脚本和备份流程,随后逐步引入CI/CD、监控告警以及基础设施即代码。这样既可以减少重复劳动,也能够降低误操作风险,让云服务器从“手动维护的机器”逐渐变成一套可以标准化管理的基础设施。
gcloud 命令常用操作有哪些,开发人员如何提高日常云服务器管理效率
喜欢这篇报道?
使用下面的功能,方便以后继续阅读和分享 MNewsTV
关于文章收藏
收藏不需要注册帐号,收藏信息仅保存在当前浏览器中。
删除收藏请进入「我的收藏」进行管理。
分享 Facebook | X | WhatsApp | LinkedIn
捐助(Paypal): https://www.paypal.me/observeccp 订阅中国观察电报 Telegram : https://t.me/s/ObserveCCP