cert-manager 1.0 har slÀppts

Om du frÄgar en erfaren och klipsk ingenjör vad han tycker om cert-manager och varför alla anvÀnder det, kommer han att sucka, ge dig en förtroendefull klapp pÄ axeln och trögt sÀga: "Alla anvÀnder det eftersom det inte finns nÄgra rimliga alternativ. VÄra möss grÄter, de stÄr ut med detta kaktus, men fortsÀtter att leva med det. Varför Àlskar vi det? För att det fungerar. Varför gillar vi det inte? För att det stÀndigt kommer nya versioner som introducerar nya funktioner. Och vi tvingas gÄng pÄ gÄng uppdatera klustret. De gamla versionerna slutar fungera, för det finns en konspiration och stort mystiskt schamaneri."

Men utvecklarna försÀkrar att med cert-manager 1.0 kommer allt att förÀndras.

Ska vi tro pÄ det?

cert-manager 1.0 har slÀppts

Cert-manager Ă€r den "inbyggda" kontrolleraren för hantering av certifikat i Kubernetes. Det anvĂ€nds för att utfĂ€rda certifikat frĂ„n olika kĂ€llor: Let’s Encrypt, HashiCorp Vault, Venafi, signeringsnyckelpĂ€rlor och sjĂ€lvsignerade certifikat. Det hĂ„ller ocksĂ„ nycklarna aktuella i förhĂ„llande till giltighetstid och försöker automatiskt uppdatera certifikaten nĂ€r de nĂ€rmar sig utgĂ„ngsdatumet. Cert-manager bygger pĂ„ kube-lego och har Ă€ven anvĂ€nt vissa tekniker frĂ„n andra liknande projekt, sĂ„som kube-cert-manager.

Uppdateringsanteckningar

Med version 1.0 sÀtter vi ett betyg pÄ tre Ärs utveckling av cert-manager-projektet. Under denna tid har det utvecklats avsevÀrt bÄde nÀr det gÀller funktionalitet och stabilitet, men mest av allt - inom gemenskapen. Idag ser vi hur mÄnga mÀnniskor anvÀnder det för att skydda sina Kubernetes-kluster samt integrerar det i olika delar av ekosystemet. I de senaste 16 slÀppen har en mÀngd buggfixar genomförts. Det som behövde brytas har brutits. Flera förbÀttringar av API:et har stÀrkt dess interaktion med anvÀndarna. Vi har löst 1500 problem pÄ GitHub med Ànnu fler pull-requests frÄn 253 medlemmar i gemenskapen.

Med lanseringen av 1.0 meddelar vi officiellt att cert-manager Àr ett moget projekt. Vi lovar ocksÄ att stödja kompatibilitet för vÄrt API. v1.

Stort tack till alla som har hjÀlpt oss göra cert-manager under dessa tre Är! MÄ version 1.0 bli första av mÄnga kommande stora prestationer.

SlÀppningen av 1.0 Àr en stabil release med flera prioriterade fokuspunkter:

  • v1 API;

  • Team kubectl cert-manager status, för att hjĂ€lpa till med problemanalys;

  • AnvĂ€ndning av de senaste stabila API:erna i Kubernetes;

  • FörbĂ€ttrad loggning;

  • FörbĂ€ttringar av ACME.

Innan du uppdaterar, se till att lÀsa uppdateringsanteckningarna.

API v1

Version v0.16 fungerade med API v1beta1. Det hÀr medförde vissa strukturella förÀndringar samt förbÀttrade dokumentationen för API-fÀlten. Version 1.0 bygger helt pÄ detta via API v1. Detta API Àr vÄr första stabila version, samtidigt som vi redan har utfÀrdat garantier för kompatibilitet, men med API v1 lovar vi att upprÀtthÄlla kompatibilitet i mÄnga Är framöver.

De Àndringar som gjorts (notera: vÄra omvandlingsverktyg kommer att ta hand om allt Ät dig):

Certifikat:

  • emailSANs heter nu emailAddresses

  • uriSANs — uris

Dessa Àndringar ger kompatibilitet med andra SAN (subject alt names, översÀttarens anm.), samt med Go API. Vi tar bort denna term frÄn vÄrt API.

Uppdatering

Om du anvÀnder Kubernetes 1.16+ - kommer de konverterande webbhaken att lÄta dig arbeta med bÄde v1alpha2, v1alpha3, v1beta1 och v1. Med dem kan du anvÀnda den nya API-versionen utan att behöva Àndra eller distribuera om dina gamla resurser. Vi rekommenderar starkt att du uppdaterar manifest till API v1, eftersom tidigare versioner snart kommer att avskrivas. AnvÀndare legacy av cert-manager-versionen kommer fortfarande ha tillgÄng till v1, uppdateringsstegen kan hittas hÀr.

Teamet kubectl cert-manager status

Med de nya förbÀttringarna i vÄrt tillÀgg till kubectl har det blivit enklare att utforska problem relaterade till att inte utfÀrda certifikat. kubectl cert-manager status ger nu mycket mer information om vad som hÀnder med certifikaten, samt visar steget för certifikatutfÀrdande.

Efter installation av tillÀgget kan du köra kubectl cert-manager status certificate, vilket kommer att söka efter certifikatet med det angivna namnet och eventuella relaterade resurser, som CertificateRequest, Secret, Issuer, samt Order och Challenges vid anvÀndning av certifikat frÄn ACME.

Exempel pÄ felsökning av ett certifikat som inte Àr klart:

$ kubectl cert-manager status certificate acme-certificate

Namn: acme-certificate
Namespace: default
Skapad: 2020-08-21T16:44:13+02:00
Villkor:
  Klar: False, Orsak: DoesNotExist, Meddelande: UtfÀrdar certifikat eftersom hemligheten inte finns
  UtfÀrdar: True, Orsak: DoesNotExist, Meddelande: UtfÀrdar certifikat eftersom hemligheten inte finns
DNS-namn:
- example.com
HĂ€ndelser:
  Typ    Orsak     Ålder   FrĂ„n          Meddelande
  ----    ------     ----  ----          -------
  Normal  UtfÀrdar    18m   cert-manager  UtfÀrdar certifikat eftersom hemligheten inte finns
  Normal  Genererad  18m   cert-manager  Sparade ny privat nyckel i temporÀr hemlighet "acme-certificate-tr8b2"
  Normal  BegÀrd  18m   cert-manager  Skapade ny CertificateRequest-resurs "acme-certificate-qp5dm"
UtfÀrdare:
  Namn: acme-issuer
  Typ: UtfÀrdare
  Villkor:
    Klar: True, Orsak: ACMEAccountRegistered, Meddelande: ACME-kontot registrerades hos ACME-servern
fel vid sökande efter hemlighet "acme-tls": hemligheter "acme-tls" hittades inte
GÀller inte före: 
GĂ€ller inte efter: 
Förnyelsetid: 
CertificateRequest:
  Namn: acme-certificate-qp5dm
  Namespace: default
  Villkor:
    Klar: False, Orsak: Pending, Meddelande: VÀntar pÄ certifikatutfÀrdande frÄn bestÀllning default/acme-certificate-qp5dm-1319513028: "pending"
  HĂ€ndelser:
    Typ    Orsak        Ålder   FrĂ„n          Meddelande
    ----    ------        ----  ----          -------
    Normal  BestÀllningSkapad  18m   cert-manager  Skapade bestÀllningsresurs default/acme-certificate-qp5dm-1319513028
BestÀllning:
  Namn: acme-certificate-qp5dm-1319513028
  TillstÄnd: pending, Orsak:
  Auktoriseringar:
    URL: https://acme-staging-v02.api.letsencrypt.org/acme/authz-v3/97777571, Identifierare: example.com, Inledande tillstÄnd: pending, Wildcard: false
Utmaningar:
- Namn: acme-certificate-qp5dm-1319513028-1825664779, Typ: DNS-01, Token: J-lOZ39yNDQLZTtP_ZyrYojDqjutMAJOxCL1AkOEZWw, Nyckel: U_W3gGV2KWgIUonlO2me3rvvEOTrfTb-L5s0V1TJMCw, TillstÄnd: pending, Orsak: fel vid hÀmtning av clouddns-tjÀnstekontot: hemlighet "clouddns-accoun" hittades inte, Bearbetning: true, Presentation: false

Kommandot kan ocksÄ hjÀlpa till att ta reda pÄ mer om certifikatets innehÄll. Exempel pÄ detaljer för ett certifikat utfÀrdat av Letsencrypt:

$ kubectl cert-manager status certificate example
Namn: example
[...]
Hemlighet:
  Namn: example
  UtfÀrdare Land: US
  UtfÀrdare Organisation: Let's Encrypt
  UtfÀrdare AllmÀnt namn: Let's Encrypt Authority X3
  NyckelanvÀndning: Digital Signatur, Nyckel Kryptering
  Utökade NyckelanvÀndningar: Serverautentisering, Klientautentisering
  Offentlig Nyckel Algoritm: RSA
  Signatur Algoritm: SHA256-RSA
  Ämnesnyckel-ID: 65081d98a9870764590829b88c53240571997862
  Myndighetsnyckel-ID: a84a6a63047dddbae6d139b7a64565eff3a8eca1
  Serienummer: 0462ffaa887ea17797e0057ca81d7ba2a6fb
  HĂ€ndelser:  
GÀller inte före: 2020-06-02T04:29:56+02:00
GĂ€ller inte efter: 2020-08-31T04:29:56+02:00
Förnyelsetid: 2020-08-01T04:29:56+02:00
[...]

AnvÀndningen av de senaste stabila API:erna för Kubernetes

Cert-manager var en av de första som implementerade Kubernetes CRDs. Detta, tillsammans med vÄrt stöd för versioner av Kubernetes Ànda upp till 1.11, har lett till att vi behövde stödja förÄldrad apiextensions.k8s.io/v1beta1 för vÄra CRD, samt admissionregistration.k8s.io/v1beta1 för vÄra webhooks. Nu har de förÄldrats och kommer att tas bort i Kubernetes frÄn version 1.22. Med vÄr 1.0 erbjuder vi nu fullstÀndigt stöd apiextensions.k8s.io/v1 och admissionregistration.k8s.io/v1 för Kubernetes 1.16 (dÀr de lades till) och nyare. För anvÀndare av tidigare versioner fortsÀtter vi att erbjuda stöd v1beta1 i vÄr legacy version.

FörbÀttrad loggning

I denna version har vi uppdaterat biblioteken för loggning till klog/v2, som anvĂ€nds i Kubernetes 1.19. Vi kontrollerar ocksĂ„ varje logg vi skriver för att tilldela rĂ€tt nivĂ„. Vi har utgĂ„tt ifrĂ„n guiden frĂ„n Kubernetes. Det finns fem (faktiskt — sex, översĂ€ttarens anm.) loggnivĂ„er, som börjar med Error (nivĂ„ 0), som bara visar viktiga fel, och slutar med Trace (nivĂ„ 5), som hjĂ€lper dig att ta reda pĂ„ exakt vad som hĂ€nder. Med denna Ă€ndring har vi minskat antalet loggar nĂ€r du inte behöver felsökningsinformation vid anvĂ€ndning av cert-manager.

Tips: som standard kör cert-manager pÄ nivÄ 2 (Info), du kan ÄsidosÀtta detta genom att anvÀnda global.logLevel i Helm-diagrammet.

Obs: att titta pÄ loggar Àr sista utvÀgen vid felsökning. För mer information, se vÄr guiden.

N.B. redaktör: För att fĂ„ mer information om hur allt detta fungerar under huven pĂ„ Kubernetes, fĂ„ vĂ€rdefulla tips frĂ„n praktiker och lĂ€rarna, samt kvalificerad hjĂ€lp frĂ„n supporten, kan du delta i online-intensiven Kubernetes Grund, som Ă€ger rum den 28–30 september, och Kubernetes Mega, som Ă€ger rum den 14–16 oktober.

FörbÀttringar av ACME

Den vanligaste anvĂ€ndningen av cert-manager Ă€r för att utfĂ€rda certifikat frĂ„n Let’s Encrypt med hjĂ€lp av ACME. Version 1.0 Ă€r anmĂ€rkningsvĂ€rd för att den inkluderar feedback frĂ„n gemenskapen för att lĂ€gga till tvĂ„ smĂ„, men viktiga förbĂ€ttringar i vĂ„r ACME-utgivare.

Inaktivering av skapande av kontonyckel

Om du anvĂ€nder ACME-certifikat i stor skala anvĂ€nder du förmodligen samma konto pĂ„ flera kluster, sĂ„ dina begrĂ€nsningar för utfĂ€rdande av certifikat gĂ€ller för alla. Detta har tidigare varit möjligt i cert-manager genom att kopiera hemligheten som anges i privateKeySecretRef. Denna anvĂ€ndning har varit ganska buggig eftersom cert-manager försökte vara anvĂ€ndbar och glatt skapade en ny kontonyckel om den inte kunde hitta en. DĂ€rför har vi lagt till disableAccountKeyGeneration, för att skydda dig frĂ„n detta beteende; om denna parameter sĂ€tts till true — kommer cert-manager inte att skapa en ny nyckel och varna dig om att ingen kontonyckel tillhandahölls.

apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
  name: letsencrypt
spec:
  acme:
    privateKeySecretRef:
      name: example-issuer-account-key
    disableAccountKeyGeneration: false

Föredragen kedja

29 september Let’s Encrypt kommer att gĂ„ över till egen root certifikatmyndighet ISRG Root. Certifikaten med korssigneringar kommer att bytas ut mot Identrust. Denna Ă€ndring krĂ€ver inga justeringar i instĂ€llningarna för cert-manager, alla uppdaterade eller nya certifikat som utfĂ€rdas efter detta datum kommer att anvĂ€nda den nya rot CA.

Let’s Encrypt signerade redan certifikat med denna CA och erbjuder dem som "alternativ certifikatkedja" via ACME. I denna version av cert-manager finns det möjlighet att ange Ă„tkomst till dessa kedjor i utgivarinstĂ€llningarna. I parametern preferredChain kan namnet pĂ„ den anvĂ€nda CA anges varifrĂ„n certifikatet kommer att utfĂ€rdas. Om det finns ett CA-certifikat som matchar begĂ€ran kommer det att utfĂ€rda dig ett certifikat. Observera att detta Ă€r den föredragna metoden; om inget hittas kommer ett standardcertifikat att utfĂ€rdas. Detta sĂ€kerstĂ€ller att du Ă€ndĂ„ kommer att fĂ„ en uppdatering av ditt certifikat efter att den alternativa kedjan har tagits bort pĂ„ ACME-utgivarens sida.

Idag kan certifikat signeras av ISRG Root, sÄ hÀr:

apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
  name: letsencrypt
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    preferredChain: "ISRG Root X1"

Om du föredrar att behĂ„lla kedjan IdenTrust — stĂ€ll in denna parameter pĂ„ DST Root CA X3:

apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
  name: letsencrypt
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    preferredChain: "DST Root CA X3"

Observera att denna root certifikatmyndighet snart kommer att förĂ„ldras, Let’s Encrypt kommer att hĂ„lla denna kedja aktiv fram till 29 september 2021.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster