cert-manager 1.0 dileupaskeun

Upami anjeun naroskeun ka insinyur anu berpengalaman sareng wijaksana naon anu anjeunna pikirkeun ngeunaan manajer sertipikat sareng naha sadayana nganggo éta, maka spesialis bakal ngahuleng, nangkeup anjeunna dina kapercayaan sareng nyarios bosen: "Sarerea nganggo éta, sabab teu aya alternatif anu waras. Beurit urang ceurik, cucuk, tapi terus hirup jeung kaktus ieu. Naha urang bogoh? Sabab tiasa dianggo. Naha urang henteu bogoh? Kusabab versi anyar terus kaluar anu ngagunakeun fitur anyar. Jeung anjeun kudu ngamutahirkeun klaster leuwih sarta leuwih deui. Jeung versi heubeul eureun digawé, sabab aya konspirasi sarta dukun misterius hébat.

Tapi pamekar ngaku éta sertipikat-manajer 1.0 sagalana bakal robah.

Naha urang bakal percaya?

cert-manager 1.0 dileupaskeun

Cert-manajer nyaéta pengendali manajemén sertipikat asli Kubernetes. Éta tiasa dianggo pikeun ngaluarkeun sertipikat ti sababaraha sumber: Hayu Encrypt, HashiCorp Vault, Venafi, tandatangan sareng pasangan konci anu ditandatanganan diri. Ogé ngidinan Anjeun pikeun nyimpen konci up-to-date dumasar titimangsa béakna, sarta ogé nyoba otomatis renew sertipikat dina waktu nu tangtu sateuacan aranjeunna kadaluwarsa. Cert-manager dumasar kana kube-lego sarta ogé geus dipaké sababaraha trik ti proyék sarupa séjénna kayaning kube-cert-manager.

Catetan Kaluaran

Kalayan vérsi 1.0, kami nempatkeun tanda kapercayaan salami tilu taun pangwangunan proyék sertipikat-manajer. Salila ieu, éta parantos mekar sacara signifikan dina fungsionalitas sareng stabilitas, tapi paling seueur di masarakat. Ayeuna, urang ningali seueur jalma anu ngagunakeun éta pikeun ngamankeun klaster Kubernetes na ogé nyebarkeunana ka sababaraha bagian ékosistem. Seueur bug anu parantos dibenerkeun dina 16 rilis anu terakhir. Sareng anu kedah dirusak nyaéta rusak. Sababaraha kunjungan damel sareng API parantos ningkatkeun interaksina sareng pangguna. Kami parantos ngarengsekeun 1500 masalah dina GitHub kalayan langkung seueur paménta tarik ti 253 anggota komunitas.

Kalayan sékrési 1.0, kami sacara resmi nyatakeun yén manajer sertifikasi mangrupikeun proyék anu dewasa. Kami ogé janji pikeun ngajaga API kami cocog v1.

Hatur nuhun ka sadayana anu ngabantosan kami ngadamel sertipikat-manajer salami tilu taun ieu! Hayu versi 1.0 jadi kahiji tina loba hal badag datang.

Kaluaran 1.0 mangrupikeun sékrési stabil sareng sababaraha daérah prioritas:

  • v1 API;

  • regu kubectl cert-manager status, pikeun mantuan analisis masalah;

  • Ngagunakeun API Kubernetes stabil panganyarna;

  • Ningkatkeun logging;

  • perbaikan ACME.

Pastikeun maca catetan pamutahiran sateuacan ningkatkeun.

API v1

Vérsi v0.16 digarap kalawan API v1beta1. Ieu ditambahkeun sababaraha parobahan struktural sarta ogé ningkat dokuméntasi widang API. Vérsi 1.0 diwangun dina ieu kalawan API v1. API ieu mangrupikeun stabil munggaran urang, dina waktos anu sami kami parantos masihan jaminan kasaluyuan, tapi kalayan API v1 kami janji pikeun ngajaga kasaluyuan pikeun taun datang.

Parobihan anu dilakukeun (catetan: alat konversi kami ngurus sadayana pikeun anjeun):

Sertipikat:

  • emailSANs ayeuna disebut emailAddresses

  • uriSANs - uris

Parobihan ieu nambihan kasaluyuan sareng SAN sanés (ngaran alt subjék, kira-kira. penerjemah), kitu ogé jeung Go API. Kami ngahapus istilah ieu tina API kami.

Apdet

Upami Anjeun keur make Kubernetes 1.16+, ngarobah webhooks bakal ngidinan Anjeun pikeun sakaligus tur seamlessly digawekeun ku versi API. v1alpha2, v1alpha3, v1beta1 и v1. Kalayan ieu, anjeun bakal tiasa nganggo versi anyar tina API tanpa ngarobah atawa redeploying sumberdaya heubeul Anjeun. Kami nyarankeun pisan ningkatkeun manifests anjeun ka API v1, sabab vérsi saméméhna bakal dileungitkeun pas. Pamaké legacy versi cert-manager masih bakal ngan boga aksés ka v1, léngkah pamutahiran bisa kapanggih di dieu.

kubectl cert-manager paréntah status

Kalawan perbaikan anyar dina extension urang ka kubectl janten langkung gampang pikeun nalungtik masalah anu aya hubunganana sareng henteu ngaluarkeun sertipikat. kubectl cert-manager status ayeuna masihan langkung seueur inpormasi ngeunaan naon anu aya dina sertipikat sareng ogé nunjukkeun tahap penerbitan sertipikat.

Saatos masang ekstensi, anjeun tiasa ngajalankeun kubectl cert-manager status certificate <имя-сертификата>, anu bakal milarian sertipikat kalayan nami anu dipasihkeun sareng sumber daya anu aya hubunganana sapertos CertificateRequest, Secret, Issuer, sareng Order and Challenges upami nganggo sertipikat ti ACME.

Conto debugging sertipikat anu henteu acan siap:

$ 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

Paréntah ogé tiasa ngabantosan anjeun langkung seueur ngeunaan eusi sertipikat. Conto lengkep pikeun sertipikat anu dikaluarkeun ku 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
[...]

Ngagunakeun API Kubernetes stabil panganyarna

Cert-manajer éta salah sahiji mimiti pikeun nerapkeun Kubernetes CRDs. Ieu, sareng dukungan kami pikeun versi Kubernetes dugi ka 1.11, hartosna urang kedah ngadukung warisan apiextensions.k8s.io/v1beta1 pikeun CRDs urang ogé admissionregistration.k8s.io/v1beta1 pikeun webhooks urang. Éta ayeuna tos teu dianggo sareng bakal dipupus dina Kubernetes tina versi 1.22. Kalayan 1.0 kami ayeuna nawiskeun dukungan pinuh apiextensions.k8s.io/v1 и admissionregistration.k8s.io/v1 pikeun Kubernetes 1.16 (dimana maranéhanana ditambahkeun) sarta leuwih anyar. Pikeun pangguna vérsi saméméhna, kami terus nawiskeun dukungan v1beta1 di urang legacy versi.

logging ningkat

Dina release ieu, kami geus diropéa perpustakaan logging ka klog/v2, dipaké dina Kubernetes 1.19. Kami ogé marios unggal jurnal anu kami tulis pikeun mastikeun éta ditugaskeun tingkat anu pas. Kami dipandu ku ieu hidayah ti Kubernetes. Aya lima (sabenerna genep, kira-kira. penerjemah) tingkat logging mimitian ti Error (tingkat 0), nu prints ukur kasalahan penting, sarta ditungtungan make Trace (tingkat 5) anu bakal ngabantosan anjeun terang naon anu lumangsung. Kalayan parobahan ieu, kami parantos ngirangan jumlah log upami anjeun henteu peryogi inpormasi debug nalika ngajalankeun manajer-sertipikat.

Tip: cert-manager dijalankeun dina tingkat 2 sacara standar (Info), anjeun tiasa nimpa ieu nganggo global.logLevel dina Helmchart.

Catetan: Ningali log mangrupikeun jalan terakhir nalika ngungkulan. Kanggo inpo nu leuwih lengkep pariksa kaluar kami kapamimpinan.

Editor urang n.b.: Pikeun leuwih jéntré ngeunaan kumaha eta sadayana jalan dina tiung tina Kubernetes, meunang nasihat berharga ti practicing guru, kitu ogé kualitas rojongan teknis pitulung, anjeun tiasa ilubiung dina intensif online. Pangkalan Kubernetes, nu bakal dilaksanakeun 28-30 September, jeung Kubernetes Meganu bakal dilaksanakeun 14-16 Oktober.

Perbaikan ACME

Panggunaan manajer-cert anu paling umum sigana aya hubunganana sareng ngaluarkeun sertipikat ti Let's Encrypt nganggo ACME. Vérsi 1.0 kasohor ngagunakeun eupan balik komunitas pikeun nambahkeun dua perbaikan leutik tapi penting pikeun penerbit ACME kami.

Nonaktipkeun pembuatan konci akun

Upami anjeun nganggo sertipikat ACME dina volume anu ageung, anjeun kamungkinan ngagunakeun akun anu sami dina sababaraha klaster, ku kituna larangan penerbitan sertipikat anjeun bakal dilarapkeun ka sadayana. Ieu parantos tiasa dilakukeun dina manajer-sertipikat nalika nyalin rusiah anu dijelaskeun dina privateKeySecretRef. Kasus pamakean ieu rada buggy, sabab manajer sertipikat nyobian ngabantosan sareng bahagia nyiptakeun konci akun énggal upami éta henteu mendakan. Éta naha urang ditambahkeun disableAccountKeyGenerationngajaga anjeun tina kabiasaan ieu mun anjeun nyetel pilihan ieu true - cert-manager moal ngahasilkeun konci sarta bakal ngingetkeun yén éta teu acan disadiakeun kalawan konci akun.

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

Ranté pikaresep

29 Séptémber Hayu urang Encrypt bakal lulus ka akar CA anjeun sorangan ISRG Root. sertipikat cross-ditandatanganan bakal diganti ku Identrust. Parobihan ieu henteu meryogikeun parobihan kana setélan sertipikat-manajer, sadaya sertipikat anu diropéa atanapi énggal anu dikaluarkeun saatos tanggal ieu bakal nganggo akar CA anyar.

Hayu Encrypt parantos nandatanganan sertipikat sareng CA ieu sareng nawiskeun aranjeunna salaku "ranté sertipikat alternatif" via ACME. Dina versi sertipikat-manajer ieu, anjeun tiasa nyetél aksés kana ranté ieu dina setélan penerbit. Dina parameter preferredChain anjeun tiasa netepkeun nami CA anu dianggo, dimana sertipikatna bakal dikaluarkeun. Upami sertipikat CA anu cocog sareng pamundut sayogi, éta bakal ngaluarkeun sertipikat anjeun. Punten dicatet yén ieu mangrupikeun pilihan anu dipikaresep, upami teu aya anu kapendak, sertipikat standar bakal dikaluarkeun. Ieu bakal mastikeun yén anjeun masih bakal renew sertipikat anjeun sanggeus mupus ranté alternatif dina sisi penerbit ACME.

Geus kiwari anjeun tiasa nampi sertipikat ditandatanganan ku ISRG Root, Jadi:

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

Lamun anjeun resep ninggalkeun ranté IdenTrust - Nyetél pilihan ieu pikeun 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"

Punten dicatet yén akar CA ieu bakal dileungitkeun pas, Hayu Encrypt bakal ngajaga ranté ieu aktip dugi ka 29 Séptémber 2021.

sumber: www.habr.com

Tambahkeun komentar