Kui küsida kogenud, targalt insenerilt, mida ta arvab serdihaldurist ja miks kõik seda kasutavad, siis spetsialist ohkab, kallistab teda enesekindlalt ja ütleb väsinult: „Kõik kasutavad, sest mõistlikke alternatiive pole. Meie hiired nutavad, torgivad, aga elavad selle kaktusega edasi. Miks me armastame? Sest see töötab. Miks me ei armasta? Sest pidevalt tuleb välja uusi versioone, mis kasutavad uusi funktsioone. Ja peate klastrit ikka ja jälle värskendama. Ja vanad versioonid lakkavad töötamast, sest seal on vandenõu ja suur salapärane šamanism.
Kuid arendajad väidavad seda serdihaldur 1.0 kõik muutub.
Kas me usume?
Serdihaldur on Kubernetese sertifikaatide haldamise kontroller. Sellega saab väljastada sertifikaate erinevatest allikatest: Let's Encrypt, HashiCorp Vault, Venafi, allkirjastamise ja ise allkirjastatud võtmepaarid. Samuti võimaldab see hoida võtmeid aegumiskuupäeva järgi ajakohasena ning samuti proovib sertifikaate automaatselt uuendada määratud ajal enne nende aegumist. Cert-manager põhineb kube-legol ja on kasutanud ka mõningaid nippe teistest sarnastest projektidest, näiteks kube-cert-manager.
Väljalaskemärkmed
Versiooniga 1.0 paneme sertifikaadihalduri projekti kolmeaastasele arendustööle usaldusmärgi. Selle aja jooksul on selle funktsionaalsus ja stabiilsus oluliselt arenenud, kuid kõige enam kogukonnas. Tänapäeval näeme, et paljud inimesed kasutavad seda nii oma Kubernetese klastrite turvamiseks kui ka ökosüsteemi erinevatesse osadesse juurutamiseks. Viimase 16 versiooniga on parandatud palju vigu. Ja see, mida oli vaja murda, on katki. Mitmed API-ga töötamise külastused on parandanud selle suhtlust kasutajatega. Oleme GitHubis lahendanud 1500 probleemi, lisades 253 kogukonna liikme tõmbetaotlusi.
Versiooni 1.0 väljalaskmisega kinnitame ametlikult, et serdihaldur on täiskasvanud projekt. Samuti lubame hoida oma API ühilduvana v1
.
Suur tänu kõigile, kes aitasid meil kõik need kolm aastat serdihalduriks saada! Olgu versioon 1.0 esimene paljudest suurtest asjadest, mis tulevad.
Väljalase 1.0 on stabiilne väljalase, millel on mitu prioriteetset valdkonda:
-
v1
API; -
Meeskond
kubectl cert-manager status
, abistada probleemi analüüsimisel; -
Kasutades uusimaid stabiilseid Kubernetes API-sid;
-
Täiustatud metsaraie;
-
ACME täiustused.
Enne täiendamist lugege kindlasti uuenduste märkmeid.
API v1
Versioon v0.16 töötas koos API-ga v1beta1
. See lisas mõned struktuurimuudatused ja täiustas ka API välja dokumentatsiooni. Versioon 1.0 põhineb sellel API-ga v1
. See API on meie esimene stabiilne, samal ajal oleme juba andnud ühilduvusgarantiid, kuid API-ga v1
lubame säilitada ühilduvuse veel aastaid.
Tehtud muudatused (märkus: meie teisendustööriistad hoolitsevad teie eest kõige eest):
Sertifikaat:
-
emailSANs
nüüd kutsutakseemailAddresses
-
uriSANs
-uris
Need muudatused lisavad ühilduvust teiste SAN-idega (subject alt nimed, u. tõlkija), aga ka Go API-ga. Eemaldame selle termini oma API-st.
Ajakohastama
Kui kasutate versiooni Kubernetes 1.16+, võimaldab veebihaagide teisendamine API versioonidega samaaegselt ja sujuvalt töötada v1alpha2
, v1alpha3
, v1beta1
и v1
. Nende abil saate kasutada API uut versiooni ilma oma vanu ressursse muutmata või ümber paigutamata. Soovitame tungivalt uuendada oma manifestid API-le v1
, kuna varasemad versioonid katkestatakse peagi. Kasutajad legacy
Cert-manageri versioonidel on endiselt juurdepääs ainult v1
, leiate uuendusetapid
kubectl cert-manager staatuse käsk
Meie laienduse uute täiustustega kubectl
sertifikaatide väljastamata jätmisega seotud probleemide uurimine muutus lihtsamaks. kubectl cert-manager status
annab nüüd palju rohkem teavet sertifikaatidega toimuva kohta ja näitab ka sertifikaatide väljastamise etappi.
Pärast laienduse installimist saate käivitada kubectl cert-manager status certificate <имя-сертификата>
, mis otsib ACME sertifikaatide kasutamisel üles eesnimega sertifikaadi ja kõik seotud ressursid, nagu Certificate Request, Secret, Issuer ning Order and Challenges.
Näide sertifikaadi silumisest, mis pole veel valmis:
$ 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
Käsk võib aidata teil ka sertifikaadi sisu kohta rohkem teada saada. Letsencrypti väljastatud sertifikaadi üksikasjalik näide:
$ 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
[...]
Kasutades uusimaid stabiilseid Kubernetes API-sid
Cert-manager oli üks esimesi, kes võttis kasutusele Kubernetes CRD-d. See ja meie toetus Kubernetese versioonidele kuni 1.11 tähendas, et peame toetama pärandit apiextensions.k8s.io/v1beta1
ka meie CRD-de jaoks admissionregistration.k8s.io/v1beta1
meie veebihaagide jaoks. Need on nüüd aegunud ja eemaldatakse Kubernetes versioonist 1.22. Oma versiooniga 1.0 pakume nüüd täielikku tuge apiextensions.k8s.io/v1
и admissionregistration.k8s.io/v1
Kubernetes 1.16 (kuhu need lisati) ja uuemate jaoks. Varasemate versioonide kasutajatele pakume jätkuvalt tuge v1beta1
meie legacy
versioonid.
Täiustatud metsaraie
Selles versioonis oleme logimise teeki värskendanud klog/v2
, mida kasutatakse Kubernetes 1.19-s. Samuti vaatame üle iga kirjutatava ajakirja, veendumaks, et sellele on määratud sobiv tase. Sellest lähtusime Error
(tase 0), mis prindib ainult olulised vead ja lõpeb Trace
(tase 5), mis aitab teil täpselt teada, mis toimub. Selle muudatusega oleme vähendanud logide arvu, kui te ei vaja serdihalduri käitamisel silumisinfot.
Nõuanne: serdihaldur töötab vaikimisi tasemel 2 (Info
), saate selle alistada kasutades global.logLevel
Helmchartis.
Märkus. Logide vaatamine on tõrkeotsingu viimane võimalus. Lisateabe saamiseks vaadake meie
Toimetaja nr.: Kui soovite saada lisateavet selle kohta, kuidas see kõik Kubernetese kapoti all töötab, saada väärtuslikke nõuandeid praktiseerivatelt õpetajatelt ja kvaliteetset tehnilist abi, võite osaleda veebipõhistel intensiivkursustel.
ACME täiustused
Kõige tavalisem serdihalduri kasutamine on ilmselt seotud Let's Encrypti sertifikaatide väljastamisega ACME abil. Versioon 1.0 on tähelepanuväärne selle poolest, et kasutab kogukonna tagasisidet, et lisada meie ACME väljaandjale kaks väikest, kuid olulist täiustust.
Keela konto võtme genereerimine
Kui kasutate ACME sertifikaate suurtes kogustes, kasutate tõenäoliselt sama kontot mitmes klastris, nii et teie sertifikaatide väljastamise piirangud kehtivad neile kõigile. See oli võimalik juba sertifikaadihalduris, kui kopeeriti jaotises määratud saladust privateKeySecretRef
. See kasutusjuhtum oli üsna lollakas, kuna serdihaldur püüdis olla abivalmis ja lõi hea meelega uue kontovõtme, kui seda ei leidnud. Sellepärast lisasime disableAccountKeyGeneration
et kaitsta teid selle käitumise eest, kui selle valiku määrate true
- sertifikaadihaldur ei genereeri võtit ja hoiatab teid, et talle pole antud kontovõtit.
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
name: letsencrypt
spec:
acme:
privateKeySecretRef:
name: example-issuer-account-key
disableAccountKeyGeneration: false
Eelistatud kett
29. september Krüpteerime ISRG Root
. Ristallkirjastatud sertifikaadid asendatakse Identrust
. See muudatus ei nõua serdihalduri sätete muutmist, kõik pärast seda kuupäeva välja antud värskendatud või uued sertifikaadid kasutavad uut juur-CA-d.
Let's Encrypt allkirjastab juba selle CA-ga sertifikaate ja pakub neid ACME kaudu "alternatiivse sertifikaadiahelana". Selles serdihalduri versioonis on väljaandja seadetes võimalik neile kettidele juurdepääsu määrata. Parameetris preferredChain
saate määrata kasutatava CA nime, millega sertifikaat väljastatakse. Kui päringule vastav CA-sertifikaat on saadaval, väljastab see teile sertifikaadi. Pange tähele, et see on eelistatud valik. Kui midagi ei leita, väljastatakse vaikesertifikaat. See tagab, et uuendate oma sertifikaati ka pärast ACME väljaandja poolel oleva alternatiivse ahela kustutamist.
Juba täna on võimalik saada sertifikaate, mille on allkirjastanud ISRG Root
, Niisiis:
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
name: letsencrypt
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
preferredChain: "ISRG Root X1"
Kui eelistate ketist lahkuda IdenTrust
- määrake see valik 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"
Pange tähele, et selle juur-CA tugi katkestatakse peagi. Let's Encrypt hoiab selle ahela aktiivsena kuni 29. septembrini 2021.
Allikas: www.habr.com