Kubernetes - mwicat/personal GitHub Wiki
get events
alias kge='kubectl get events --sort-by=.metadata.creationTimestamp --sort-by=.metadata.creationTimestamp -o custom-columns=CREATED:.metadata.creationTimestamp,NAME:.metadata.name,MSG:.message'
get info
kubectl version
kubectl cluster-info
restart deployment
kubectl rollout restart deployment/frontend
Terminal UI (Kui)
curl -sL https://raw.githubusercontent.com/IBM/kui/master/tools/install.sh | sh
Context
get current context
kubectl config current-context
list contexts
kubectl config get-contexts
set current context
kubectl config use-context my-cluster-name
create namespace
kubectl create namespace yournamespace
set namespace preference for current context
kubectl config set-context --current --namespace=mynamespace
Pods
get pods in namespace (get namespace from get-contexts)
kubectl -n myns get pods --show-labels
get pod info
kubectl get pod -o yaml my-pod-name | pygmentize
run shell in pod container
kubectl exec -it pod-name -- /bin/bash
show events from pod (when it can't start f.ex.)
kubectl describe pod pod-name
get all pods
kubectl get pods -A -o wide --show-labels
Other
list namespaces
kubectl get namespace --show-labels
get all everything
kubectl get all
delete
kubectl delete deployment.apps/simple-deployment service/simple-service
delete all in namespace
kubectl delete all --all --namespace=mynamespace
list services
kubectl get services
list ingress
kubectl get ingress
list clusters
kubectl config get-clusters
minikube
install
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \
&& chmod +x minikube
sudo mkdir -p /usr/local/bin/
sudo install minikube /usr/local/bin/
start
kubernetes_version='v1.18.12'
minikube start --kubernetes-version="${kubernetes_version}" --driver=docker
list services
minikube service list
kubectl
generic
kubernetes_version='v1.18.12'
curl -LO "https://storage.googleapis.com/kubernetes-release/release/${kubernetes_version}/bin/linux/amd64/kubectl"
sudo install kubectl /usr/local/bin/
commands
minikube kubectl get componentstatuses
minikube kubectl get nodes
minikube kubectl describe nodes minikube
Helm
- https://helm.sh/docs/topics/charts/#:~:text=Helm%20uses%20a%20packaging%20format,%2C%20caches%2C%20and%20so%20on.
- https://helm.sh/docs/chart_template_guide/
Install
debian
curl https://helm.baltorepo.com/organization/signing.asc | sudo apt-key add -
sudo apt-get install apt-transport-https --yes
echo "deb https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helm
generic
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
Render templates
helm template RELEASE_NAME HELM_DIR
Download and extract chart
helm pull --untar repo/mongo --version 1.5.3
Search chart repository
helm search repo myrepo/ --versions
helm search repo mypkg --versions
Add chart repository
helm repo add stable https://kubernetes-charts.storage.googleapis.com
helm dependency build
Debug chart
helm install --dry-run your-release-name chart-dir > debug.yaml
Skaffold
Install
curl -Lo skaffold https://storage.googleapis.com/skaffold/releases/latest/skaffold-linux-amd64
sudo install skaffold /usr/local/bin/
UI
https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/
minikube kubectl apply -- -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
minikube kubectl proxy
Create secrets
kubectl create secret generic my-secret --from-literal=key1=supersecret --from-literal=key2=topsecret
List secrets
kubectl get secrets
Get secrets
kubectl get secrets/db-user-pass -o yaml
kubectl get secret mysecret --template='{{index .data "my-secret"}}'
base64 -d mysecret
Show deployment diff
skaffold -p profile render | kubectl diff f-
Resource usage
minikube addons enable metrics-server
kubectl top pod mypod
List resources
kubectl get api-resources
Get resource limits (quotas)
kubectl get quota
Template jsonpath extract
kubectl get pod mongo-1 -o=jsonpath='{ .spec.nodeName }'
Scale statefulset
kubectl scale sts mystatefulset --replicas=1