File me Issues or star this repo.
Name | Command |
---|---|
Run curl test temporarily | kubectl run --generator=run-pod/v1 --rm mytest --image=yauritux/busybox-curl -it |
Run wget test temporarily | kubectl run --generator=run-pod/v1 --rm mytest --image=busybox -it wget |
Run nginx deployment with 2 replicas | kubectl run my-nginx --image=nginx --replicas=2 --port=80 |
Run nginx pod and expose it | kubectl run my-nginx --restart=Never --image=nginx --port=80 --expose |
Run nginx deployment and expose it | kubectl run my-nginx --image=nginx --port=80 --expose |
List authenticated contexts | kubectl config get-contexts , ~/.kube/config |
Set namespace preference | kubectl config set-context <context_name> --namespace=<ns_name> |
List pods with nodes info | kubectl get pod -o wide |
List everything | kubectl get all --all-namespaces |
Get all services | kubectl get service --all-namespaces |
Get all deployments | kubectl get deployments --all-namespaces |
Show nodes with labels | kubectl get nodes --show-labels |
Get resources with json output | kubectl get pods --all-namespaces -o json |
Validate yaml file with dry run | kubectl create --dry-run --validate -f pod-dummy.yaml |
Start a temporary pod for testing | kubectl run --rm -i -t --image=alpine test-$RANDOM -- sh |
kubectl run shell command | kubectl exec -it mytest -- ls -l /etc/hosts |
Get system conf via configmap | kubectl -n kube-system get cm kubeadm-config -o yaml |
Get deployment yaml | kubectl -n denny-websites get deployment mysql -o yaml |
Explain resource | kubectl explain pods , kubectl explain svc |
Watch pods | kubectl get pods -n wordpress --watch |
Query healthcheck endpoint | curl -L http://127.0.0.1:10250/healthz |
Open a bash terminal in a pod | kubectl exec -it storage sh |
Check pod environment variables | kubectl exec redis-master-ft9ex env |
Enable kubectl shell autocompletion | echo "source <(kubectl completion bash)" >>~/.bashrc , and reload |
Use minikube dockerd in your laptop | eval $(minikube docker-env) , No need to push docker hub any more |
Kubectl apply a folder of yaml files | kubectl apply -R -f . |
Get services sorted by name | kubectl get services –sort-by=.metadata.name |
Get pods sorted by restart count | kubectl get pods –sort-by=’.status.containerStatuses[0].restartCount’ |
List pods and images | kubectl get pods -o=’custom-columns=PODS:.metadata.name,Images:.spec.containers[*].image’ |
List all container images | list-all-images.sh |
kubeconfig skip tls verification | skip-tls-verify.md |
Ubuntu install kubectl | =”deb https://apt.kubernetes.io/ kubernetes-xenial main”= |
Reference | GitHub: kubernetes releases |
Reference | minikube cheatsheet, docker cheatsheet, OpenShift CheatSheet |
Name | Command |
---|---|
Get node resource usage | kubectl top node |
Get pod resource usage | kubectl top pod |
Get resource usage for a given pod | kubectl top <podname> --containers |
List resource utilization for all containers | kubectl top pod --all-namespaces --containers=true |
Name | Command |
---|---|
Delete pod | kubectl delete pod/<pod-name> -n <my-namespace> |
Delete pod by force | kubectl delete pod/<pod-name> --grace-period=0 --force |
Delete pods by labels | kubectl delete pod -l env=test |
Delete deployments by labels | kubectl delete deployment -l app=wordpress |
Delete all resources filtered by labels | kubectl delete pods,services -l name=myLabel |
Delete resources under a namespace | kubectl -n my-ns delete po,svc --all |
Delete persist volumes by labels | kubectl delete pvc -l app=wordpress |
Delete state fulset only (not pods) | kubectl delete sts/<stateful_set_name> --cascade=false |
Name | Comment |
---|---|
Config folder | /etc/kubernetes/ |
Certificate files | /etc/kubernetes/pki/ |
Credentials to API server | /etc/kubernetes/kubelet.conf |
Superuser credentials | /etc/kubernetes/admin.conf |
kubectl config file | ~/.kube/config |
Kubernetes working dir | /var/lib/kubelet/ |
Docker working dir | /var/lib/docker/ , /var/log/containers/ |
Etcd working dir | /var/lib/etcd/ |
Network cni | /etc/cni/net.d/ |
Log files | /var/log/pods/ |
log in worker node | /var/log/kubelet.log , /var/log/kube-proxy.log |
log in master node | kube-apiserver.log , kube-scheduler.log , kube-controller-manager.log |
Env | /etc/systemd/system/kubelet.service.d/10-kubeadm.conf |
Env | export KUBECONFIG=/etc/kubernetes/admin.conf |
Name | Command |
---|---|
List all pods | kubectl get pods |
List pods for all namespace | kubectl get pods -all-namespaces |
List all critical pods | kubectl get -n kube-system pods -a |
List pods with more info | kubectl get pod -o wide , kubectl get pod/<pod-name> -o yaml |
Get pod info | kubectl describe pod/srv-mysql-server |
List all pods with labels | kubectl get pods --show-labels |
List all unhealthy pods | kubectl get pods –field-selector=status.phase!=Running –all-namespaces |
List running pods | kubectl get pods –field-selector=status.phase=Running |
Get Pod initContainer status | kubectl get pod --template '{{.status.initContainerStatuses}}' <pod-name> |
kubectl run command | kubectl exec -it -n “$ns” “$podname” – sh -c “echo $msg >>/dev/err.log” |
Watch pods | kubectl get pods -n wordpress --watch |
Get pod by selector | kubectl get pods –selector=”app=syslog” -o jsonpath=’{.items[*].metadata.name}’ |
List pods and images | kubectl get pods -o=’custom-columns=PODS:.metadata.name,Images:.spec.containers[*].image’ |
List pods and containers | -o=’custom-columns=PODS:.metadata.name,CONTAINERS:.spec.containers[*].name’ |
Reference | Link: kubernetes yaml templates |
Name | Command |
---|---|
Filter pods by label | kubectl get pods -l owner=denny |
Manually add label to a pod | kubectl label pods dummy-input owner=denny |
Remove label | kubectl label pods dummy-input owner- |
Manually add annotation to a pod | kubectl annotate pods dummy-input my-url=https://dennyzhang.com |
Name | Command |
---|---|
Scale out | kubectl scale --replicas=3 deployment/nginx-app |
online rolling upgrade | kubectl rollout app-v1 app-v2 --image=img:v2 |
Roll backup | kubectl rollout app-v1 app-v2 --rollback |
List rollout | kubectl get rs |
Check update status | kubectl rollout status deployment/nginx-app |
Check update history | kubectl rollout history deployment/nginx-app |
Pause/Resume | kubectl rollout pause deployment/nginx-deployment , resume |
Rollback to previous version | kubectl rollout undo deployment/nginx-deployment |
Reference | Link: kubernetes yaml templates, Link: Pausing and Resuming a Deployment |
Name | Command |
---|---|
List Resource Quota | kubectl get resourcequota |
List Limit Range | kubectl get limitrange |
Customize resource definition | kubectl set resources deployment nginx -c=nginx --limits=cpu=200m |
Customize resource definition | kubectl set resources deployment nginx -c=nginx --limits=memory=512Mi |
Reference | Link: kubernetes yaml templates |
Name | Command |
---|---|
List all services | kubectl get services |
List service endpoints | kubectl get endpoints |
Get service detail | kubectl get service nginx-service -o yaml |
Get service cluster ip | kubectl get service nginx-service -o go-template=’{{.spec.clusterIP}}’ |
Get service cluster port | kubectl get service nginx-service -o go-template=’{{(index .spec.ports 0).port}}’ |
Expose deployment as lb service | kubectl expose deployment/my-app --type=LoadBalancer --name=my-service |
Expose service as lb service | kubectl expose service/wordpress-1-svc --type=LoadBalancer --name=ns1 |
Reference | Link: kubernetes yaml templates |
Name | Command |
---|---|
List secrets | kubectl get secrets --all-namespaces |
Generate secret | echo -n 'mypasswd', then redirect to base64 --decode |
Get secret | kubectl get secret denny-cluster-kubeconfig |
Get a specific field of a secret | kubectl get secret denny-cluster-kubeconfig -o jsonpath=”{.data.value}” |
Create secret from cfg file | kubectl create secret generic db-user-pass –from-file=./username.txt |
Reference | Link: kubernetes yaml templates, Link: Secrets |
Name | Command |
---|---|
List statefulset | kubectl get sts |
Delete statefulset only (not pods) | kubectl delete sts/<stateful_set_name> --cascade=false |
Scale statefulset | kubectl scale sts/<stateful_set_name> --replicas=5 |
Reference | Link: kubernetes yaml templates |
Name | Command |
---|---|
List storage class | kubectl get storageclass |
Check the mounted volumes | kubectl exec storage ls /data |
Check persist volume | kubectl describe pv/pv0001 |
Copy local file to pod | kubectl cp /tmp/my <some-namespace>/<some-pod>:/tmp/server |
Copy pod file to local | kubectl cp <some-namespace>/<some-pod>:/tmp/server /tmp/my |
Reference | Link: kubernetes yaml templates |
Name | Command |
---|---|
View all events | kubectl get events --all-namespaces |
List Events sorted by timestamp | kubectl get events –sort-by=.metadata.creationTimestamp |
Name | Command |
---|---|
Mark node as unschedulable | kubectl cordon $NODE_NAME |
Mark node as schedulable | kubectl uncordon $NODE_NAME |
Drain node in preparation for maintenance | kubectl drain $NODE_NAME |
Name | Command |
---|---|
List authenticated contexts | kubectl config get-contexts , ~/.kube/config |
Set namespace preference | kubectl config set-context <context_name> --namespace=<ns_name> |
Switch context | kubectl config use-context <context_name> |
Load context from config file | kubectl get cs --kubeconfig kube_config.yml |
Delete the specified context | kubectl config delete-context <context_name> |
List all namespaces defined | kubectl get namespaces |
List certificates | kubectl get csr |
Check user privilege | kubectl –as=system:serviceaccount:ns-denny:test-privileged-sa -n ns-denny auth can-i use pods/list |
Check user privilege | kubectl auth can-i use pods/list |
Reference | Link: kubernetes yaml templates |
Name | Command |
---|---|
Temporarily add a port-forwarding | kubectl port-forward redis-134 6379:6379 |
Add port-forwarding for deployment | kubectl port-forward deployment/redis-master 6379:6379 |
Add port-forwarding for replicaset | kubectl port-forward rs/redis-master 6379:6379 |
Add port-forwarding for service | kubectl port-forward svc/redis-master 6379:6379 |
Get network policy | kubectl get NetworkPolicy |
Name | Summary |
---|---|
Patch service to loadbalancer | kubectl patch svc $svc_name -p ‘{“spec”: {“type”: “LoadBalancer”}}’ |
Name | Summary |
---|---|
Enumerates the resource types available | kubectl api-resources |
List api group | kubectl api-versions |
List all CRD | kubectl get crd |
List storageclass | kubectl get storageclass |
Name | Summary |
---|---|
kube-apiserver | API gateway. Exposes the Kubernetes API from master nodes |
etcd | reliable data store for all k8s cluster data |
kube-scheduler | schedule pods to run on selected nodes |
kube-controller-manager | Reconcile the states. node/replication/endpoints/token controller and service account, etc |
cloud-controller-manager |
Name | Summary |
---|---|
kubelet | A node agent makes sure that containers are running in a pod |
kube-proxy | Manage network connectivity to the containers. e.g, iptable, ipvs |
Container Runtime | Kubernetes supported runtimes: dockerd, cri-o, runc and any OCI runtime-spec implementation. |
Name | Summary |
---|---|
DNS | serves DNS records for Kubernetes services |
Web UI | a general purpose, web-based UI for Kubernetes clusters |
Container Resource Monitoring | collect, store and serve container metrics |
Cluster-level Logging | save container logs to a central log store with search/browsing interface |
Name | Summary |
---|---|
kubectl | the command line util to talk to k8s cluster |
kubeadm | the command to bootstrap the cluster |
kubefed | the command line to control a Kubernetes Cluster Federation |
Kubernetes Components | Link: Kubernetes Components |
License: Code is licensed under MIT License.
https://kubernetes.io/docs/reference/kubectl/cheatsheet/
https://codefresh.io/kubernetes-guides/kubernetes-cheat-sheet/
Kubernetes Cheatsheet 1.1 Common Commands Name Command Run curl test temporarily kubectl run --generator=run-pod/v1 --rm mytest --image=yauritux/busybox-curl -it Run wget test temporarily kubectl run
from : https://cheatsheet.dennyzhang.com/cheatsheet-kubernetes-a4 PDF Link: cheatsheet-kubernetes-A4.pdf, Category: Cloud Blog URL: https://cheatsheet.dennyzhang.com/cheatsheet-kubernetes-A4 Related
Prerequisite on All Nodes Reset Environment (optional, for who installed k8s before) Rest kubeadm kubeadm reset Make sure no early version installed yum remove kubelet kubeadm kubectl docker-ce Node
五、kubernetes Objects(k8s对象) 1、什么是k8s对象 https://kubernetes.io/zh/docs/concepts/overview/working-with-objects/kubernetes-objects/ k8s里面操作的资源实体,就是k8s的对象,可以使用yaml来声明对象。然后让k8s根据yaml的声明创建出这个对象;kubectl creat
1.1 Common Commands Name Command Run curl test temporarily kubectl run --rm mytest --image=yauritux/busybox-curl -it Run wget test temporarily kubectl run --rm mytest --image=busybox -it Run nginx dep
CheatSheet This repo contains useful cheatsheets for several Programming Languages.Feel free to use the CheatSheets to help learn new skills. The following languages and libraries are currently availa
A cheatsheet for the Python Debugger (pdb) You may download a PDF or PNG version of the cheatsheet from thepdb-cheatsheet releases page.
创造不息,交付不止 Introduction A quick reference guide (cheat sheet) for Laravel 5.1 LTS, listing artisan, composer, routes and other useful bits of information. We intend to build this Cheat Sheet more asse
Pytorch Cheatsheet For more updated examples, see: Pytorch Kaggle Starter.
Solidity Cheatsheet and Best practices Motivation This document is a cheatsheet for Solidity that you can use to write Smart Contracts for Ethereum based blockchain. This guide is not intended to teac
Comprehensive Linux Cheatsheet Available at https://gto76.github.io/linux-cheatsheet/ How to generate 'index.html' from 'linux_cheatsheet.txt': $ ./parse.py > index.html