---
tags:
  - Cheetsheet
---

Contexts and Configuration
--------------------------

| Command | Description |
| --- | --- |
| `kubectl config view` | Show the current kubeconfig file |
| `kubectl config get-contexts` | List all contexts in the kubeconfig file |
| `kubectl config current-context` | Show the current context |
| `kubectl config use-context <context>` | Change the current context |
| `kubectl config set-context <context> --namespace=<namespace>` | Set the namespace for a context |
| `kubectl config set-context <context> --cluster=<cluster>` | Set the cluster for a context |
| `kubectl config set-context <context> --user=<user>` | Set the user for a context |
| `kubectl config set-context <context> --namespace=<namespace> --cluster=<cluster> --user=<user>` | Set all context properties |

Cluster Management
------------------

| Command | Description |
| --- | --- |
| `kubectl cluster-info` | Display addresses of the master and services |
| `kubectl get nodes` | List all nodes in the cluster |
| `kubectl get pods` | List all pods in the cluster |
| `kubectl get services` | List all services in the cluster |
| `kubectl get deployments` | List all deployments in the cluster |
| `kubectl get namespaces` | List all namespaces in the cluster |
| `kubectl get events` | List all events in the cluster |

Resource Management
-------------------

| Command | Description |
| --- | --- |
| `kubectl apply -f <file>` | Apply a configuration file |
| `kubectl delete -f <file>` | Delete a configuration file |
| `kubectl get <resource>` | List all resources of a type |
| `kubectl describe <resource> <name>` | Describe a resource |
| `kubectl edit <resource> <name>` | Edit a resource |
| `kubectl exec -it <pod> -- <command>` | Execute a command in a pod |

Pod Management
--------------

| Command | Description |
| --- | --- |
| `kubectl run <name> --image=<image>` | Create a new pod |
| `kubectl delete pod <name>` | Delete a pod |
| `kubectl get pod <name>` | Get details of a pod |
| `kubectl describe pod <name>` | Describe a pod |
| `kubectl logs <name>` | Show logs of a pod |
| `kubectl exec -it <name> -- /bin/bash` | Execute a command in a pod |
| `kubectl cp <pod>:<source> <destination>` | Copy files from a pod |
| `kubectl top node` | Show metrics for all nodes |
| `kubectl top pod` | Show metrics for all pods |
| `kubectl top pod <name>` | Show metrics for a specific pod |

Service Management
------------------

| Command | Description |
| --- | --- |
| `kubectl expose pod <name> --port=444 --target-port=555` | Expose a pod as a service |
| `kubectl delete service <name>` | Delete a service |
| `kubectl get service <name>` | Get details of a service |
| `kubectl describe service <name>` | Describe a service |

Deployment Management
---------------------

| Command | Description |
| --- | --- |
| `kubectl create deployment <name> --image=<image>` | Create a new deployment |
| `kubectl delete deployment <name>` | Delete a deployment |
| `kubectl get deployment <name>` | Get details of a deployment |
| `kubectl describe deployment <name>` | Describe a deployment |
| `kubectl scale deployment <name> --replicas=3` | Scale a deployment to 3 replicas |
| `kubectl rollout status deployment/<name>` | Check the status of a deployment rollout |
| `kubectl rollout history deployment/<name>` | Show the history of a deployment rollout |
| `kubectl rollout undo deployment/<name>` | Rollback a deployment to the previous version |
| `kubectl rollout undo deployment/<name> --to-revision=1` | Rollback a deployment to a specific revision |

Namespace Management
--------------------

| Command | Description |
| --- | --- |
| `kubectl create namespace <name>` | Create a new namespace |
| `kubectl delete namespace <name>` | Delete a namespace |
| `kubectl get namespace <name>` | Get details of a namespace |
| `kubectl describe namespace <name>` | Describe a namespace |