Kubernetes v1.22 är en ny funktionsversion som lägger till över 50 förbättringar av containerorkesteringsplattformen. Det försvårar också vissa funktioner och tar bort flera API: er som har ersatts av ersättningsversioner.
Här är nedgången för de viktigaste ändringarna, med tillägg av funktioner.
Server-Side Apply
Server på sidan är nu ur beta och allmänt tillgängligt för alla användare. Det är en ny mekanism för att underlätta förklarande resurshantering av användare och klusterkontrollanter.
Användning på serversidan gör det möjligt för utvecklare att initiera resursändringar genom att beskriva deras avsikter. Kubernetes API-server spårar ändringar av objekt från fält för fält. Denna “ fälthantering ” systemet skapar en ägarmodell där ändringar i ett fält som läggs till av en annan chef automatiskt avvisas. Detta förhindrar oavsiktlig återställning av en åtgärd som startats av en annan administratör.
Innan tillämpning på serversidan var logiken för att identifiera resursfält som behöver uppdateras en del av kommandot kubectl apply på klientsidan. Nu är detta förhöjt till servern, vilket gör det lättare för kontrollanter att tillämpa sina egna konfigurationsändringar och underlätta de nya åtkomstkontrollfunktionerna. Ändringar av enskilda fält registreras, inte bara det senaste tillståndet som tillämpades av varje användare.
Annonsering
Resurser får en ny managedFields-egenskap när Applicering på serversidan med fälthantering är aktiv. Det registrerar varje fält, de data som är associerade med det och den tid det uppdaterades senast. Manuell redigering av managedFields är möjlig men starkt avskräckt; det är avsett att endast Kubernetes API -server skriver dessa värden.
Fälthantering har stöd för konfliktlösning och fyra olika sammanslagningsstrategier. Dessa låter dig skräddarsy vad som händer när du försöker redigera ett fält som redan har ändrats av en annan användare. Du kan tvinga tillämpa ändringarna om det behövs och överföra äganderätten till den inkommande användaren.
External Credential Providers
Externa legitimationsleverantörer har också gjort hoppet till stabil. Dessa låter dig använda plugins för att få autentiseringsuppgifter som autentiseringstoken och TLS -certifikat utanför ditt kluster.
Med funktionen kan du integrera Kubernetes åtkomstkontroll med befintliga autentiseringsleverantörer. Leverantörer kan autentisera dig med OAuth2-, LDAP- och SAML-system, så att du kan logga in med dina befintliga referenser för populära tjänster.
Leverantörer implementeras som plugins med en komponent på serversidan som körs i klustret. Detta använder en speciell webhook för att konvertera klientspecifika tokens till ett format som Kubernetes API-server kan tolka.
Kör utan root
Högsäkerhetsmiljöer kan få ökat skydd genom att köra kontrollplanet Kubernetes som en icke-rotanvändare. Detta är en alfafunktion som är tillgänglig för nya klusterdistributioner. Det hjälper till att minska riskerna för en framgångsrik kompromiss med kontrollplanet och ger obegränsad åtkomst till din värd.
Annonsering
För att starta ett kluster som en icke-root-användare krävs att du aktiverar RootlessControlPlane-funktionsporten. Kontrollplanet ska sedan starta utan att använda sudo.
Det finns liknande stöd för att köra enskilda komponenter på nodnivå i en icke-rotmiljö. Kubelet, kube-proxy och behållarens körning har nu denna förmåga som hjälper dig att skärpa installationens säkerhet.
API-borttagningar
Som en ny mindre utgåva, v1.22 avlägsnar vissa befintliga funktioner i olika Kubernetes -komponenter. Dessa är mestadels kommandon, flaggor och några autentiserings- och lagringsplugins. De berörda funktionerna förblir tillgängliga men kan släppas i framtiden.
v1.22 tar också bort 12 tidigare utfasade API: er helt. De borttagna API: erna är alla betaversioner som har ersatts av nyare stabila alternativ.
Listan innehåller de resurser Ingress och IngressClass som används för att avslöja tjänster med routningsregler. Versionerna networking.k8s.io/v1beta1 av dessa objekt bör ersättas med deras motsvarigheter till networking.k8s.io/v1 som fortfarande stöds.
Andra borttagna API: er inkluderar betaversionerna av APIService, CertificateSigningRequest, CustomResourceDefinition och Lease, samt flera objekt relaterade till åtkomstkontroll, lagring och schemaläggning. Granska migreringsguiden innan du använder uppgraderingen till ditt kluster. Du måste ändra resurser med de borttagna API: erna så att de refererar till de nya stabila versionerna istället.
Nästa Kubernetes -version för att inkludera borttagningar är v1.25. Detta är för närvarande planerat att ta bort fyra beta-API: er: CronJob, EndpointSlice, Event och PodDisruptionBudget.
Andra ändringar
Den här versionen landar många andra mindre tillägg och förbättringar, inklusive alfa -stöd för bytesminne, en förbättrad upplevelse när du kör Kubernetes på Windows, och möjligheten att använda cgroups v2 för att ställa in minnesallokering och isoleringsbegränsningar på Pods.
Advertisement
Etcd, konfigurationslagret som används av Kubernetes API -server, har stöts till v3.5.0. Detta förbättrar loggningsfunktionerna med ett nytt strukturerat format och integrerad filrotation. Projektet levererade också betydande prestandaförbättringar för att påskynda vissa vanliga Kubernetes -operationer.
Flera beta -API: er är nu markerade som stabila, inklusive bundna servicekontotokens och PodDisruptionBudget -objektet för att ange minsta antal samtidiga replikantal. Kubernetes har fått möjligheten att varna dig när du också använder ett föråldrat API, vilket gör det lättare att hålla dig på den stabila sökvägen. Du kommer att se dessa meddelanden när du tillämpar resurser på ditt kluster.
New Release Cadence
v1.22 markerar starten på en ny regelbunden utgåva för Kubernetes -uppdateringar. Funktioner kommer nu att landa fyra gånger om året istället för tre, vilket skapar en något längre utvecklingscykel som ger fler chanser att optimera och bibehålla släppkvaliteten. Det ger också mer andningsrum för klusteradministratörer som nu har en extra månad mellan migreringarna.
I enlighet med detta schema förväntas Kubernetes v1.23 komma i början av december 2021. Varje cykel har en beräknad utvecklingstid på 15 veckor. Regelbundna uppdateringar av patch kommer fortfarande att släppas på deras befintliga månatliga kadens, med kritiska buggfixar som landar tidigare vid behov.
Sammanfattning
Kubernetes v1.22 är en milstolpsuppdatering som ser projektet flytta till en ny release -kadens. Detta kommer att hjälpa klusteradministratörer att planera för framtida uppgraderingar, vilket ger mer migreringstid innan nästa kommer.
Annonsering
När det gäller nya funktioner är det viktigaste tillägget utan tvekan tillämpning på serversidan. Detta förenklar användningen av deklarativa resurskonfigurationer och lyfter logiken från kubectl till ditt kluster. Detta förväntas så småningom ersätta den ursprungliga kubectl -tillämpningen helt och hållet.
Uppgradering till v1.22 kan kräva åtgärder om du fortfarande använder någon av de borttagna beta -API: erna. Du bör kunna ersätta dem med deras stabila versioner, även om det i vissa fall kan innebära att du ändrar dina resurser. Att ta dig tid nu att ta itu med de nya avskrivningarna i v1.22 hjälper dig att förbereda dig för när v1.23 kommer, vilket underlättar den frigöringsprocessen.