Doli cert-manager 1.0

Nëse e pyesni një inxhinier të përvojës mbi cert-manager dhe pse të gjithë e përdorin atë, ai do të thotë me një suspirim, do t'ju abrazhojë me besim dhe do të thotë me lodhje: «Të gjithë e përdorin, sepse nuk ka alternativave të arsyeshme. Mikat tanë qajnë, ia dalin mbanë, por vazhdojnë të jetojnë me këtë kaktus. Pse e duam? Sepse punon. Pse nuk e duam? Sepse dalin vazhdimisht versione të reja që përdorin veçori të reja. Dhe na duhet të përditësojmë klasterin vazhdimisht. Dhe versionet e vjetra ndalojnë së punuari, sepse ka një konspiracion dhe një magji të madhe misterioze.»

Por zhvilluesit sigurojnë se me cert-manager 1.0 gjithçka do të ndryshojë.

Të besojmë?

Doli cert-manager 1.0

Cert-manager Ă«shtĂ« kontrolluesi 'i natyrshĂ«m' pĂ«r menaxhimin e certifikatave Kubernetes. Me ndihmĂ«n e tij mund tĂ« lĂ«shoni certifikata nga burime tĂ« ndryshme: Let’s Encrypt, HashiCorp Vault, Venafi, çifte çelash pĂ«r nĂ«nshkrim dhe vetĂ«-nĂ«nshkruar. Ai gjithashtu lejon mbajtjen e çelave aktualĂ« pĂ«r sa i pĂ«rket vlefshmĂ«risĂ«, si dhe pĂ«rpiqet tĂ« rinovojĂ« automatikisht certifikatate nĂ« kohĂ«n e caktuar deri nĂ« skadim. Cert-manager Ă«shtĂ« i bazuar nĂ« kube-lego dhe pĂ«rdor disa teknika nga projekte tĂ« tjera tĂ« ngjashme, si kube-cert-manager.

Shënime për publikimin

Me versionin 1.0 ne vendosim njĂ« shenjĂ« besimi pĂ«r tri viteve tĂ« zhvillimit tĂ« projektit cert-manager. GjatĂ« kĂ«saj kohe, ai ka evoluar ndjeshĂ«m nĂ« funksionalitet dhe stabilitet, por mĂ« shumĂ« nĂ« pĂ«rfshirjen e komunitetit. Sot ne shohim se shumĂ« njerĂ«z e pĂ«rdorin atĂ« pĂ«r tĂ« mbrojtur klasteret e tyre Kubernetes, si dhe e implementojnĂ« atĂ« nĂ« pjesĂ« tĂ« ndryshme tĂ« ekosistemĂ«s. NĂ« 16 lĂ«shime tĂ« fundit janĂ« korrigjuar shumĂ« gabime. Dhe ajo qĂ« duhej tĂ« prishĂ« — Ă«shtĂ« prishur. Disa pĂ«rpjekje pĂ«r tĂ« punuar me API-nĂ« kanĂ« pĂ«rmirĂ«suar ndĂ«rlidhjen e saj me pĂ«rdoruesit. Ne kemi zgjidhur 1500 probleme nĂ« GitHub me njĂ« numĂ«r mĂ« tĂ« madh kĂ«rkesash pĂ«r bashkim nga 253 anĂ«tarĂ« tĂ« komunitetit.

Duke lëshuar 1.0 ne zyrtarisht po njoftojmë se cert-manager është një projekt i pjekur. Ne gjithashtu premtojmë të mbajmë përputhshmërinë e API tonë. v1.

Një falënderim të madh për të gjithë ata që na ndihmuan të bëjmë cert-manager për këto tri vite! Le të jetë versioni 1.0 fillimi i shumë arritjeve të mëdha në të ardhmen.

Lëshimi 1.0 është një lëshim i qëndrueshëm me disa prioritetet kryesore:

  • v1 API;

  • Ekipa kubectl cert-manager status, pĂ«r ndihmĂ« nĂ« analizimin e problemeve;

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

  • PĂ«rmirĂ«sim tĂ« regjistrimeve;

  • PĂ«rmirĂ«sime ACME.

Para përditësimin, sigurohuni të lexoni shënimet e përditësimit.

API v1

Versioni v0.16 punonte me API v1beta1. Kjo shtoi disa ndryshime strukturore, si dhe përmirësoi dokumentacionin e fushave të API. Versioni 1.0 mbështetet në të gjitha këto përmes API v1. Ky API është stabil, dhe së bashku me këtë, ne kemi dhënë garanci për përputhshmërinë, por me API v1 ne premtojmë të mbajmë përputhshmërinë për shumë vite përpara.

Ndryshimet e bëra (vini re: mjetet tona për konvertimin do të kujdesen për gjithçka për ju):

Certifikata:

  • emailSANs tani quhen emailAddresses

  • uriSANs — uris

Këto ndryshime shtojnë përputhshmërinë me SAN të tjerë (emrat alternativë të subjektit, shën. e përkthyesit), si dhe me API të Go. Ne e heqim këtë term nga API ynë.

Përditësim

NĂ«se pĂ«rdorni Kubernetes 1.16+ — webhook-et konvertuese do t'ju lejojnĂ« tĂ« punoni paralelisht dhe pa probleme me versionet e API v1alpha2, v1alpha3, v1beta1 dhe v1. Me ndihmĂ«n e tyre, do tĂ« jeni nĂ« gjendje tĂ« pĂ«rdorni versionin e ri tĂ« API pa ndryshuar ose rivendosur burimet tuaja tĂ« vjetra. Ne rekomandojmĂ« me kĂ«mbĂ«ngulje qĂ« tĂ« pĂ«rditĂ«soni manifestet nĂ« API v1, pasi versionet e mĂ«parshme do tĂ« shpallen sĂ« shpejti tĂ« tejkaluara. PĂ«rdoruesit legacy tĂ« versionit cert-manager do tĂ« kenĂ« ende qasje vetĂ«m nĂ« v1, hapat pĂ«r pĂ«rditĂ«simin mund tĂ« gjenden kĂ«tu.

Ekipa kubectl cert-manager status

Me përmirësimet e reja në zgjerimin tonë të kubectl është bërë më e lehtë të hulumtoni problemet që lidhen me mosdhënien e certifikatave. kubectl cert-manager status tani ofron shumë më tepër informacion mbi atë që ndodh me certifikatat, si dhe tregon fazën e dhënies së certifikatës.

Pas instalimit të zgjerimit, mund të ekzekutoni kubectl cert-manager status certificate, që do të sjellë në kërkimin e certifikatës me emrin e përcaktuar dhe çdo burim të lidhur, si CertificateRequest, Secret, Issuer, si dhe Order dhe Challenges në rast se përdoren certifikatat nga ACME.

Shembulli i debugging-ut të një certifikate që ende nuk është gati:

$ kubectl cert-manager status certificate acme-certificate

Emri: acme-certificate
Hapësira: default
Krijuar në: 2020-08-21T16:44:13+02:00
Kushtet:
  Gatshëm: False, Arsye: DoesNotExist, Mesazh: Duke lëshuar certifikatën pasi Sekreti nuk ekziston
  Duke lëshuar: True, Arsye: DoesNotExist, Mesazh: Duke lëshuar certifikatën pasi Sekreti nuk ekziston
Emrat DNS:
- example.com
Ngjarjet:
  Lloji    Arsye     Mosha   Prej          Mesazh
  ----    ------     ----  ----          -------
  Normal  Duke lëshuar    18m   cert-manager  Duke lëshuar certifikatën pasi Sekreti nuk ekziston
  Normal  Gjeneruar  18m   cert-manager  Ruajti çelësin privat të ri në burimin e përkohshëm të Sekretit "acme-certificate-tr8b2"
  Normal  Kërkuar  18m   cert-manager  Krijoi burimin e ri të Kërkesës për Certifikatë "acme-certificate-qp5dm"
Lëshuesi:
  Emri: acme-issuer
  Lloji: Lëshues
  Kushtet:
    Gatshëm: True, Arsye: ACMEAccountRegistered, Mesazh: Llogaria ACME është regjistruar me serverin ACME
gabim kur kërkohet Sekreti "acme-tls": sekrete "acme-tls" nuk u gjetën
Nuk para: 
Nuk pas: 
Koha e rinovimit: 
Kërkesë për Certifikatë:
  Emri: acme-certificate-qp5dm
  Hapësira: default
  Kushtet:
    Gatshëm: False, Arsye: Pendim, Mesazh: Duke pritur lëshimin e certifikatës nga porosia default/acme-certificate-qp5dm-1319513028: "pendim"
  Ngjarjet:
    Lloji    Arsye        Mosha   Prej          Mesazh
    ----    ------        ----  ----          -------
    Normal  PorosiaKrijuar  18m   cert-manager  Krijoi burimin e Porosisë default/acme-certificate-qp5dm-1319513028
Porosia:
  Emri: acme-certificate-qp5dm-1319513028
  Shteti: pendim, Arsye:
  Autorizimet:
    URL: https://acme-staging-v02.api.letsencrypt.org/acme/authz-v3/97777571, Identifikuesi: example.com, Shteti Fillestar: pendim, Wildcard: false
Sfidat:
- Emri: acme-certificate-qp5dm-1319513028-1825664779, Lloji: DNS-01, Token: J-lOZ39yNDQLZTtP_ZyrYojDqjutMAJOxCL1AkOEZWw, ÇelĂ«si: U_W3gGV2KWgIUonlO2me3rvvEOTrfTb-L5s0V1TJMCw, Shteti: pendim, Arsye: gabim nĂ« marrjen e llogarisĂ« sĂ« shĂ«rbimit clouddns: sekreti "clouddns-accoun" nuk u gjet, Po pĂ«rpunon: true, Paraqitur: false

Komanda gjithashtu mund të ndihmojë për të mësuar më shumë rreth përmbajtjes së certifikatës. Shembulli i detajeve për certifikatën e lëshuar nga Letsencrypt:

$ kubectl cert-manager status certificate example
Emri: example
[...]
Sekreti:
  Emri: example
  Shteti i Lëshuesit: SHBA
  Organizata e Lëshuesit: Let's Encrypt
  Emri i Përgjithshëm i Lëshuesit: Let's Encrypt Authority X3
  PĂ«rdorimi i ÇelĂ«sit: NĂ«nshkrim Digjital, Kriptim i ÇelĂ«sit
  PĂ«rdorimet e Zgjatura tĂ« ÇelĂ«sit: Autentikimi i Serverit, Autentikimi i Klientit
  Algoritmi i ÇelĂ«sit Publik: RSA
  Algoritmi i Nënshkrimit: SHA256-RSA
  ID e ÇelĂ«sit tĂ« Subjektit: 65081d98a9870764590829b88c53240571997862
  ID e ÇelĂ«sit tĂ« Autoritetit: a84a6a63047dddbae6d139b7a64565eff3a8eca1
  Numri Serik: 0462ffaa887ea17797e0057ca81d7ba2a6fb
  Ngjarjet:  
Nuk para: 2020-06-02T04:29:56+02:00
Nuk pas: 2020-08-31T04:29:56+02:00
Koha e rinovimit: 2020-08-01T04:29:56+02:00
[...]

Përdorimi i API-ve më të reja të stabilizuara të Kubernetes

Cert-manager ka qenë një ndër të parët që ka implementuar CRD-të e Kubernetes. Kjo, si dhe mbështetja jonë për versionet e Kubernetes deri në 1.11, na çoi në nevojën për të mbështetur të vjetëruarit apiextensions.k8s.io/v1beta1 për CRD-të tona, si dhe admissionregistration.k8s.io/v1beta1 për webhooks tona. Tani ato janë të vjetëruara dhe do të hiqen në Kubernetes nga versioni 1.22. Me 1.0 tonën tani ofrojmë mbështetje të plotë apiextensions.k8s.io/v1 dhe admissionregistration.k8s.io/v1 për Kubernetes 1.16 (ku ato u shtuan) dhe më vonë. Për përdoruesit e versioneve të mëparshme, ne vazhdojmë të ofrojmë mbështetje v1beta1 në legacy versionin tone.

Gazhdimi i përmirësuar

NĂ« kĂ«tĂ« version, ne pĂ«rmirĂ«suam bibliotekĂ«n pĂ«r regjistrimin nĂ« klog/v2, e cila pĂ«rdoret nĂ« Kubernetes 1.19. Ne gjithashtu kontrollojmĂ« çdo regjistrim qĂ« shkruajmĂ« pĂ«r t’i caktuar atij nivelin pĂ«rkatĂ«s. Ne u udhĂ«hoqĂ«m nga udhezimet nga Kubernetes. EkzistojnĂ« pesĂ« (nĂ« tĂ« vĂ«rtetĂ« - gjashtĂ«, shĂ«n. e pĂ«rkthyesit) nivele regjistrimi, duke filluar nga Gabim (niveli 0), i cili nxjerr vetĂ«m gabimet mĂ« tĂ« rĂ«ndĂ«sishme, dhe pĂ«rfundon me Trace (niveli 5), i cili do tĂ« ndihmojĂ« tĂ« kuptoni saktĂ«sisht se çfarĂ« po ndodh. Me kĂ«tĂ« ndryshim, ne e kemi reduktuar numrin e regjistrimeve nĂ«se nuk keni nevojĂ« pĂ«r informacion rregullues gjatĂ« pĂ«rdorimit tĂ« cert-manager.

Këshillë: në mënyrë të paracaktuar, cert-manager punon në nivelin 2 (Info), ju mund ta anashkaloni këtë duke përdorur global.logLevel në Helm chart.

Shënim: shikimi i regjistrimeve është mjeti i fundit për zgjidhjen e problemeve. Për më shumë informacion, ju lutemi referohuni në udhëzues.

N.B. redaktor: Për të mësuar më shumë se si funksionon gjithçka nën kapuçin e Kubernetes, për të marrë këshilla të çmuara nga praktikuesit-mësues, si dhe ndihmë cilësore nga suporti teknik, mund të merrni pjesë në intensivat online Kubernetes Baza, që do të zhvillohet nga 28-30 Shtator, dhe Kubernetes Mega, që do të zhvillohet nga 14-16 Tetor.

Përmirësimet ACME

PĂ«rdorimi mĂ« i zakonshĂ«m i cert-manager mund tĂ« lidhet me lĂ«shimin e certifikatave nga Let’s Encrypt duke pĂ«rdorur ACME. Versioni 1.0 Ă«shtĂ« i rĂ«ndĂ«sishĂ«m pĂ«r pĂ«rdorimin e reagimeve nga komuniteti pĂ«r tĂ« shtuar dy pĂ«rmirĂ«sime tĂ« vogla, por tĂ« rĂ«ndĂ«sishme, nĂ« emetuesin tonĂ« ACME.

Çjerrja e krijimit tĂ« çelĂ«sit tĂ« llogarisĂ«

NĂ«se jeni duke pĂ«rdorur certifikata ACME nĂ« numĂ«r tĂ« madh, ka shumĂ« mundĂ«si qĂ« tĂ« pĂ«rdorni tĂ« njĂ«jtĂ«n llogari nĂ« disa klastera, kĂ«shtu qĂ« kufizimet tuaja pĂ«r lĂ«shimin e certifikatave do tĂ« ndikojnĂ« nĂ« tĂ« gjithĂ«. Kjo ka qenĂ« e mundur tashmĂ« nĂ« cert-manager duke kopjuar sekretin e caktuar nĂ« privateKeySecretRef. Ky rast pĂ«rdorimi ishte mjaft problematik, pasi cert-manager pĂ«rpiqej tĂ« ishte i dobishĂ«m dhe krijonte me gĂ«zim njĂ« çelĂ«s tĂ« ri tĂ« llogarisĂ« nĂ«se nuk e gjeti atĂ«. Prandaj ne shtuam disableAccountKeyGeneration, pĂ«r t'ju mbrojtur nga ky veprim nĂ«se e vendosni kĂ«tĂ« parameter nĂ« true — cert-manager nuk do tĂ« krijojĂ« çelĂ«s dhe do t'ju paralajmĂ«rojĂ« se nuk Ă«shtĂ« ofruar njĂ« çelĂ«s llogarie.

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

Zgjidhja e preferuar

29 Shtator Let’s Encrypt do tĂ« kalojĂ« nĂ« njĂ« qendĂ«r tĂ« saj tĂ« çertifikimit tĂ« rrĂ«njĂ«s ISRG Root. Çertifikatat me nĂ«nshkrime tĂ« kryqĂ«zuara do tĂ« zĂ«vendĂ«sohen me Identrust. Ky ndryshim nuk kĂ«rkon modifikime nĂ« konfigurimet e cert-manager, tĂ« gjitha çertifikatat e pĂ«rditĂ«suara ose tĂ« reja, qĂ« lĂ«shohen pas kĂ«saj date, do tĂ« pĂ«rdorin CA-nĂ« e re.

Let’s Encrypt tashmĂ« po nĂ«nshkruan çertifikatat me kĂ«tĂ« CA dhe i ofron ato si "njĂ« zinxhir alternativ çertifikatash" pĂ«rmes ACME. NĂ« kĂ«tĂ« version tĂ« cert-manager ka mundĂ«sinĂ« pĂ«r tĂ« caktuar qasje nĂ« kĂ«to zinxhirĂ« nĂ« konfigurimet e lĂ«shuesit. NĂ« parametrin preferredChain mund tĂ« specifikoni emrin e CA-sĂ« qĂ« do tĂ« pĂ«rdoret pĂ«r tĂ« lĂ«shuar çertifikatĂ«n. NĂ«se ka njĂ« çertifikatĂ« CA tĂ« disponueshme qĂ« pĂ«rputhet me kĂ«rkesĂ«n, ajo do t'ju lĂ«shojĂ« çertifikatĂ«n. Ju lutemi vini re se kjo Ă«shtĂ« opsioni preferencial; nĂ«se nuk gjendet asgjĂ«, çertifikata e paracaktuar do tĂ« lĂ«shohet. Kjo do tĂ« garantojĂ« se do tĂ« pĂ«rditĂ«soni çertifikatĂ«n tuaj pas heqjes sĂ« zinxhirit alternativ nga lĂ«shuesi ACME.

Që sot mund të merrni çertifikatat e nënshkruara ISRG Root, kështu:

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Ă« mbani zinxhirin IdenTrust — caktoni kĂ«tĂ« parametrin 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 ky qendĂ«r i çertifikimit tĂ« rrĂ«njĂ«s do tĂ« skadojĂ« sĂ« shpejti, Let’s Encrypt do tĂ« mbajĂ« kĂ«tĂ« zinxhir aktiv deri mĂ« 29 Shtator 2021.

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster