如何快速查询/验证一个 pod 是“裸 pod”还是复制控制器支持的 pod?

如何快速查询/验证一个 pod 是“裸 pod”还是复制控制器支持的 pod?

在 OKD v3.11 中,如何确定节点上运行的 pod 是否受复制控制器的控制。是否有 oc 命令或控制台功能可以快速找到信息?谢谢,

答案1

您可以依靠ownerReferencesAPI 对象来找到它:

$ kubectl 解释 pod.metadata.ownerReferences

种类: Pod

版本:v1

资源:ownerReferences <[]Object>

描述:此对象所依赖的对象列表。如果列表中的所有对象都已删除,则此对象将被垃圾回收。如果此对象由控制器管理,则此列表中的条目将指向此控制器,并将控制器字段设置为 true。管理控制器不能超过一个。

裸 Pod(即没有控制器 / 所有者的 Pod)将不包含该ownerReferences字段,因此您可以使用它--custom-columns来找出哪些 Pod 受到控制或不受控制:

$ kubectl get pods --all-namespaces -o custom-columns=NAME:.metadata.name,CONTROLLER:.metadata.ownerReferences[].kind,NAMESPACE:.metadata.namespace
NAME                               CONTROLLER   NAMESPACE
nginx-85ff79dd56-tvpts             ReplicaSet   default
static-pod1                        <none>       default
static-pod2                        <none>       default
coredns-5644d7b6d9-6hg82           ReplicaSet   kube-system
coredns-5644d7b6d9-wtph7           ReplicaSet   kube-system
etcd-minikube                      <none>       kube-system
kube-addon-manager-minikube        <none>       kube-system
kube-apiserver-minikube            <none>       kube-system
kube-controller-manager-minikube   <none>       kube-system
kube-proxy-fff5c                   DaemonSet    kube-system
kube-scheduler-minikube            <none>       kube-system
storage-provisioner                <none>       kube-system
tiller-deploy-55c9c4b4df-hgzwm     ReplicaSet   kube-system

相关内容