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

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