如何过滤gcloud container operations list命令输出?请求语法示例说明
如何过滤gcloud container operations list命令输出?请求语法示例说明
太懂这种烦恼了!管理20个GKE集群的时候,直接跑gcloud container operations list出来的数据量简直爆炸,官方文档那点--filter=[EXPRESSION]的提示完全不够看,连个实际例子都不给,--help里指向的过滤说明又太抽象,根本摸不清怎么写表达式。下面我给你整理几个实用的过滤场景和对应的命令,直接就能套用:
按特定集群过滤
如果你只想看某个集群的操作记录,最直接的方式是匹配操作名称里的集群名(操作名称会包含集群标识):gcloud container operations list --filter="name:my-gke-cluster"要是想更精准,也可以通过
target字段指定集群的完整资源路径(替换掉括号里的项目ID和区域):gcloud container operations list --filter="target:projects/[你的项目ID]/locations/[集群区域]/clusters/my-gke-cluster"按操作类型过滤
针对不同的运维场景,你可能只关注某一类操作,比如集群升级、节点池变更等:# 查看集群master节点的升级操作 gcloud container operations list --filter="operationType:UPGRADE_MASTER" # 查看节点池的升级/更新操作 gcloud container operations list --filter="operationType:UPGRADE_NODE_POOL" # 查看所有创建集群的操作 gcloud container operations list --filter="operationType:CREATE_CLUSTER" # 查看删除节点池的操作 gcloud container operations list --filter="operationType:DELETE_NODE_POOL"按操作状态过滤
有时候你只需要关注成功、失败或者正在运行的操作:# 只看已完成的操作 gcloud container operations list --filter="status:DONE" # 只看执行失败的操作(方便排查问题) gcloud container operations list --filter="status:FAILED" # 只看还在运行中的操作 gcloud container operations list --filter="status:RUNNING"按时间范围过滤
要是只想看最近一段时间的操作,比如过去24小时内的:# 查看最近24小时的操作(Linux/macOS适用) gcloud container operations list --filter="startTime>=$(date -d '24 hours ago' +%Y-%m-%dT%H:%M:%SZ)"也可以指定具体的时间区间:
# 查看2024年1月1日当天的操作 gcloud container operations list --filter="startTime>2024-01-01T00:00:00Z AND startTime<2024-01-02T00:00:00Z"组合多个过滤条件
把上面的条件组合起来,就能精准定位你要的记录,比如查看特定集群最近一周内的失败操作:gcloud container operations list --filter="name:my-gke-cluster AND status:FAILED AND startTime>=$(date -d '7 days ago' +%Y-%m-%dT%H:%M:%SZ)"
另外给你个小技巧:如果不确定哪些字段可以用来过滤,先跑下面的命令看一个操作的完整结构,里面的所有字段都能作为过滤条件:
gcloud container operations list --limit=1 --format=json
备注:内容来源于stack exchange,提问作者neoakris
相关产品推荐
相关产品推荐

