如何用kubectl获取多个服务的状态?

How to get the status of multiple services with kubectl?

根据我对文档的理解,-R 标志应该正是这样做的,但对我来说,命令 kubectl rollout status -R -f k8s/services 失败并显示 error: rollout status is only supported on individual resources and resource collections - 3 resources were found

k8s/services 目录中,我有 3 个服务清单。错误消息中提到的资源集合是什么,例如不是 3 个服务?使用 -R 时目录应该是什么?

kubectl rollout status --help:

Show the status of the rollout.

 By default 'rollout status' will watch the status of the latest rollout until it's done. If you don't want to wait for
the rollout to finish then you can use --watch=false. Note that if a new rollout starts in-between, then 'rollout
status' will continue watching the latest revision. If you want to pin to a specific revision and abort if it is rolled
over by another revision, use --revision=N where N is the revision you need to watch for.

Examples:
  # Watch the rollout status of a deployment
  kubectl rollout status deployment/nginx

Options:
  -f, --filename=[]: Filename, directory, or URL to files identifying the resource to get from a server.
  -k, --kustomize='': Process the kustomization directory. This flag can't be used together with -f or -R.
  -R, --recursive=false: Process the directory used in -f, --filename recursively. Useful when you want to manage
related manifests organized within the same directory.
      --revision=0: Pin to a specific revision for showing its status. Defaults to 0 (last revision).
      --timeout=0s: The length of time to wait before ending watch, zero means never. Any other values should contain a
corresponding time unit (e.g. 1s, 2m, 3h).
  -w, --watch=true: Watch the status of the rollout until it's done.

Usage:
  kubectl rollout status (TYPE NAME | TYPE/NAME) [flags] [options]

Use "kubectl options" for a list of global command-line options (applies to all commands).

我已经用 kubectl 版本 1.141.15 进行了测试。

这意味着它找到了 3 个服务,但您只能看到特定服务的推出状态。喜欢 :

kubectl rollout status -f k8s/services/<svc-name>.yaml

当所有 yaml 都是 services 的子项时,您不需要使用 -R。

看看为什么在这个issue中添加了-R标志