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.
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.
- Kerne (kernel)
- →Styresystem
- →Proces
- →Container
- →Kubernetes
Relationer
- Består af
- Pod
- Forudsætter
- Container
- Implementerer
- Container-orkestrering
Kilder og videre læsning
Standarder og officielle tekster
- NIST SP 800-190 - Application Container Security Guide · NIST
Officiel dokumentation
- Kubernetes Documentation - Overview · The Kubernetes Authors
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…