cert-manager 1.0 gipagawas

Kung pangutan-on nimo ang usa ka eksperyensiyado, maalamon nga inhenyero kung unsa ang iyang hunahuna bahin sa cert-manager ug ngano nga gigamit kini sa tanan, ang espesyalista manghupaw, mogakos kaniya nga kompidensyal ug moingon nga gikapoy: "Ang tanan naggamit niini, tungod kay wala’y maayong mga alternatibo. Ang among mga ilaga naghilak, nagtusok sa ilang kaugalingon, apan nagpadayon sa pagpuyo uban niini nga cactus. Nganong love man ta? Tungod kay kini nagtrabaho. Nganong dili ta mahigugma? Tungod kay ang mga bag-ong bersyon kanunay nga gipagawas nga naggamit bag-ong mga bahin. Ug kinahanglan nimo nga i-update ang cluster nga balik-balik. Ug ang daan nga mga bersyon mihunong sa pagtrabaho, tungod kay adunay usa ka panagkunsabo ug usa ka dako nga misteryosong shamanismo.

Apan ang mga developers nag-angkon nga uban sa cert-manager 1.0 mausab ang tanan.

Motuo ba kita niini?

cert-manager 1.0 gipagawas

Ang Cert-manager kay lumad nga Kubernetes certificate management controller. Mahimo kini gamiton sa pag-isyu sa mga sertipiko gikan sa lainlaing mga gigikanan: Let's Encrypt, HashiCorp Vault, Venafi, pagpirma ug pagpirma sa kaugalingon nga mga pares sa yawe. Gitugotan ka usab niini nga ipadayon ang mga yawe hangtod sa petsa ug pagsulay nga awtomatiko nga mabag-o ang mga sertipiko sa usa ka piho nga oras sa wala pa kini matapos. Ang Cert-manager gibase sa kube-lego, ug gigamit usab ang pipila ka mga teknik gikan sa ubang susama nga mga proyekto, sama sa kube-cert-manager.

Release Notes

Uban sa bersyon 1.0 gibutang namon ang usa ka timaan sa pagsalig sa tulo ka tuig nga pag-uswag sa proyekto sa cert-manager. Niini nga panahon, kini milambo pag-ayo sa pagpaandar ug kalig-on, apan labaw sa tanan sa komunidad. Karon nakita namon ang daghang mga tawo nga naggamit niini aron masiguro ang ilang mga kumpol sa Kubernetes, ingon man ang pagpatuman niini sa lainlaing mga bahin sa ekosistema. Usa ka hugpong sa mga bug ang naayo sa katapusan nga 16 nga pagpagawas. Ug ang mabuak unta nabuak. Daghang mga pagbisita sa API nagpauswag sa interaksyon niini sa mga tiggamit. Nasulbad na namo ang 1500 ka isyu sa GitHub, uban pa ang mga hangyo sa pull gikan sa 253 ka miyembro sa komunidad.

Pinaagi sa pagpagawas sa 1.0 opisyal namong gideklarar nga ang cert-manager usa ka hamtong nga proyekto. Gisaad usab namo nga ipadayon ang among API nga compatible v1.

Daghang salamat sa tanan nga mitabang kanamo sa paghimo og cert-manager niining tulo ka tuig! Himoa nga ang bersyon 1.0 mao ang una sa daghang dagkong mga butang nga moabut.

Ang pagpagawas sa 1.0 usa ka lig-on nga pagpagawas nga adunay daghang mga lugar nga prayoridad:

  • v1 SUNOG;

  • team kubectl cert-manager status, aron makatabang sa pag-analisar sa mga problema;

  • Gamit ang pinakabag-o nga stable nga Kubernetes API;

  • Gipauswag nga pag-log;

  • Mga pag-uswag sa ACME.

Siguruha nga basahon ang mga nota sa pag-update sa dili pa mag-upgrade.

API v1

Bersyon v0.16 nagtrabaho uban sa API v1beta1. Nagdugang kini pipila ka mga pagbag-o sa istruktura ug gipauswag usab ang dokumentasyon sa natad sa API. Ang Bersyon 1.0 nagtukod niini tanan nga adunay API v1. Kini nga API mao ang among una nga lig-on, sa parehas nga oras naghatag kami mga garantiya sa pagkaangay, apan sa API v1 Kami nagsaad nga magpadayon ang pagkaangay sa umaabot nga mga tuig.

Mga pagbag-o nga nahimo (pahinumdom: ang among mga himan sa pagkakabig mag-atiman sa tanan alang kanimo):

Sertipiko:

  • emailSANs karon gitawag emailAddresses

  • uriSANs - uris

Kini nga mga pagbag-o nagdugang pagkaangay sa ubang mga SAN (mga ngalan sa alt sa subject, gibanabana. tighubad), ingon man usab sa Go API. Gitangtang namo kini nga termino gikan sa among API.

Pag-update

Kung naggamit ka sa Kubernetes 1.16+ - ang pag-convert sa mga webhook magtugot kanimo sa pagtrabaho sa mga bersyon sa API nga dungan ug hapsay. v1alpha2, v1alpha3, v1beta1 ΠΈ v1. Uban kanila, mahimo nimong gamiton ang bag-ong bersyon sa API nga dili usbon o i-redeploy ang imong daan nga mga kapanguhaan. Kami kusganong nagrekomendar sa pag-upgrade sa imong mga manifest ngadto sa API v1, tungod kay ang nangaging mga bersyon sa dili madugay dili na magamit. Mga tiggamit legacy ang mga bersyon sa cert-manager aduna lang gihapon access sa v1, makit-an ang mga lakang sa pag-update dinhi.

kubectl cert-manager status command

Uban sa bag-ong mga kalamboan sa atong extension sa kubectl Kini nahimong mas sayon ​​sa pag-imbestigar sa mga problema nga nalangkit sa dili pag-isyu sa mga sertipiko. kubectl cert-manager status Naghatag karon og daghang dugang nga kasayuran bahin sa kung unsa ang nahitabo sa mga sertipiko, ug gipakita usab ang yugto kung diin gi-isyu ang sertipiko.

Human ma-install ang extension mahimo ka nga modagan kubectl cert-manager status certificate <имя-сСртификата>, nga mangita sa sertipiko nga adunay gipiho nga ngalan ug bisan unsang kaubang mga kapanguhaan, sama sa CertificateRequest, Secret, Issuer, ug Order and Challenges sa kaso sa mga sertipiko gikan sa ACME.

Usa ka pananglitan sa pag-debug sa usa ka sertipiko nga dili pa andam:

$ 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

Ang team makatabang usab kanimo sa pagkat-on og dugang mahitungod sa sulod sa sertipiko. Pananglitan nga mga detalye alang sa usa ka sertipiko nga gi-isyu sa 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
[...]

Gamita ang pinakabag-o nga stable nga mga Kubernetes API

Ang Cert-manager maoy usa sa unang nagpatuman sa Kubernetes CRDs. Kini, inubanan sa among suporta alang sa mga bersyon sa Kubernetes hangtod sa 1.11, nagpasabut nga kinahanglan namon nga suportahan ang kabilin apiextensions.k8s.io/v1beta1 para usab sa atong mga CRD admissionregistration.k8s.io/v1beta1 para sa among mga webhook. Kini karon wala na magamit ug tangtangon sa Kubernetes sa bersyon 1.22. Uban sa among 1.0 nagtanyag kami karon nga hingpit nga suporta apiextensions.k8s.io/v1 ΠΈ admissionregistration.k8s.io/v1 para sa Kubernetes 1.16 (diin sila gidugang) ug sa ulahi. Alang sa mga tiggamit sa miaging mga bersyon, nagpadayon kami sa pagtanyag og suporta v1beta1 sa among legacy mga bersyon.

Gipauswag nga pag-log

Niini nga bersyon among gi-update ang logging library sa klog/v2, gigamit sa Kubernetes 1.19. Among repasohon usab ang matag magasin nga among gisulat aron maseguro nga kini na-assign sa tukma nga lebel. Gitultolan mi niini giya gikan sa Kubernetes. Adunay lima (sa tinuud - unom, gibanabana. tighubad) logging nga lebel sugod sa Error (level 0), nga nag-imprinta lamang sa importante nga mga sayop, ug natapos sa Trace (level 5), nga makatabang kanimo nga mahibal-an kung unsa gyud ang nanghitabo. Uban niini nga pagbag-o gipakunhod namo ang gidaghanon sa mga troso kung dili nimo kinahanglan ang impormasyon sa pag-debug kung nagpadagan sa cert-manager.

Sugyot: pinaagi sa default cert-manager midagan sa lebel 2 (Info), mahimo nimong i-override kini gamit global.logLevel sa Helm chart.

Mubo nga sulat: Ang pagrepaso sa mga log mao ang imong katapusan nga paagi kung mag-troubleshoot. Alang sa dugang kasayuran tan-awa ang among pagpangulo.

NB sa editor: Aron makakat-on og dugang kon sa unsang paagi kining tanan naglihok ubos sa hood sa Kubernetes, pagkuha og bililhong tambag gikan sa mga magtutudlo nga nagpraktis, ingon man usab sa taas nga kalidad nga teknikal nga suporta, mahimo ka nga moapil sa mga kurso sa online intensive Kubernetes Base, nga mahitabo sa Septiyembre 28-30, ug Kubernetes Mega, nga mahitabo sa Oktubre 14–16.

Mga Pag-uswag sa ACME

Ang kasagarang paggamit sa cert-manager lagmit may kalabotan sa pag-isyu og mga sertipiko gikan sa Let's Encrypt gamit ang ACME. Ang Bersyon 1.0 nabantog sa paggamit sa feedback sa komunidad aron makadugang og duha ka gagmay apan importante nga mga pag-uswag sa among tig-isyu sa ACME.

I-disable ang Account Key Generation

Kung mogamit ka sa mga sertipiko sa ACME sa daghang mga volume, lagmit nga gigamit nimo ang parehas nga account sa daghang mga cluster, mao nga ang imong mga pagdili sa pag-isyu sa sertipiko magamit sa tanan. Posible na kini sa cert-manager kung gikopya ang sekreto nga gipiho sa privateKeySecretRef. Kini nga kaso sa paggamit medyo buggy tungod kay ang cert-manager naningkamot nga makatabang ug malipayong naghimo ug bag-ong yawe sa account kung wala kini makit-an. Mao nga gidugang namo disableAccountKeyGenerationaron mapanalipdan ka gikan niini nga pamatasan pinaagi sa pagbutang niini nga kapilian sa true - ang cert-manager dili makamugna ug yawe ug magpasidaan kanimo nga wala kini hatagi ug yawe sa account.

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

Gipalabi nga Kadena

Septiyembre 29 Atong I-encrypt mobalhin sa imong kaugalingong root certificate nga awtoridad ISRG Root. Ang mga sertipiko nga gipirmahan sa krus pulihan sa Identrust. Kini nga pagbag-o wala magkinahanglan mga pagbag-o sa mga setting sa cert-manager; tanan nga na-update o bag-ong mga sertipiko nga gi-isyu pagkahuman sa kini nga petsa mogamit sa bag-ong gamut nga CA.

Atong Encrypt nagpirma na sa mga sertipiko niini nga CA ug gitanyag kini isip usa ka "alternate certificate chain" pinaagi sa ACME. Kini nga bersyon sa cert-manager adunay katakus sa pag-set access sa kini nga mga kadena sa mga setting sa tig-isyu. Sa parameter preferredChain Mahimo nimong ipiho ang ngalan sa CA nga gigamit sa pag-isyu sa sertipiko. Kung adunay usa ka sertipiko sa CA nga mohaum sa hangyo, maghatag kini kanimo usa ka sertipiko. Palihug timan-i nga kini ang gusto nga kapilian; kung wala’y makit-an, usa ka default nga sertipiko ang igahatag. Kini makaseguro nga imo gihapong i-renew ang imong sertipiko human matangtang ang alternate chain sa ACME issuer nga bahin.

Karon makadawat ka og mga sertipiko nga gipirmahan ISRG Root, Busa:

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

Kung gusto nimo nga biyaan ang kadena IdenTrust - ibutang kini nga parameter sa 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"

Palihug timan-i nga kini nga gamut CA sa dili madugay mawala na, Let's Encrypt magpabilin kini nga kadena nga aktibo hangtod sa Septyembre 29, 2021.

Source: www.habr.com

Idugang sa usa ka comment