Start with the nodes. There is one.
The columns are NAME, STATUS, ROLES, AGE and VERSION. VERSION is the kubelet version on that node. -o wide adds the IP, OS and container runtime:
kubectl get nodes -o wideDescribe the node
describe prints everything the API server knows about an object, formatted for reading:
kubectl describe node shallows-node-1Find these sections:
- Conditions:
Readymust beTrue.MemoryPressure,DiskPressureandPIDPressureshould beFalse. - Capacity and Allocatable: CPU, memory and the Pod limit.
- System Info: kernel, OS image, container runtime, kubelet version.
The system workloads
The control plane add-ons run as normal Pods in the kube-system namespace:
kubectl get pods -n kube-system
kubectl get deployments -n kube-systemCoreDNS answers cluster DNS. metrics-server collects CPU and memory. The local-path provisioner creates storage on the node. Count the Deployments for the objective.
version prints the client and server versions. cluster-info prints where the API server and the add-on endpoints are:
kubectl version$ kubectl cluster-info
Kubernetes control plane is running at https://10.0.0.10:6443
CoreDNS is running at https://10.0.0.10:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxyLabel the node
Labels work on Nodes the same way they work on Pods:
kubectl label node shallows-node-1 role=training
kubectl get node shallows-node-1 --show-labels