Kubernetes snabbguide
Några vanliga k8s-kommandon med parametrar
Här är mitt k8s snabbhandsbok som täcker de viktigaste kommandona och koncepten i Kubernetes från installation till att köra containrar och rensa upp:

Installation av Kubernetes
Användande av Kubeadm
För att installera Kubernetes med kubeadm, följ dessa steg:
-
Förbered miljö:
- Se till att nödvändiga kärnmoduler är aktiverade:
sudo sysctl net/bridge/bridge-nf-call-ip6tables=1 sudo sysctl net/bridge/bridge-nf-call-iptables=1 sudo sysctl net/bridge/bridge-nf-call-arptables=1 - Starta om systemet för att tillämpa ändringarna.
- Se till att nödvändiga kärnmoduler är aktiverade:
-
Installera Docker och andra förutsättningar:
- Installera Docker:
sudo apt-get update sudo apt-get install -y docker.io - Installera
ebtablesochethtool:sudo apt-get install ebtables ethtool - Installera HTTPS-stöd och
curlom nödvändigt:sudo apt-get update sudo apt-get install -y apt-transport-https curl - Lägg till Kubernetes-repository och installera
kubeadm,kubeletochkubectl:curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - sudo cat <<EOF >/etc/apt/sources.list.d/kubernetes.list deb http://apt.kubernetes.io/ kubernetes-xenial main EOF sudo apt-get update sudo apt-get install -y kubeadm kubelet kubectl
- Installera Docker:
-
Initialisera Kubernetes-klustret:
- Initialisera den första kontrollplanenoden:
sudo kubeadm init - Anslut ytterligare kontrollplanenoder och arbetarnoder:
kubeadm join <kontrollplanenod>:8443 --token <token> --discovery-token-ca-cert-hash <hash>
- Initialisera den första kontrollplanenoden:
Användande av Minikube eller Kind
För lokal utveckling kan du använda minikube eller kind:
-
Minikube:
minikube startFölj den officiella [Get Started!-guiden].
-
Kind:
curl -sfL https://get.k3s.io | sh - kind create clusterFölj [Kind Quick Start-sidan].
Vanliga kubectl-kommandon
Grundläggande kommandon
-
Hämta information om resurser:
kubectl get <resurs> # Lista resurser (t.ex. pods, services, deployments) kubectl get pods --all-namespaces # Lista alla pods i alla namespaces kubectl get pods -o wide # Lista pods med mer detaljer kubectl get pod my-pod -o yaml # Hämta en pods YAML-konfiguration. -
Beskriv resurser:
kubectl describe <resurs> # Detaljerad beskrivning av en resurs (t.ex. noder, pods) kubectl describe nodes my-node kubectl describe pods my-pod. -
Skapa resurser:
kubectl create -f <manifest-fil> # Skapa resurser från en YAML- eller JSON-fil kubectl create configmap <configmap-namn> --from-literal=<nyckel>=<värde> # Skapa en ConfigMap kubectl create secret generic <secret-namn> --from-literal=<nyckel>=<värde> # Skapa en Secret. -
Radera resurser:
kubectl delete <resurs> <namn> # Radera en resurs (t.ex. pod, deployment) kubectl delete pod my-pod kubectl delete deployment my-deployment.
Pod-hantering
-
Definiera ett kommando och argument för en container:
apiVersion: v1 kind: Pod metadata: name: command-demo spec: containers: - name: command-demo-container image: debian command: ["printenv"] args: ["HOSTNAME", "KUBERNETES_PORT"]kubectl apply -f <manifest-fil> kubectl get pods kubectl logs command-demo. -
Kör ett kommando i ett skalkonto:
apiVersion: v1 kind: Pod metadata: name: shell-demo spec: containers: - name: shell-demo-container image: debian command: ["/bin/sh"] args: ["-c", "while true; do echo hello; sleep 10;done"]kubectl apply -f <manifest-fil> kubectl get pods kubectl logs shell-demo.
ConfigMap och Secret-hantering
-
Skapa en ConfigMap:
kubectl create configmap <configmap-namn> --from-literal=<nyckel>=<värde> kubectl create configmap app-config --from-literal=environment=production --from-literal=log_level=info. -
Skapa en Secret:
kubectl create secret generic <secret-namn> --from-literal=<nyckel>=<värde> kubectl create secret generic db-secret --from-literal=username=admin --from-literal=password=supersecret.
Deployment och Service-hantering
-
Skapa en Deployment:
kubectl create deployment <deployment-namn> --image=<image-namn> kubectl create deployment my-deployment --image=nginx:latest. -
Exponera en Deployment som en Service:
kubectl expose deployment <deployment-namn> --type=NodePort --port=<port> kubectl expose deployment my-deployment --type=NodePort --port=80.
Namespace och Node-hantering
-
Lista Namespaces:
kubectl get namespaces -
Skapa en Namespace:
kubectl create namespace <namespace-namn> kubectl create namespace my-namespace. -
Lista Noder:
kubectl get nodes kubectl get nodes --selector='!node-role.kubernetes.io/control-plane'.
Övervakning och felsökning
-
Visa loggar:
kubectl logs <pod-namn> kubectl logs -f <pod-namn> # Följ loggarna i realtid. -
Beskriv händelser:
kubectl describe events -
Kontrollera klusterinformation:
kubectl cluster-info kubectl version # Kontrollera Kubernetes-version.
Avancerade kommandon
-
Sortera resurser:
kubectl get pods --sort-by='.status.containerStatuses.restartCount' kubectl get services --sort-by=.metadata.name. -
Filtrera resurser:
kubectl get pods --field-selector=status.phase=Running kubectl get nodes --selector='!node-role.kubernetes.io/control-plane'. -
Hämta specifik data:
kubectl get configmap myconfig -o jsonpath='{.data.ca\.crt}' kubectl get secret my-secret --template='{{index .data "key-name-with-dashes"}}'.