Kubernetes administrerer og automatisérer containere: overvåker helse, starter nye og fjerner ubrukte. Det kjører på nodene og kommuniserer via et virtuelt nett. Administrasjon skjer med kubectl eller tredjepartsklienter som Kubernetes Dashboard eller Lens. Les mer om Kubernetes på norsk infrastruktur hos Deploi.
Forberedelser
Bestill VPS-er til ditt cluster hos Deploi — like mange servere som worker-noder pluss minst én master (f.eks. 8 GB RAM, 4 vCPU). Master bør ikke brukes som worker. Anbefalt: én disk per worker ved distribuert lagring.
Kjerne og nettverk
sudo modprobe overlay sudo modprobe br_netfilter cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf overlay br_netfilter EOF cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf net.ipv4.ip_forward = 1 EOF sudo sysctl --system
Container Runtime (containerd)
sudo apt update sudo apt install -y curl gnupg2 software-properties-common apt-transport-https ca-certificates sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/containerd.gpg sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" sudo apt update && sudo apt install containerd.io -y containerd config default | sudo tee /etc/containerd/config.toml >/dev/null 2>&1 sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/g' /etc/containerd/config.toml sudo systemctl restart containerd
Kubernetes-pakker
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.31/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/k8s.gpg echo 'deb [signed-by=/etc/apt/keyrings/k8s.gpg] https://pkgs.k8s.io/core:/stable:/v1.31/deb/ /' | sudo tee /etc/apt/sources.list.d/k8s.list sudo apt update sudo apt install kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl
Master
Velg domene (f.eks. kubemaster.example.com). Pek dette til master-IP. Legg alle noder i /etc/hosts. Sett hostname på hver node: sudo hostnamectl hostname kubemaster.example.com. Kun på master:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --control-plane-endpoint=kubemaster.example.com
Noter token og hash. Bytt tilbake til egen bruker:
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
Installer Flannel:
kubectl apply -f https://github.com/flannel-io/flannel/releases/download/v0.26.5/kube-flannel.yml
Liker du det du leser?
Få lignende artikler rett i innboksen — 1–2 ganger i måneden. Ingen spam.
Worker
På hver worker: samme /etc/hosts. Token/hash på nytt fra master: kubeadm token create --print-join-command. På worker:
kubeadm join kubemaster.example.com:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
Versjoner og sikkerhet
Sjekk kubernetes.io/releases og Official CVE Feed for sikkerhetsmeldinger.
Brukeradministrasjon (service account)
Opprett ServiceAccount, ClusterRoleBinding (f.eks. cluster-admin) og Secret (type service-account-token). Hent token: kubectl get secret/<name>-kube-secret -o jsonpath='{.data.token}' | base64 --decode. Lag kubeconfig-fil med kubectl config view --raw, bytt user til token. Slett serviceaccount og clusterrolebinding for å fjerne bruker.
Cert Manager og Let's Encrypt
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.17.1/cert-manager.yaml
Opprett ClusterIssuer for ACME (Let's Encrypt) med e-post og http01 solver (ingressClassName nginx).
Ingress (nginx)
Last ned deploy.yaml fra ingress-nginx. Endre LoadBalancer til NodePort og Deployment til DaemonSet; fjern strategy. For port 80/443: rediger /etc/kubernetes/manifests/kube-apiserver.yaml, legg til --service-node-port-range=80-32767 og nodePort 80/443 under http/https. kubectl apply -f deploy.yaml.
Distribuert lagring (OpenEBS/Mayastor)
På master: helm install openebs openebs/openebs -n openebs --create-namespace. På workers: Huge Pages, modprobe nvme-tcp, partisjon og mkfs.ext4 på disk. Merk noder, opprett DiskPool med by-uuid. Installer kubectl-mayastor. Opprett StorageClass med provisioner io.openebs.csi-mayastor. For RWX kan NFS-server deployes i cluster med PVC og CSI NFS driver.
Metrics Server
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
Ved problemer: legg til --kubelet-insecure-tls under container args. Deretter: kubectl top node og kubectl top pod.
Oppdatering
Sjekk nåværende versjon og oppgraderingsvei. Oppdater kubeadm først, deretter kubelet og kubectl på master og worker. Følg offisiell dokumentasjon for rekkefølge. Plugins (Flannel, cert-manager, Ingress): sjekk hver komponent sin dokumentasjon; ofte ny versjon med wget/apply eller helm upgrade.