skip to Main Content

I want to check the Kubernetes configuration – how many nodes, etc. I tried the following command.

kubectl describe cluster
error: the server doesn't have a resource type "cluster"

BTW, I tried to use the following command to check the AZ of the nodes of the pods. But it returns <none> for all the pods’ nodes.

kubectl get pods -o=custom-columns=NAME:.metadata.name,ZONE:.metadata.labels.'topology.Kubernetes.io/zone'

How to use kubectl to find the AZs of the pods?

3

Answers


  1. Try this command

    kubectl cluster-info
    
    Login or Signup to reply.
  2. I could be missing the point of your question, but if you just need the nodes, you could do

    kubectl get nodes

    and then

    kubectl describe node {node-name}

    to get further details of an individual node

    You could also combine the output from kubectl get nodes and either use jsonpath or jq to filter the information you need.

    Login or Signup to reply.
  3. Here are my nodes showing zone info(made up) in the cluster:

    kubectl get node -Ltopology.kubernetes.io/zone
    NAME                            STATUS   ROLES           AGE   VERSION   ZONE
    development-kube-controller-1   Ready    control-plane   48d   v1.24.6   zone
    development-kube-worker-1       Ready    <none>          48d   v1.24.6   zone-A
    development-kube-worker-2       Ready    <none>          48d   v1.24.6   zone-B
    

    Using the awk command, the label topology.kubernetes.io/zone is merged with the name of the pods scheduled on that particular node.

    NOTE: I have used lowercase k in the label key topology.kubernetes.io/zone; however, in your case, it’s uppercase K in the question. You might want to calibrate your command.

    kubectl describe  node |awk '/topology.kubernetes.io/zone/{zone=$1;next} /^  Namespace/{flag=1; getline; next} /^Allocated resources:/{flag=0} flag{print  $2, zone}' |column -t
    calico-node-swz7j                                      topology.kubernetes.io/zone=zone
    coredns-74d6c5659f-4mpcp                               topology.kubernetes.io/zone=zone
    dns-autoscaler-59b8867c86-w4dls                        topology.kubernetes.io/zone=zone       
    kubernetes-dashboard-648989c4b4-b4k7h                  topology.kubernetes.io/zone=zone-A
    kubernetes-metrics-scraper-84bbbc8b75-x72pf            topology.kubernetes.io/zone=zone-A
    nginx-proxy-development-kube-worker-1                  topology.kubernetes.io/zone=zone-A
    nodelocaldns-xt6hr                                     topology.kubernetes.io/zone=zone-A
    metallb-controller-94c85f6db-6j8j5                     topology.kubernetes.io/zone=zone-A
    metallb-speaker-4fz99                                  topology.kubernetes.io/zone=zone-A
    argocd-application-controller-0                        topology.kubernetes.io/zone=zone-B
    argocd-applicationset-controller-5bff759d68-kk7tx      topology.kubernetes.io/zone=zone-B
    argocd-dex-server-59c59b5d96-7z7th                     topology.kubernetes.io/zone=zone-B
    argocd-notifications-controller-6df97c8577-26z9m       topology.kubernetes.io/zone=zone-B
    argocd-redis-684fb8c6dd-bxb25                          topology.kubernetes.io/zone=zone-B
    argocd-repo-server-79d8c5f7b4-fnh7g                    topology.kubernetes.io/zone=zone-B
    

    PS: You can print $1 in the awk command to print the namespace, in case of filtering based on namespace is needed.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search