cert-manager 1.0 serbest hat berdan

Ger hûn ji endezyarek xwedî ezmûn û jîr bipirsin ka ew çi difikire li ser rêveberê cert-rêveberê û çima her kes wê bikar tîne, pispor dê axînekê bide wî, bi nepenî wî hembêz bike û bi westayî bêje: "Her kes wê bikar tîne, ji ber ku alternatîfên maqûl tune. Mişkên me digirîn, xwe diqelînin, lê bi vî kaktusî re jiyana xwe didomînin. Çima em hez dikin? Ji ber ku ew dixebite. Çima em hez nakin? Ji ber ku guhertoyên nû bi berdewamî têne derxistin ku taybetmendiyên nû bikar tînin. Û hûn neçar in ku komê dîsa û dîsa nûve bikin. Û guhertoyên kevn dev ji xebatê berdidin, ji ber ku komployek û şamanîzmek nepenî ya mezin heye."

Lê pêşdebiran îdîa dikin ku bi cert-rêveber 1.0 her tişt wê biguhere.

Ma em jê bawer bikin?

cert-manager 1.0 serbest hat berdan

Gerînendeyê Cert kontrolkerek rêveberiya sertîfîkayê ya Kubernetes e. Ew dikare ji bo derxistina sertîfîkayên ji çavkaniyên cihêreng were bikar anîn: Werin em Şîfre bikin, HashiCorp Vault, Venafi, cotên mifteyê îmzekirin û xwe-îmzakirî. Di heman demê de ew dihêle hûn bişkokan nûve bikin û hewl dide ku bixweber sertîfîkayan di demek diyarkirî de berî ku biqedin nûve bikin. Cert-manager li ser bingeha kube-lego-yê ye, û di heman demê de hin teknîkên ji projeyên din ên bi vî rengî, wekî kube-cert-manager, bikar tîne.

Release Notes

Bi guhertoya 1.0 re me di sê salên pêşkeftina projeya cert-rêveberê de nîşanek pêbaweriyê danî. Di vê demê de, ew di fonksîyon û aramiyê de, lê ya herî zêde di civakê de, pir pêş ketiye. Îro em dibînin ku gelek kes wê bikar tînin da ku komên xwe yên Kubernetes ewle bikin, û her weha wê di beşên cihêreng ên ekosîstemê de bicîh bikin. Di 16 weşanên paşîn de komek xeletî hatine rast kirin. Û ya ku diviyabû bihata şikandin hat şikandin. Gelek serdanên API-ê têkiliya wê bi bikarhêneran re çêtir kirin. Me 1500 pirsgirêk li ser GitHub çareser kirin, digel daxwazên 253 endamên civatê hêj bêtir.

Bi berdana 1.0 em bi fermî radigihînin ku cert-rêveber projeyek gihîştî ye. Em jî soz didin ku API-ya xwe lihevhatî bihêlin v1.

Gelek spas ji her kesê ku di van sê salan de alîkariya me kir ku em cert-rêveberê çêbikin! Bila guhertoya 1.0 bibe yekem ji gelek tiştên mezin ên ku werin.

Release 1.0 serbestberdanek bi îstîqrar e ku bi çend deverên pêşîn hene:

  • v1 API;

  • tîma kubectl cert-manager status, ji bo alîkariya analîzkirina pirsgirêkan;

  • Bikaranîna herî dawîn API-yên stabîl ên Kubernetes;

  • Têketinê çêtir kirin;

  • Pêşveçûnên ACME.

Bê guman berî nûvekirinê notên nûvekirinê bixwînin.

API v1

Guhertoya v0.16 bi API-ê re xebitî v1beta1. Vê yekê hin guhertinên binesaziyê zêde kir û di heman demê de belgeya qada API-yê jî çêtir kir. Guhertoya 1.0 li ser vê yekê hemî bi API-ê ava dike v1. Ev API-ya meya yekem a stabîl e, di heman demê de me berê jî garantiyên lihevhatinê dane, lê bi API-yê re v1 Em soz didin ku ji bo salên pêş de lihevhatinê biparêzin.

Guhertinên hatine çêkirin (têbînî: amûrên veguheztina me dê her tiştî ji bo we bigire):

Şehade:

  • emailSANs niha tê gotin emailAddresses

  • uriSANs - uris

Van guhertinan lihevhatina bi SAN yên din re zêde dikin (navên alt yên mijarê, approx. wergêr), û her weha bi Go API re. Em vê termê ji API-ya xwe derdixin.

Rojanekirin

Ger hûn Kubernetes 1.16+ bikar tînin - veguherandina webhookan dê bihêle ku hûn bi guhertoyên API-ê re hevdem û bêkêmasî bixebitin v1alpha2, v1alpha3, v1beta1 и v1. Bi wan re, hûn dikarin guhertoya nû ya API-ê bêyî guheztin an veguheztina çavkaniyên xweyên kevn bikar bînin. Em bi tundî pêşniyar dikin ku manîfestoyên xwe li API-yê nûve bikin v1, ji ber ku guhertoyên berê dê di demek nêzîk de werin derxistin. Bikarhêner legacy guhertoyên cert-rêveber dê hîn jî tenê bigihîjin v1, gavên nûvekirinê têne dîtin vir.

fermana statuya cert-rêveberê kubectl

Bi pêşkeftinên nû di dirêjkirina me de kubectl Vekolîna pirsgirêkên ku bi nedana sertîfîkayan ve girêdayî ne hêsantir bûye. kubectl cert-manager status niha bêtir agahdarî li ser tiştên ku bi sertîfîkayan diqewime peyda dike, û hem qonaxa ku sertîfîka tê de tê derxistin nîşan dide.

Piştî sazkirina pêvekê hûn dikarin birevin kubectl cert-manager status certificate <имя-сертификата>, ku dê di sertîfîkayê de bi navê diyarkirî û her çavkaniyên têkildar, wek CertificateRequest, Secret, Issuer, û Order and Challenges di doza sertîfîkayên ji ACME de bigerin.

Nimûneyek xeletkirina sertîfîkayek ku hîn ne amade ye:

$ 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

Tîm jî dikare ji we re bibe alîkar ku hûn di derheqê naveroka sertîfîkayê de bêtir fêr bibin. Nimûne hûrguliyên ji bo sertîfîkayek ku ji hêla Letsencrypt ve hatî derxistin:

$ 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
[...]

API-yên herî dawî yên Kubernetes-ê yên stabîl bikar bînin

Rêvebirê Cert-ê yek ji wan yekem bû ku Kubernetes CRDs bicîh anî. Ev, digel piştgiriya me ya ji bo guhertoyên Kubernetes heya 1.11-an, tê vê wateyê ku pêdivî ye ku em piştgiriyê bidin mîrasê. apiextensions.k8s.io/v1beta1 ji bo CRDsên me jî admissionregistration.k8s.io/v1beta1 ji bo webhooks me. Vana naha hatine betal kirin û dê di guhertoya 1.22-an de li Kubernetes werin rakirin. Bi 1.0-a xwe em naha piştgirîya tevahî pêşkêş dikin apiextensions.k8s.io/v1 и admissionregistration.k8s.io/v1 ji bo Kubernetes 1.16 (ku ew lê zêde bûn) û paşê. Ji bo bikarhênerên guhertoyên berê, em piştgiriya xwe berdewam dikin v1beta1 di me de legacy versions.

Têketinê çêtir kirin

Di vê versiyonê de me pirtûkxaneya têketinê nû kiriye klog/v2, di Kubernetes 1.19 de tê bikaranîn. Di heman demê de em her kovara ku em dinivîsin jî dinirxînin da ku pê ewle bibin ku ew di asta guncan de tê destnîşankirin. Em bi vê rêberiyê kirin rêberiya Kubernetes. Pênc hene (bi rastî - şeş, approx. wergêr) astên tomarkirinê ji dest pê dikin Error (asta 0), ku tenê xeletiyên girîng çap dike, û bi dawî dibe Trace (asta 5), ​​ku dê ji we re bibe alîkar ku hûn bi rastî bibînin ka çi diqewime. Bi vê guheztinê re me hejmara têketin kêm kir ger dema ku hûn gerînendeyê cert-rêveberê dimeşînin hewcedariya we bi agahdariya verastkirinê tune.

Serişte: ji hêla xwerû ve rêveberê sertîfîkayê di asta 2-ê de dimeşe (Info), hûn dikarin vê bikar bînin global.logLevel di nexşeya Helmê de.

Nîşe: Vedîtina têketin gava ku hûn pirsgirêkê çareser bikin çareya weya paşîn e. Ji bo bêtir agahdarî ji me re binihêrin birêvebirî.

Edîtorê n.b.: Ji bo ku hûn bêtir fêr bibin ka ew çawa hemî di bin serpêhatiya Kubernetes de dixebite, şîretên hêja ji mamosteyên praktîkî, û her weha piştgirîya teknîkî ya bilind-kalîteyê bistînin, hûn dikarin beşdarî qursên zexm ên serhêl bibin. Bingeha Kubernetes, ku wê bê lidarxistin Îlon 28-30, û Kubernetes Mega, ku dê di 14-16 Cotmehê de pêk were.

Pêşveçûnên ACME

Bikaranîna herî gelemperî ya cert-rêveber dibe ku bi derxistina sertîfîkayên ji Let's Encrypt bi karanîna ACME ve girêdayî ye. Guhertoya 1.0 ji bo karanîna bertekên civakê ji bo lê zêdekirina du çêtirkirinên piçûk lê girîng li berdevkê meya ACME-yê girîng e.

Nifşa Mifteya Hesabê neçalak bike

Ger hûn sertîfîkayên ACME-ê di cildên mezin de bikar tînin, dibe ku hûn heman hesabê li ser gelek koman bikar bînin, ji ber vê yekê qedexeyên weşana sertîfîkayê dê li ser hemîyan bicîh bibin. Ev jixwe di cert-rêveberê de dema kopîkirina sira ku tê de hatî destnîşan kirin gengaz bû privateKeySecretRef. Ev doza karanîna pir xelet bû ji ber ku rêveberê sertîfîkayê hewl da ku bibe alîkar û bi kêfxweşî mifteyek hesabek nû çêkir heke ew nikaribe yek bibîne. Ji ber vê yekê me lê zêde kir disableAccountKeyGenerationji bo ku we ji vê tevgerê bi danîna vê vebijarkê biparêze true - cert-rêveber dê mifteyek çê neke û dê we hişyar bike ku mifteya hesabê jê re nehatiye dayîn.

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

Zincîra Preferred

29ê Îlonê Werin em Şîfre bikin dê tevbigerin ji desthilatdariya sertîfîkaya root ya xwe re ISRG Root. Sertîfîkayên xaç-îmzakirî dê bi wan re werin guhertin Identrust. Ev guhertin ne hewce ye ku li mîhengên cert-rêveberê were guhertin.

Werin em Şîfre bikin jixwe sertîfîkayan bi vê CA-yê re îmze dikin û wan wekî "zincîra sertîfîkaya alternatîf" bi ACME re pêşkêş dikin. Vê guhertoya rêveberê sertîfîkayê xwedan şiyana ku di mîhengên belavker de gihîştina van zincîreyan saz bike. Di parametreyê de preferredChain Hûn dikarin navê CA-ya ku ji bo derxistina sertîfîkayê tê bikar anîn diyar bikin. Ger sertîfîkayek CA heye ku bi daxwazê ​​re têkildar be, ew ê ji we re sertîfîkayek bide. Ji kerema xwe not bikin ku ev vebijarka bijarte ye, heke tiştek neyê dîtin, dê sertîfîkayek standard were derxistin. Ev ê piştrast bike ku hûn ê dîsa jî sertîfîkaya xwe nû bikin piştî ku zincîra alternatîf li ser milê belavkerê ACME jêbirin.

Îro hûn dikarin sertîfîkayên îmzekirî bistînin ISRG Root, Ji ber vê yekê:

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

Ger hûn tercîh dikin ku zincîrê bihêlin IdenTrust - vê parameterê saz bikin 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"

Ji kerema xwe not bikin ku ev root CA dê di demek nêzîk de were paşguh kirin, Let's Encrypt dê vê zincîrê heya 29ê Îlonê, 2021 çalak bihêle.

Source: www.habr.com