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?
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 gitawagemailAddresses
-
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
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 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
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
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 disableAccountKeyGeneration
aron 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 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