[英]How to use kubectl to check the containers/pods of an application are spread to different AZs in an AWS EKS cluster?
我想看看應用程序的容器在集群中是如何分布/傳播的。 用什么命令可以查出來? 我想檢查容器是否都在同一個 AZ 中運行。
您可以將 kubectl 與自定義列一起使用以獲取任何自定義 output。因此,這取決於 EKS 使用哪些狀態數據(如果有)豐富 pod。 我建議檢查它是否設置了任何 EKS 特定標簽或注釋。
我可以提供自定義列的示例,以便您了解如何使用它:
kubectl get pods -A -o custom-columns='NAMESPACE:.metadata.namespace,NAME:.metadata.name,REQUESTS_CPU:.spec.containers[*].resources.requests.cpu,REQUESTS_MEMORY:.spec.containers[*].resources.requests.memory,LIMIT_CPU:.spec.containers[*].resources.limits.cpu,LiMIT_MEMORY:.spec.containers[*].resources.limits.memory'
該命令將向您顯示集群上的所有 pod 以及其 CPU 和 memory 請求的設置方式:
NAMESPACE NAME REQUESTS_CPU REQUESTS_MEMORY LIMIT_CPU LiMIT_MEMORY
cattle-system rancher-7c676f75c-29jrz <none> <none> <none> <none>
cattle-system rancher-7c676f75c-dz4k4 <none> <none> <none> <none>
cattle-system rancher-7c676f75c-hzs5q <none> <none> <none> <none>
cert-manager cert-manager-646c67487-8j4wz <none> <none> <none> <none>
cert-manager cert-manager-cainjector-7cb8669d6b-sxklw <none> <none> <none> <none>
cert-manager cert-manager-webhook-696c5db7ff-vzjdl <none> <none> <none> <none>
ingress-nginx ingress-nginx-admission-create-mt4cb <none> <none> <none> <none>
ingress-nginx ingress-nginx-admission-patch-99p6p <none> <none> <none> <none>
ingress-nginx nginx-ingress-controller-5dpjh <none> <none> <none> <none>
kube-system coredns-59499769fb-4m6m2 100m 70Mi <none> 170Mi
kube-system coredns-autoscaler-67cbd4599c-7ld97 20m 10Mi <none> <none>
kube-system kube-flannel-5fgzm 100m 50Mi 100m 50Mi
kube-system metrics-server-585b7cc746-bzksn 100m 200Mi <none> <none>
kube-system rke-coredns-addon-deploy-job-jjj4k <none> <none> <none> <none>
kube-system rke-ingress-controller-deploy-job-htrkn <none> <none> <none> <none>
kube-system rke-metrics-addon-deploy-job-fqzpd <none> <none> <none> <none>
kube-system rke-network-plugin-deploy-job-kffmk <none> <none> <none> <none>
為了弄清楚您可以在自定義列中包含哪些可用數據,我建議您獲取一個 pod,並將其顯示為 YAML,例如
kubectl get pod -n kube-system coredns-59499769fb-4m6m2 -o yaml
當您查看該 YAML 時,您將能夠了解如何引用您的自定義列 output。
對於每個服務,kube.netes 創建一個相應的端點資源,其中包含 pod 的 IP 地址。 您可以使用
kubectl describe endpoints <service-name>
找出那些IP。 然后你可以看看他們屬於哪個su.nets。
如果你想讓你的 pod 分布在你的可用區之間,請查看 pod 拓撲傳播約束:
https://kube.netes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.