Kubernetes-klusterstyrning
Styrning syftar på en organisations förmåga att framtvinga och validera regler för att garantera efterlevnad av företagets standarder. Styrning hjälper organisationer att minimera risker, följa företagets standarder och externa regler och minimera avbrott i implementeringen eller innovationen.
Styrning omfattar planeringsinitiativ, fastställande av strategiska prioriteringar och användning av mekanismer och processer för att kontrollera program och resurser. För Kubernetes-kluster i en molnmiljö innebär styrning att implementera principer i Kubernetes-kluster och de program som körs i dessa kluster.
Kubernetes-styrningen omfattar både molnmiljön och klusterdistributionsinfrastrukturen samt själva klustren och deras program. Den här guiden fokuserar på styrning i Kubernetes-kluster. Artikeln beskriver och jämför hur Amazon Elastic Kubernetes Service (Amazon EKS) och Azure Kubernetes Service (AKS) hanterar Kubernetes-klusterstyrning.
Kommentar
Den här artikeln är en del av en serie artiklar som hjälper proffs som är bekanta med Amazon EKS att förstå Azure Kubernetes Service (AKS).
Kubernetes-styrningsdimensioner
Tre dimensioner definierar en konsekvent Kubernetes-styrningsstrategi:
Målen beskriver de mål för säkerhets- och efterlevnadsprinciper som en styrningsstrategi ska uppfylla. Till exempel anger mål vilka användare som kan komma åt ett Kubernetes-kluster, namnområde eller program, eller vilka containerregister och avbildningar som ska användas i vilka kluster. Säkerhetsåtgärdsteamet anger vanligtvis dessa mål som det första steget i att definiera ett företags styrningsstrategi.
Omfång beskriver de element som målprinciperna gäller för. Omfång måste adressera alla Kubernetes-synliga komponenter. Omfång kan vara organisationsenheter som avdelningar, team och grupper eller miljöer som moln, regioner eller namnområden eller båda.
Principdirektiv använder Kubernetes-funktioner för att framtvinga målreglerna i de angivna omfången för att tillämpa styrningsprinciperna.
Mer information finns i Kubernetes-styrning, vad du bör veta.
Styrning i EKS och AKS
Amazon Web Services-kunder (AWS) använder vanligtvis Kyverno, Gatekeeper eller andra lösningar från tredje part för att definiera och implementera en styrningsstrategi för sina Amazon EKS-kluster. GitHub-lagringsplatsen aws-eks-best-practices/policies innehåller en samling exempelprinciper för Kyverno och Gatekeeper.
Azure-kunder kan också använda Kyverno eller Gatekeeper och kan använda Azure Policy for Kubernetes-tillägget för att utöka Gatekeeper för en AKS-styrningsstrategi .
Gatekeeper
Cloud Native Computing Foundation (CNCF) sponsrar Gatekeeper Policy Controller med öppen källkod för Kubernetes för att tillämpa principer i Kubernetes-kluster. Gatekeeper är en Kubernetes-antagningskontrollant som tillämpar principer som skapats med Open Policy Agent (OPA), en principmotor för generell användning.
OPA använder ett deklarativt högnivåspråk med namnet Rego för att skapa principer som kan köra poddar från klientorganisationer på separata instanser eller med olika prioriteter. En samling vanliga OPA-principer finns i OPA Gatekeeper-biblioteket.
Kyverno
CNCF sponsrar också Kyverno-projektet med öppen källkod för att framtvinga principer i Kubernetes-kluster. Kyverno är en Kubernetes-inbyggd principmotor som kan verifiera, mutera och generera Kubernetes-resurskonfigurationer med principer.
Med Kyverno kan du definiera och hantera principer som Kubernetes-resurser utan att använda ett nytt språk. Med den här metoden kan du använda välbekanta verktyg som kubectl, git och kustomize för att hantera principer.
Kyverno använder kustomize
-style overlays för validering, stöder JSON-korrigering och strategisk sammanslagningskorrigering för mutation och kan klona resurser mellan namnområden baserat på flexibla utlösare. Du kan distribuera principer individuellt med hjälp av deras YAML-manifest eller paketera och distribuera dem med hjälp av Helm-diagram.
Kyverno kan, till skillnad från Gatekeeper eller Azure Policy för AKS, generera nya Kubernetes-objekt med principer, inte bara verifiera eller mutera befintliga resurser. Du kan till exempel definiera en Kyverno-princip för att automatisera skapandet av en standardnätverksprincip för alla nya namnområden.
Mer information finns i den officiella installationsguiden för Kyverno. En lista över färdiga eller anpassningsbara principer finns i biblioteket Kyverno-principer. Felsökningsreferens (till exempel APIServer-misslyckade webhook-anrop) finns i felsökningsdokumentationen för Kyverno.
Du kan också distribuera Kyvernos implementering av Kubernetes Pod Security Standards (PSS) som Kyverno-principer. PSS-kontrollerna är en startpunkt för allmän driftsäkerhet för Kubernetes-kluster.
Azure Policy-tillägg för AKS
Azure Policy-tillägget för AKS utökar Gatekeeper till att tillämpa skalningsåtgärder och skydd på AKS-kluster på ett centraliserat och konsekvent sätt. Azure Policy möjliggör centraliserad efterlevnadshantering och rapportering för flera Kubernetes-kluster från en enda plats. Den här funktionen gör hantering och styrning av miljöer med flera kluster effektivare än att distribuera och hantera Kyverno eller Gatekeeper för varje kluster.
Azure Policy-tillägget för AKS utför följande funktioner:
- Kontrollerar med Azure Policy-tjänsten om det finns principtilldelningar till klustret.
- Distribuerar principdefinitioner till klustret som villkorsmall och villkorsanpassade resurser.
- Rapporterar gransknings- och efterlevnadsinformation tillbaka till Azure Policy-tjänsten.
Azure Policy-tillägget stöder AKS - och Azure Arc-aktiverade Kubernetes-klustermiljöer . Mer information finns i Förstå Azure Policy för Kubernetes-kluster. Information om hur du installerar tillägget på nya och befintliga kluster finns i Installera Azure Policy-tillägget för AKS.
När du har installerat Azure Policy-tillägget för AKS kan du använda enskilda principdefinitioner eller grupper av principdefinitioner som kallas initiativ för ditt AKS-kluster. Du kan tillämpa och tillämpa inbyggda princip- och initiativdefinitioner i Azure Policy redan från början, eller skapa och tilldela egna anpassade principdefinitioner. De inbyggda säkerhetsprinciperna i Azure Policy hjälper dig att förbättra säkerhetsstatusen för ditt AKS-kluster, framtvinga organisationsstandarder och utvärdera efterlevnad i stor skala.
Deltagare
Den här artikeln underhålls av Microsoft. Det har ursprungligen skrivits av följande medarbetare.
Huvudsakliga författare:
- Martin Gjoshevski | Senior Service Engineer
- Paolo Salvatori | Huvudtjänsttekniker
Övriga medarbetare:
- Chad Kittel | Huvudprogramtekniker
- Ed Price | Senior Content Program Manager
- Theano Petersen | Teknisk författare
Om du vill se icke-offentliga LinkedIn-profiler loggar du in på LinkedIn.
Nästa steg
- AKS för Amazon EKS-proffs
- Kubernetes-identitets- och åtkomsthantering
- Övervakning och loggning av Kubernetes
- Säker nätverksåtkomst till Kubernetes
- Lagringsalternativ för ett Kubernetes-kluster
- Kostnadshantering för Kubernetes
- Hantering av Kubernetes-noder och nodpooler