cert-manager 1.0 verëffentlecht

Wann Dir en erfuerene, weise Ingenieur freet, wat hien iwwer den cert-manager denkt a firwat jidderee se benotzt, da suckt de Spezialist, hëlt him vertraulech ëm a seet midd: "Jidderee benotzt et, well et gëtt keng verstänneg Alternativen. Eis Mais kräischen, pricke sech, liewen awer weider mat dësem Kaktus. Firwat hu mir gär? Well et funktionnéiert. Firwat hu mir net gär? Well nei Versioune ginn stänneg verëffentlecht déi nei Features benotzen. An Dir musst de Stärekoup ëmmer erëm aktualiséieren. An déi al Versiounen stoppen net ze schaffen, well et eng Verschwörung an e grousse mysteriéise Shamanismus gëtt.

Mä d'Entwéckler behaapten, datt mat cert-manager 1.0 alles wäert änneren.

Solle mir et gleewen?

cert-manager 1.0 verëffentlecht

Cert-Manager ass en gebiertege Kubernetes Zertifika Management Controller. Et kann benotzt ginn fir Zertifikater aus verschiddene Quellen auszeginn: Let's Encrypt, HashiCorp Vault, Venafi, Ënnerschrëft a selbst ënnerschriwwen Schlësselpaar. Et erlaabt Iech och Schlësselen um neiste Stand ze halen a probéiert automatesch Zertifikater op enger spezifizéierter Zäit ze erneieren ier se oflafen. Cert-Manager baséiert op kube-lego, an huet och e puer Techniken vun aneren ähnlechen Projeten benotzt, wéi kube-cert-manager.

Verëffentlechungsnotizen

Mat Versioun 1.0 setzen mir en Zeeche vu Vertrauen an déi dräi Joer Entwécklung vum cert-manager Projet. Wärend dëser Zäit huet et sech wesentlech a Funktionalitéit a Stabilitéit entwéckelt, awer virun allem an der Gemeinschaft. Haut gesi mir vill Leit et benotzen fir hir Kubernetes Cluster ze sécheren, souwéi se a verschiddenen Deeler vum Ökosystem ëmzesetzen. Eng Rëtsch Käfere goufen an de leschte 16 Verëffentlechungen fixéiert. A wat sollt gebrach sinn, war gebrach. Verschidde Besuche vun der API hunn hir Interaktioun mat de Benotzer verbessert. Mir hunn 1500 Themen op GitHub geléist, mat nach méi Pull Ufroe vun 253 Gemeinschaftsmemberen.

Duerch d'Verëffentlechung 1.0 erkläre mir offiziell datt cert-manager e reife Projet ass. Mir verspriechen och eis API kompatibel ze halen v1.

E grousse Merci un jiddereen, deen eis all déi dräi Joer gehollef huet Cert-Manager ze kreéieren! Loosst d'Versioun 1.0 déi éischt vu ville super Saachen sinn, déi kommen.

Verëffentlechung 1.0 ass eng stabil Verëffentlechung mat e puer Prioritéit Beräicher:

  • v1 API;

  • Equipe kubectl cert-manager status, fir Problemer ze analyséieren;

  • Benotzt déi lescht stabil Kubernetes APIen;

  • Verbesserte Logbicher;

  • ACME Verbesserungen.

Gitt sécher d'Aktualiséierungsnotizen ze liesen ier Dir Upgrade.

API v1

Versioun v0.16 huet mat der API geschafft v1beta1. Dëst huet e puer strukturell Ännerungen bäigefüügt an och d'API Felddokumentatioun verbessert. Versioun 1.0 baut op dëst alles mat enger API v1. Dës API ass eisen éischte stabilen, gläichzäiteg hu mir scho Kompatibilitéitsgarantie ginn, awer mat der API v1 Mir verspriechen d'Kompatibilitéit fir déi kommend Joer ze halen.

Ännerungen gemaach (Notiz: eis Konversiounstools këmmere sech ëm alles fir Iech):

Zertifikat:

  • emailSANs elo genannt emailAddresses

  • uriSANs - uris

Dës Ännerungen addéiere Kompatibilitéit mat anere SANs (Thema alt Nimm, ca. Iwwersetzer), souwéi mat der Go API. Mir läschen dëse Begrëff aus eiser API.

Update

Wann Dir Kubernetes 1.16+ benotzt - Webhooks konvertéieren erlaabt Iech mat API Versiounen gläichzäiteg an nahtlos ze schaffen v1alpha2, v1alpha3, v1beta1 и v1. Mat hinnen kënnt Dir déi nei Versioun vun der API benotzen ouni Är al Ressourcen z'änneren oder ëmzesetzen. Mir recommandéieren staark Är Manifestatiounen op d'API ze upgrade v1, well fréier Versioune geschwënn ofgeschaaft ginn. Benotzer legacy Versioune vun cert-Manager wäert nach nëmmen Zougang zu v1, Update Schrëtt kënne fonnt ginn hei.

kubectl cert-manager Status Kommando

Mat neie Verbesserungen an eiser Erweiderung fir kubectl Et ass méi einfach ginn Problemer mat der Net-Emissioun vun Zertifikater ze ermëttelen. kubectl cert-manager status elo gëtt vill méi Informatiounen iwwert wat mat Certificaten geschitt, a weist och d'Etapp op deem de Certificat ausgestallt ass.

Nodeems Dir d'Extensioun installéiert hutt, kënnt Dir lafen kubectl cert-manager status certificate <имя-сертификата>, déi de Certificat mam spezifizéierten Numm an all assoziéiert Ressourcen sichen, wéi CertificateRequest, Secret, Issuer, an Uerdnung an Erausfuerderungen am Fall vun Zertifikater vun ACME.

E Beispill fir e Certificat debugging deen nach net fäerdeg ass:

$ kubectl cert-manager status certificate acme-certificate

Name: acme-certificate
Namespace: default
Created at: 2020-08-21T16:44:13+02:00
Conditions:
  Ready: False, Reason: DoesNotExist, Message: Issuing certificate as Secret does not exist
  Issuing: True, Reason: DoesNotExist, Message: Issuing certificate as Secret does not exist
DNS Names:
- example.com
Events:
  Type    Reason     Age   From          Message
  ----    ------     ----  ----          -------
  Normal  Issuing    18m   cert-manager  Issuing certificate as Secret does not exist
  Normal  Generated  18m   cert-manager  Stored new private key in temporary Secret resource "acme-certificate-tr8b2"
  Normal  Requested  18m   cert-manager  Created new CertificateRequest resource "acme-certificate-qp5dm"
Issuer:
  Name: acme-issuer
  Kind: Issuer
  Conditions:
    Ready: True, Reason: ACMEAccountRegistered, Message: The ACME account was registered with the ACME server
error when finding Secret "acme-tls": secrets "acme-tls" not found
Not Before: <none>
Not After: <none>
Renewal Time: <none>
CertificateRequest:
  Name: acme-certificate-qp5dm
  Namespace: default
  Conditions:
    Ready: False, Reason: Pending, Message: Waiting on certificate issuance from order default/acme-certificate-qp5dm-1319513028: "pending"
  Events:
    Type    Reason        Age   From          Message
    ----    ------        ----  ----          -------
    Normal  OrderCreated  18m   cert-manager  Created Order resource default/acme-certificate-qp5dm-1319513028
Order:
  Name: acme-certificate-qp5dm-1319513028
  State: pending, Reason:
  Authorizations:
    URL: https://acme-staging-v02.api.letsencrypt.org/acme/authz-v3/97777571, Identifier: example.com, Initial State: pending, Wildcard: false
Challenges:
- Name: acme-certificate-qp5dm-1319513028-1825664779, Type: DNS-01, Token: J-lOZ39yNDQLZTtP_ZyrYojDqjutMAJOxCL1AkOEZWw, Key: U_W3gGV2KWgIUonlO2me3rvvEOTrfTb-L5s0V1TJMCw, State: pending, Reason: error getting clouddns service account: secret "clouddns-accoun" not found, Processing: true, Presented: false

D'Team kann Iech och hëllefen méi iwwer den Inhalt vum Zertifika ze léieren. Beispill Detailer fir e Certificat ausgestallt vum Letsencrypt:

$ kubectl cert-manager status certificate example
Name: example
[...]
Secret:
  Name: example
  Issuer Country: US
  Issuer Organisation: Let's Encrypt
  Issuer Common Name: Let's Encrypt Authority X3
  Key Usage: Digital Signature, Key Encipherment
  Extended Key Usages: Server Authentication, Client Authentication
  Public Key Algorithm: RSA
  Signature Algorithm: SHA256-RSA
  Subject Key ID: 65081d98a9870764590829b88c53240571997862
  Authority Key ID: a84a6a63047dddbae6d139b7a64565eff3a8eca1
  Serial Number: 0462ffaa887ea17797e0057ca81d7ba2a6fb
  Events:  <none>
Not Before: 2020-06-02T04:29:56+02:00
Not After: 2020-08-31T04:29:56+02:00
Renewal Time: 2020-08-01T04:29:56+02:00
[...]

Benotzt déi lescht stabil Kubernetes APIen

Cert-Manager war ee vun den éischten fir Kubernetes CRDs ëmzesetzen. Dëst, gekoppelt mat eiser Ënnerstëtzung fir Kubernetes Versioune bis 1.11, huet gemengt datt mir Legacy musse ënnerstëtzen apiextensions.k8s.io/v1beta1 och fir eis CRDs admissionregistration.k8s.io/v1beta1 fir eis Webhooks. Dës sinn elo ofgeschaaft a ginn a Kubernetes ab Versioun 1.22 geläscht. Mat eisem 1.0 bidde mir elo voll Ënnerstëtzung apiextensions.k8s.io/v1 и admissionregistration.k8s.io/v1 fir Kubernetes 1.16 (wou se dobäi goufen) a spéider. Fir Benotzer vu fréiere Versioune bidde mir weider Ënnerstëtzung v1beta1 an eisem legacy Versiounen.

Verbesserte Logged

An dëser Versioun hu mir d'Logbibliothéik aktualiséiert klog/v2, benotzt an Kubernetes 1.19. Mir iwwerpréiwen och all Magazin déi mir schreiwen fir sécherzestellen datt et de passenden Niveau zougewisen gëtt. Mir goufen duerch dëst guidéiert Leedung vun Kubernetes. Et gi fënnef (tatsächlech - sechs, ca. Iwwersetzer) Loggingsniveauen ab Error (Niveau 0), déi nëmmen wichteg Feeler dréckt, an endet mat Trace (Niveau 5), wat Iech hëlleft genau erauszefannen wat geschitt. Mat dëser Ännerung hu mir d'Zuel vun de Logbicher reduzéiert wann Dir keng Debugginginformatioun braucht wann Dir cert-Manager leeft.

Tipp: Par défaut leeft den cert-manager um Niveau 2 (Info), Dir kënnt dëst iwwerschreiden andeems Dir global.logLevel an Helm Chart.

Bemierkung: Iwwerpréiwung vun de Logbicher ass Äre leschten Auswee beim Problembehandlung. Fir méi Informatioun kuckt eis Féierung.

Redakter NB: Fir méi ze léieren wéi et alles ënner der Hood vu Kubernetes funktionnéiert, wäertvoll Berodung vun praktizéierenden Enseignanten kréien, souwéi qualitativ héichwäerteg technesch Ënnerstëtzung, kënnt Dir un online intensive Coursen deelhuelen Kubernetes Base, déi stattfënnt 28-30 September, an Kubernetes Mega, déi vum 14.-16. Oktober stattfënnt.

ACME Verbesserungen

Déi heefegst Notzung vum Certificat-Manager ass méiglecherweis mat der Ausstellung vun Zertifikater vu Let's Encrypt mat ACME verbonnen. Versioun 1.0 ass bemierkenswäert fir Gemeinschaftsfeedback ze benotzen fir zwee kleng awer wichteg Verbesserunge fir eisen ACME Emittent ze addéieren.

Desaktivéiere Kont Schlëssel Generatioun

Wann Dir ACME Zertifikater a grousse Bänn benotzt, benotzt Dir wahrscheinlech dee selwechte Kont op verschidde Stärekéip, sou datt Är Zertifikatausgabe Restriktiounen op se all gëllen. Dëst war scho méiglech am Cert-Manager wann Dir d'Geheimnis kopéiert an privateKeySecretRef. Dëse Benotzungsfall war zimmlech buggy well den cert-manager probéiert hëllefräich ze sinn a glécklech en neie Kontschlëssel erstallt huet wann en net konnt fannen. Dofir hu mir derbäigesat disableAccountKeyGenerationfir Iech vun dësem Verhalen ze schützen andeems Dir dës Optioun setzt true - cert-Manager wäert kee Schlëssel generéieren a warnen Iech datt et kee Kontschlëssel kritt huet.

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

Preferenze Kette

29. September Loosst eis verschlësselen wäert bewegen op Är eege Root Zertifika Autoritéit ISRG Root. Kräiz-ënnerschriwwen Certificaten wäert mat ersat ginn Identrust. Dës Ännerung erfuerdert keng Ännerunge fir d'Zert-Manager-Astellungen all aktualiséiert oder nei Certificaten, déi no dësem Datum erausginn, benotzen den neie Root CA.

Loosst eis Verschlësselung scho Certificaten mat dësem CA ënnerschreiwen a bitt se als "alternativ Zertifikakette" duerch ACME. Dës Versioun vum Certificat-Manager huet d'Fäegkeet den Zougang zu dëse Ketten an den Emittenter Astellungen ze setzen. Am Parameter preferredChain Dir kënnt den Numm vum CA uginn, dee benotzt gëtt fir den Zertifika auszeginn. Wann e CA Zertifikat verfügbar ass deen d'Ufro entsprécht, gëtt et Iech e Certificat aus. Notéiert w.e.g. datt dëst déi léifste Optioun ass, wann näischt fonnt gëtt, gëtt e Standardzertifika ausgestallt. Dëst wäert sécherstellen datt Dir Äert Zertifika nach ëmmer erneiert nodeems Dir déi alternativ Kette op der ACME Emittent Säit geläscht hutt.

Haut kënnt Dir ënnerschriwwe Certificaten kréien ISRG Root, also:

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

Wann Dir léiwer d'Kette ze verloossen IdenTrust - Setzt dëse Parameter op 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"

Notéiert w.e.g. datt dës Root CA geschwënn ofgeschaaft gëtt, Let's Encrypt wäert dës Kette aktiv halen bis den 29. September 2021.

Source: will.com

Setzt e Commentaire