Kubernetes Cheat Sheet
Kubernetes Cheat Sheet
Please set up an alias for kubectl as k and replace grep with findstr when using powershell terminal
1. Setting the Context and Configuration
Essential commands for starting your interaction with any Kubernetes cluster.
-
Set kubectl context:
k config use-context [context-name]
-
View current context:
k config current-context
-
List all contexts:
k config get-contexts
-
View detailed kubeconfig settings:
k config view
-
Set namespace permanently for all subsequent kubectl commands:
k config set-context --current --namespace=[namespace]
2. Cluster Information
Commands to inspect and manage the overall cluster environment.
-
Get cluster information:
k cluster-info
-
List all components:
k get componentstatuses
-
Get a detailed configuration view of the cluster:
k get cm
3. Nodes Management
Commands to view and manage nodes, which are the physical or virtual machines part of the cluster.
-
List nodes:
k get nodes
-
Describe node:
k describe node [node-name]
-
Mark node as unschedulable:
k cordon [node-name]
-
Enable scheduling on node:
k uncordon [node-name]
4. Managing Pods
Pods are the fundamental building block in Kubernetes, including commands to list containers within a pod.
-
List all pods in all namespaces:
k get pods --all-namespaces
-
Create a pod from a YAML file:
k apply -f [file.yaml]
-
Delete pod:
k delete pod [pod-name]
-
Get detailed information about a pod:
k describe pods [pod-name]
-
List containers in a pod using JSONPath:
k get pod [pod-name] -o=jsonpath='{.spec.containers[*].name}
-
Check container images used in a pod:
k get pod [pod-name] -o jsonpath="{.spec.containers[*].image}
-
List Environment Variables in a Pod:
k exec <pod_name> -- env
-
View Environment Variables for a Specific Container:
k exec <pod_name> -c <container_name> -- env
-
List Environment Variables for All Containers in a Pod:
k exec <pod_name> -- env --all-containers=true
5. Deployments, Replicasets, and StatefulSets
Commands to manage lifecycle and scaling of applications.
-
Create deployment:
k create deployment [name] --image=[image]
-
Scale a deployment:
k scale deployment [deployment-name] --replicas=[number]
-
Update deployment:
k set image deployment/[deployment-name] [container-name]=[new-image]:[tag]
-
List and manage StatefulSets:
k get statefulsets`, `k describe statefulsets [statefulset-name]
6. Services and Networking
Configuring network access to the applications running on Kubernetes.
-
Expose deployment as a service:
k expose deployment [deployment-name] --port=[port] --type=[type]
-
Get services:
k get svc
-
Edit service:
k edit svc [service-name]
7. ConfigMaps and Secrets
For managing configuration and secret data within Kubernetes.
-
Create a secret:
k create secret generic [secret-name] --from-literal=[key]=[value]
-
List secrets:
k get secrets
-
Create a ConfigMap:
k create configmap [configmap-name] --from-file=[path-to-file]
-
Get ConfigMaps:
k get configmaps
8. Debugging, Logs, and Diagnostics
Essential for troubleshooting applications and infrastructure.
-
Get logs for a pod:
k logs [pod-name]
-
Execute a command in a container
k exec -it [pod-name] -- [command]
-
Attach to running container:
k attach [pod-name] -i
-
Copy files and directories to and from containers:
k cp [local-path] [namespace]/[pod-name]:[path]
9. Resource Quotas and Limits
Managing resource allocation to ensure cluster efficiency.
-
View resource quotas:
k describe quota
-
Create resource quota:
k create quota [quota-name] --hard=[resource]=[value]
-
Set limits on a namespace:
k create limitrange [limit-range-name] --[limits]
10. Advanced Resource Management
Commands for detailed and specialized resource management.
-
Drain a node for maintenance:
k drain [node-name] --ignore-daemonsets
-
Delete resources by filenames, stdin, resources and names, or by resources and label selector:
k delete -f [file.yaml]
-
Apply a JSON or YAML file:
k apply -f [file.json or file.yaml]
If you have enjoyed this post, please consider buying me a coffee ☕ to help me keep writing!