列出在 Kubernetes 中运行的所有控制器

mur*_*mit 8 kubernetes kubectl

我刚刚通过 Helm 安装了控制器,我可以通过 列出 helm 包helm list,但是是否可以通过kubectl或列出集群中运行的所有控制器api-query

cgr*_*rim 5

如果您的意思是复制控制器,那么您可以通过kubectl以下方式列出它们:

kubectl get replicationcontroller -n my-namespace
Run Code Online (Sandbox Code Playgroud)

或者从所有命名空间中列出它们:

kubectl get rc --all-namespaces
Run Code Online (Sandbox Code Playgroud)

您还可以使用 API:

curl http://localhost:8080/api/v1/replicationcontrollers
Run Code Online (Sandbox Code Playgroud)

更新: 您可以以相同的方式列出其他控制器类型,例如replicaset( rs)、deployment( deploy)、statefulsetdaemonset( ds) job


San*_*ngh 5

不确定是否有办法列出 k8s 中的控制器。k8s 中的每个资源/对象都由控制器(控制循环)控制,其中规范字段作为所需状态的值。如果您在控制平面之外部署了控制器(内置控制器),那么我将如何找到控制器:

  1. 通过运行找到资源/对象kubectl api-resources
  2. 验证列表并找到资源名称
  3. 搜索所有 pod 并 grep 资源名称kubectl get pods --all-namespaces |grep <resource-name>
  4. 上面搜索中的 pod 将运行您的控制器
  5. 注意:pod 名称可能不包含资源名称,但会包含一些类似的名称。我只是分享此信息以了解控制器是什么以及外部控制器(内置控制器)之外的工作原理。

更多信息 - https://kubernetes.io/docs/concepts/architecture/controller/