cert-manager 1.0 lëshuar

Nëse pyet një inxhinier me përvojë, të mençur se çfarë mendon për menaxherin e certifikatës dhe pse e përdorin të gjithë, atëherë specialisti do të psherëtin, do ta përqafojë me besim dhe do të thotë i lodhur: “Të gjithë e përdorin, sepse nuk ka alternativa të arsyeshme. Minjtë tanë qajnë, shpojnë, por vazhdojnë të jetojnë me këtë kaktus. Pse duam? Sepse funksionon. Pse nuk duam? Sepse vazhdimisht dalin versione të reja që përdorin veçori të reja. Dhe ju duhet ta përditësoni grupin pa pushim. Dhe versionet e vjetra pushojnë së funksionuari, sepse ka një komplot dhe një shamanizëm të madh misterioz.

Por zhvilluesit pohojnë këtë cert-menaxher 1.0 çdo gjë do të ndryshojë.

A do të besojmë?

cert-manager 1.0 lëshuar

Cert-manager është kontrolluesi vendas i menaxhimit të certifikatave Kubernetes. Mund të përdoret për lëshimin e certifikatave nga burime të ndryshme: Let's Encrypt, HashiCorp Vault, Venafi, çiftet e çelësave të nënshkrimit dhe të vetë-nënshkruar. Gjithashtu ju lejon të mbani të përditësuar çelësat sipas datës së skadimit dhe gjithashtu përpiqet të rinovojë automatikisht certifikatat në një kohë të caktuar përpara se të skadojnë. Cert-manager bazohet në kube-lego dhe ka përdorur gjithashtu disa truke nga projekte të tjera të ngjashme si kube-cert-manager.

Shënimet e publikimit

Me versionin 1.0, ne vendosëm një shenjë besimi për tre vitet e zhvillimit të projektit të menaxherit të certifikatës. Gjatë kësaj kohe, ai ka evoluar ndjeshëm në funksionalitet dhe stabilitet, por mbi të gjitha në komunitet. Sot, ne shohim shumë njerëz që e përdorin atë për të siguruar grupimet e tyre Kubernetes, si dhe për ta vendosur atë në pjesë të ndryshme të ekosistemit. Shumë gabime janë rregulluar në 16 versionet e fundit. Dhe ajo që duhej thyer është thyer. Disa vizita për të punuar me API-në kanë përmirësuar ndërveprimin e tij me përdoruesit. Ne kemi zgjidhur 1500 probleme në GitHub me më shumë kërkesa tërheqëse nga 253 anëtarë të komunitetit.

Me lëshimin e 1.0, ne deklarojmë zyrtarisht se cert-manager është një projekt i pjekur. Ne gjithashtu premtojmë të mbajmë API-në tonë të pajtueshme v1.

Shumë faleminderit për të gjithë ata që na ndihmuan të bëhemi cert-manager gjatë gjithë këtyre tre viteve! Le të jetë versioni 1.0 i pari nga shumë gjëra të mëdha që do të vijnë.

Release 1.0 është një version i qëndrueshëm me disa fusha prioritare:

  • v1 ZJARR;

  • Ekip kubectl cert-manager status, për të ndihmuar në analizën e problemit;

  • Përdorimi i API-ve më të fundit të qëndrueshme të Kubernetes;

  • Prerje e përmirësuar;

  • Përmirësime ACME.

Sigurohuni që të lexoni shënimet e përmirësimit përpara se të përmirësoni.

API v1

Versioni v0.16 ka punuar me API v1beta1. Kjo shtoi disa ndryshime strukturore dhe gjithashtu përmirësoi dokumentacionin e fushës API. Versioni 1.0 bazohet në këtë me një API v1. Ky API është i pari ynë i qëndrueshëm, në të njëjtën kohë ne kemi dhënë tashmë garanci përputhshmërie, por me API v1 ne premtojmë të ruajmë përputhshmërinë për vitet në vijim.

Ndryshimet e bëra (shënim: mjetet tona të konvertimit kujdesen për gjithçka për ju):

Certifikata:

  • emailSANs tani quhet emailAddresses

  • uriSANs - uris

Këto ndryshime shtojnë përputhshmërinë me SAN të tjerë (emrat alt të subjekteve, përafërsisht. përkthyes), si dhe me Go API. Po e heqim këtë term nga API-ja jonë.

Update

Nëse jeni duke përdorur Kubernetes 1.16+, konvertimi i grepave në internet do t'ju lejojë të punoni në të njëjtën kohë dhe pa probleme me versionet e API v1alpha2, v1alpha3, v1beta1 и v1. Me këto, ju do të jeni në gjendje të përdorni versionin e ri të API-së pa ndryshuar ose rishpërndarë burimet tuaja të vjetra. Ne rekomandojmë shumë përmirësimin e manifesteve tuaja në API v1, pasi versionet e mëparshme do të zhvlerësohen së shpejti. Përdoruesit legacy versionet e cert-manager do të kenë ende akses vetëm në v1, mund të gjenden hapat e përmirësimit këtu.

komanda e statusit të cert-manager kubectl

Me përmirësime të reja në zgjerimin tonë në kubectl u bë më e lehtë për të hetuar problemet që lidhen me moslëshimin e certifikatave. kubectl cert-manager status tani jep shumë më tepër informacion për atë që po ndodh me certifikatat dhe gjithashtu tregon fazën e lëshimit të certifikatës.

Pas instalimit të shtesës, mund të ekzekutoni kubectl cert-manager status certificate <имя-сертификата>, i cili do të kërkojë certifikatën me emrin e dhënë dhe çdo burim të lidhur si CertificateRequest, Secret, Issuer dhe Order and Challenges nëse përdorni certifikata nga ACME.

Një shembull i korrigjimit të një certifikate që nuk është ende gati:

$ 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

Komanda gjithashtu mund t'ju ndihmojë të mësoni më shumë rreth përmbajtjes së certifikatës. Shembull i detajuar për një certifikatë të lëshuar nga 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
[...]

Duke përdorur API-të më të fundit të qëndrueshme të Kubernetes

Cert-manager ishte një nga të parët që zbatoi Kubernetes CRD. Kjo, dhe mbështetja jonë për versionet e Kubernetes deri në 1.11, do të thoshte se duhej të mbështesnim trashëgiminë apiextensions.k8s.io/v1beta1 edhe për CRD-të tona admissionregistration.k8s.io/v1beta1 për faqet tona të internetit. Tani ato janë të vjetruara dhe do të hiqen në Kubernetes nga versioni 1.22. Me 1.0-ën tonë ne tani ofrojmë mbështetje të plotë apiextensions.k8s.io/v1 и admissionregistration.k8s.io/v1 për Kubernetes 1.16 (ku u shtuan) dhe më të reja. Për përdoruesit e versioneve të mëparshme, ne vazhdojmë të ofrojmë mbështetje v1beta1 në tonë legacy versionet.

Regjistrimi i përmirësuar

Në këtë version, ne kemi përditësuar bibliotekën e regjistrimit në klog/v2, e përdorur në Kubernetes 1.19. Ne gjithashtu rishikojmë çdo ditar që shkruajmë për t'u siguruar që i është caktuar niveli i duhur. Ne u udhëhoqëm nga kjo udhëzime nga Kubernetes. Janë pesë (në fakt gjashtë, përafërsisht. përkthyes) nivelet e prerjeve duke filluar nga Error (niveli 0), i cili printon vetëm gabime të rëndësishme dhe përfundon me Trace (niveli 5) i cili do t'ju ndihmojë të dini saktësisht se çfarë po ndodh. Me këtë ndryshim, ne kemi reduktuar numrin e regjistrave nëse nuk keni nevojë për informacione të korrigjimit kur ekzekutoni menaxherin e certifikatës.

Këshillë: menaxheri i certifikatës funksionon në nivelin 2 si parazgjedhje (Info), mund ta anashkaloni këtë duke përdorur global.logLevel në Helmchart.

Shënim: Shikimi i regjistrave është zgjidhja e fundit gjatë zgjidhjes së problemeve. Për më shumë informacion shikoni tonë udhëheqja.

Nr.b e redaktorit.: Për të mësuar më shumë rreth asaj se si funksionon gjithçka nën kapuçin e Kubernetes, për të marrë këshilla të vlefshme nga mësuesit praktikantë, si dhe ndihmë cilësore të mbështetjes teknike, mund të merrni pjesë në intensivet online Baza e Kubernetes, e cila do të mbahet 28-30 shtator, dhe Kubernetes Megaqë do të mbahet në datat 14-16 tetor.

Përmirësimet ACME

Përdorimi më i zakonshëm i menaxherit të certifikatës lidhet ndoshta me lëshimin e certifikatave nga Let's Encrypt duke përdorur ACME. Versioni 1.0 është i dukshëm për përdorimin e reagimeve të komunitetit për të shtuar dy përmirësime të vogla por të rëndësishme për emetuesin tonë ACME.

Çaktivizo gjenerimin e çelësave të llogarisë

Nëse përdorni certifikatat ACME në vëllime të mëdha, ka të ngjarë të përdorni të njëjtën llogari në grupe të shumta, kështu që kufizimet e lëshimit të certifikatave tuaja do të zbatohen për të gjitha ato. Kjo ishte tashmë e mundur në menaxherin e certifikatës kur kopjohej sekreti i specifikuar në privateKeySecretRef. Ky rast përdorimi ishte mjaft i gabuar, pasi menaxheri i certifikatës u përpoq të ishte i dobishëm dhe me kënaqësi krijoi një çelës të ri llogarie nëse nuk e gjente një të tillë. Prandaj shtuam disableAccountKeyGenerationpër t'ju mbrojtur nga kjo sjellje nëse e vendosni këtë opsion në true - Menaxheri i certifikatës nuk do të gjenerojë një çelës dhe do t'ju paralajmërojë se nuk i është dhënë një çelës llogarie.

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

Zinxhiri i preferuar

29 shtator Le të Enkriptojmë do te kaloj në CA tuaj rrënjë ISRG Root. Certifikatat e kryqëzuara do të zëvendësohen nga Identrust. Ky ndryshim nuk kërkon ndryshime në cilësimet e menaxherit të certifikatës, të gjitha certifikatat e përditësuara ose të reja të lëshuara pas kësaj date do të përdorin CA-në e re rrënjë.

Le të Encrypt tashmë nënshkruan certifikatat me këtë CA dhe i ofron ato si një "zinxhir alternativ certifikate" nëpërmjet ACME. Në këtë version të menaxherit të certifikatës, është e mundur të vendosni aksesin në këto zinxhirë në cilësimet e emetuesit. Në parametër preferredChain ju mund të specifikoni emrin e AK-së në përdorim, me të cilën do të lëshohet certifikata. Nëse disponohet një certifikatë CA që përputhet me kërkesën, ajo do t'ju lëshojë një certifikatë. Ju lutemi vini re se ky është opsioni i preferuar, nëse nuk gjendet asgjë, do të lëshohet një certifikatë e paracaktuar. Kjo do të sigurojë që ju ende do të rinovoni certifikatën tuaj pas fshirjes së zinxhirit alternativ në anën e lëshuesit ACME.

Tashmë sot mund të merrni certifikata të nënshkruara nga ISRG Root, Kështu që:

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

Nëse preferoni të largoheni nga zinxhiri IdenTrust - vendoseni këtë opsion në 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"

Ju lutemi vini re se kjo CA rrënjë do të zhvlerësohet së shpejti, Let's Encrypt do ta mbajë këtë zinxhir aktiv deri më 29 shtator 2021.

Burimi: www.habr.com

Shto një koment