26
Kubernetes Cheatsheet
Kubernetes is a portable, extensible, open-source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available. Kubernetes provides you with a framework to run distributed systems resiliently. It takes care of scaling and failover for your application, provides deployment patterns, canary deployments, and more. In this blog post, I will mention Kubernetes commands which we need for most of the use-cases.
I will list down kubectl
commands in the sections below as a quick reference to work with Kubernetes.
- Get list of all namespaces
kubectl get namespaces
- Get list of all pods
kubectl get pods
- Get list of all pods with detailed information like IP, Node Name etc...
kubectl get pods -o wide
- Get list of all pods running on a particular node server
kubectl get pods --field-selector=spec.nodeName=[server-name]
- Get list of all replication controllers and services
kubectl get replicationcontroller,services
- Get list of daemonsets
kubectl get daemonset
- Create a new namespace
kubectl create namespace [namespace-name]
- Create a new namespace from JSON or YAML file.
kubectl create βf [filename]
To apply or update a resource use the kubectl apply
command.
- Create a new service with the definition contained in [service-config].yaml
kubectl apply -f [service-config].yaml
- Create a new replication controller with the definition contained in [controller-config].yaml
kubectl apply -f [controller-config].yaml
- Create the objects defined in any .yaml, .yml, or .json file in a directory
kubectl apply -f [yaml-file/directory-name]
- Edit a service config
kubectl edit svc/[service-name]
Above command opens the file in your default editor. To choose another editor, specify it in front of the command:
KUBE_EDITOR=β[editor-name]β kubectl edit svc/[service-name]
- Get Details about Particular Node
kubectl describe nodes [node-name]
- Get Details about a Particular pod
kubectl describe pods [pod-name]
- Get Details about a Particular pod whose name and type are listed in
pod.json
kubectl describe βf pod.json
- Get Details about a Particular pod managed by a specific replication controller
kubectl describe pods [replication-controller-name]
- Get Details about all pods
kubectl describe pods
- Delete a pod using the name and type mentioned in pod.yaml
kubectl delete -f pod.yaml
- Delete all pods and services with a specific label
kubectl delete pods,services -l [label-key]=[label-value]
- Delete all pods
kubectl delete pods --all
- Get output from a command run on the first container in a pod
kubectl exec [pod-name] -- [command]
- Get output from a command run on a specific container in a pod
kubectl exec [pod-name] -c [container-name] -- [command]
- Run /bin/bash from a specific pod. The received output comes from the first container
kubectl exec -ti [pod-name] -- /bin/bash
- Print Logs from Pod
kubectl logs [pod-name]
- Stream Logs from Pod
kubectl logs -f [pod-name]
- Tail Logs from Pod (Print last 200 logs from pod)
kubectl logs --tail=200 [pod-name]
kubectl config
command lets you view and modify kubeconfig files.
- Get Current Context
kubectl config current-context
- Set cluster entry in kubeconfig
kubectl config set-cluster [cluster-name] --server=[server-name]
- Unset an entry in kubeconfig
kubectl config unset [property-name]
Hope you find these resources useful. If you like what you read and want to see more about system design, microservices, and other technology-related stuff... You can follow me on
- Twitter - Follow @vishnuchi
- Subscribe to my weekly newsletter here.
26