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 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 genanntemailAddresses
-
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
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 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
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
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 disableAccountKeyGeneration
fir 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 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