Gå til indhold
atlas

Kubernetes

Også kendt som: K8s

Det mest udbredte open source-system til container-orkestrering, oprindeligt bygget hos Google og udgivet i 2014.

Kladde - dette opslag er endnu ikke gennemgået.

Læs hele artiklen →

Formelt

Et open source-system, der kører containere på tværs af en gruppe maskiner; brugerne beskriver den ønskede tilstand i filer, et styringslag arbejder hele tiden på at få den faktiske tilstand til at passe, og pods er den mindste enhed, det placerer og kører.

Forklaret enkelt

Som en termostat for software - du indstiller, hvor mange kopier der skal køre, og den bliver ved med at tilføje eller fjerne dem, til virkeligheden passer.

I praksis

Driftsteamet i en region beder om tre kopier af tidsbestillingen; når én maskine dør om natten, genstarter Kubernetes den tabte kopi på en anden maskine, før nogen på vagt er vågnet.

Hvorfor det betyder noget

Mange cloudplatforme kører nu på det, og dets mange indstillinger for adgang og netværk er en almindelig kilde til fejlkonfiguration i skyen.

Teknisk uddybning

Kubernetes er bygget op om ét REST-API. Hvert objekt har apiVersion, kind, metadata (navn, namespace, labels, annotations og en resourceVersion til optimistisk samtidighedskontrol), en spec skrevet af brugeren og en status skrevet af controllere. kube-apiserver er den eneste komponent, der taler med etcd; alle andre komponenter - planlæggeren, kube-controller-manager, cloud-controller-manager og kubelet på hver node - er klienter, der bruger list-and-watch-strømme (pakket ind i "informers" med lokale caches) til at reagere på ændringer. En forespørgsel går gennem autentificering (klientcertifikater, bearer tokens, OIDC), autorisation (normalt RBAC plus Node-autorisatoren), muterende admission, skemavalidering og validerende admission, før den gemmes. Admission er stedet, hvor det meste politik bor: Pod Security Admission, ValidatingAdmissionPolicy skrevet i CEL og webhooks som Kyverno eller OPA Gatekeeper.

Planlægningen sker i to faser: filtrering fjerner noder, der ikke kan rumme poden (for lidt forespurgt CPU eller hukommelse, taints, node affinity, volumentopologi), og scoring rangerer resten, før planlæggeren skriver en binding. kubelet beder derefter container-runtimen via CRI om at oprette pod-sandkassen og containerne, mens CNI-plugins (Calico, Cilium m.fl.) giver hver pod en routbar IP i et fladt netværk. Services giver stabile virtuelle IP'er, som kube-proxy implementerer med iptables-, IPVS- eller nftables-regler, eller som visse CNI'er løser med eBPF; Ingress og det nyere Gateway API håndterer routing på lag 7. Custom Resource Definitions lader enhver tilføje nye objekttyper, og operator-mønstret kobler en CRD med en controller, der indkoder driftsviden, fx om databaser.

Projektet udgiver tre minor-versioner om året, og hver minor-version får rettelser i cirka 14 måneder, så klynger, der ikke opgraderes, hurtigt falder ud af support; administrerede tjenester (EKS, AKS, GKE) har deres egne supportvinduer. Kendte brud på bagudkompatibilitet er fjernelsen af dockershim i 1.24 og af PodSecurityPolicy i 1.25, som blev afløst af Pod Security Admission med profilerne privileged, baseline og restricted.

Standardindstillingerne er lempelige på måder, der overrasker nye brugere. Secrets gemmes base64-kodet, ikke krypteret, medmindre API-serveren får en EncryptionConfiguration (helst med en KMS-udbyder); enhver identitet, der må oprette pods i et namespace, kan læse alle Secrets dér ved at montere dem; service account-tokens monteres i pods, medmindre automountServiceAccountToken slås fra; alle pods kan nå alle pods, indtil en NetworkPolicy vælger dem; og audit-logning er slået fra, indtil der angives en audit-politik. CIS Kubernetes Benchmark, NSA/CISA's Kubernetes Hardening Guidance og NIST SP 800-190 er de sædvanlige grundlag for revision. Kubernetes implementerer container-orkestrering, men overlader bevidst bygning, image-forsyningskæde, CI og applikationsnære opgaver til andre værktøjer.

Hvad du bør lære først

Alt det, dette bygger på - grundlaget først.

  1. Kerne (kernel)
  2. →Styresystem
  3. →Proces
  4. →Container
  5. →Kubernetes

Relationer

Består af
Pod
Forudsætter
Container

Kilder og videre læsning

Standarder og officielle tekster

  • NIST SP 800-190 - Application Container Security Guide · NIST

Officiel dokumentation

Hvor dataene kommer fra

Dette opslag er skrevet af en AI ud fra kilderne ovenfor og er endnu ikke gennemgået af et menneske. Brug det som udgangspunkt, og tjek alt vigtigt mod kilderne.

Se gennemgangskøenForeslå en rettelse på GitHubDette begreb som JSON

Nævnt i

Test dig selv

Indlæser…

Atlas er i beta.