cert-manager 1.0 gefin út

Ef þú spyrð reyndan, vitur verkfræðing hvað honum finnst um cert-manager og hvers vegna allir nota það, þá mun sérfræðingurinn andvarpa, knúsa hann í trúnaði og segja þreytulega: „Allir nota það, því það eru engir skynsamlegir kostir. Mýsnar okkar gráta, stinga, en halda áfram að lifa með þessum kaktus. Hvers vegna elskum við? Vegna þess að það virkar. Af hverju elskum við ekki? Vegna þess að nýjar útgáfur koma stöðugt út sem nota nýja eiginleika. Og þú verður að uppfæra þyrpinguna aftur og aftur. Og gömlu útgáfurnar hætta að virka, vegna þess að það er samsæri og mikill dularfullur shamanismi.

En verktaki halda því fram cert-manager 1.0 allt mun breytast.

Ætlum við að trúa?

cert-manager 1.0 gefin út

Cert-manager er innfæddur Kubernetes vottorðsstjórnunarstjóri. Það er hægt að nota til að gefa út skírteini frá ýmsum aðilum: Let's Encrypt, HashiCorp Vault, Venafi, undirskrift og sjálfundirrituð lykilpör. Það gerir þér einnig kleift að halda lyklum uppfærðum eftir gildistíma og reynir einnig að endurnýja vottorð sjálfkrafa á tilteknum tíma áður en þau renna út. Cert-manager er byggt á kube-lego og hefur einnig notað nokkur brellur úr öðrum svipuðum verkefnum eins og kube-cert-manager.

Útgáfuskýringar

Með útgáfu 1.0 setjum við merki um traust á þriggja ára þróun cert-manager verkefnisins. Á þessum tíma hefur það þróast verulega í virkni og stöðugleika, en mest af öllu í samfélaginu. Í dag sjáum við marga nota það til að tryggja Kubernetes klasana sína ásamt því að dreifa því til ýmissa hluta vistkerfisins. Fullt af villum hefur verið lagað í síðustu 16 útgáfum. Og það sem hefði átt að vera brotið var brotið. Nokkrar heimsóknir á API bættu samskipti þess við notendur. Við höfum leyst 1500 vandamál á GitHub með fleiri beiðnum frá 253 samfélagsmeðlimum.

Með útgáfu 1.0 lýsum við því formlega yfir að cert-manager sé þroskað verkefni. Við lofum líka að halda API samhæfðum v1.

Kærar þakkir til allra sem hjálpuðu okkur að gera cert-manager öll þessi þrjú ár! Láttu útgáfu 1.0 vera það fyrsta af mörgum stórum hlutum sem koma skal.

Útgáfa 1.0 er stöðug útgáfa með nokkrum forgangssviðum:

  • v1 API;

  • Team kubectl cert-manager status, til að hjálpa við greiningu vandamála;

  • Notaðu nýjustu stöðugu Kubernetes API;

  • Bætt skógarhögg;

  • ACME endurbætur.

Vertu viss um að lesa uppfærsluskýringarnar áður en þú uppfærir.

API v1

Útgáfa v0.16 virkaði með API v1beta1. Þetta bætti við nokkrum skipulagsbreytingum og bætti einnig API sviði skjölin. Útgáfa 1.0 byggir á þessu öllu með API v1. Þetta API er fyrsta stöðuga forritið okkar, á sama tíma höfum við nú þegar veitt eindrægni tryggingar, en með API v1 við lofum að viðhalda eindrægni um ókomin ár.

Breytingar sem gerðar eru (athugið: viðskiptatólin okkar sjá um allt fyrir þig):

Vottorð:

  • emailSANs nú kallað emailAddresses

  • uriSANs - uris

Þessar breytingar bæta við samhæfni við önnur SAN (viðfangsefni alt nöfn, ca. þýðandi), sem og með Go API. Við erum að fjarlægja þetta hugtak úr API okkar.

Uppfæra

Ef þú ert að nota Kubernetes 1.16+, mun umbreyta webhooks gera þér kleift að vinna samtímis og óaðfinnanlega með API útgáfum v1alpha2, v1alpha3, v1beta1 и v1. Með þessu muntu geta notað nýju útgáfuna af API án þess að breyta eða endurdreifa gömlu tilföngunum þínum. Við mælum eindregið með því að uppfæra upplýsingaskrána þína í API v1, þar sem fyrri útgáfur verða úreltar fljótlega. Notendur legacy útgáfur af cert-manager munu samt aðeins hafa aðgang að v1, uppfærsluskref má finna hér.

kubectl cert-manager stöðuskipun

Með nýjum endurbótum á framlengingu okkar til kubectl það varð auðveldara að kanna vandamálin sem fylgdu því að skírteina ekki var gefið út. kubectl cert-manager status gefur nú miklu meiri upplýsingar um hvað er að gerast með skírteinin og sýnir einnig útgáfu skírteinastigsins.

Eftir að viðbótin hefur verið sett upp geturðu keyrt kubectl cert-manager status certificate <имя-сертификата>, sem mun leita að vottorðinu með tilgreindu nafni og tilheyrandi tilföngum, svo sem CertificateRequest, Secret, Issuer og Order and Challenges ef um er að ræða vottorð frá ACME.

Dæmi um villuleit á vottorði sem er ekki enn tilbúið:

$ 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

Skipunin getur einnig hjálpað þér að læra meira um innihald vottorðsins. Ítarlegt dæmi fyrir vottorð gefið út af 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
[...]

Nýttu þér nýjustu stöðugu Kubernetes API

Cert-manager var einn af þeim fyrstu til að innleiða Kubernetes CRDs. Þetta, og stuðningur okkar við Kubernetes útgáfur allt að 1.11, þýddi að við þurftum að styðja við arfleifð apiextensions.k8s.io/v1beta1 fyrir CRDs okkar líka admissionregistration.k8s.io/v1beta1 fyrir webhooks okkar. Þau eru nú úrelt og verða fjarlægð í Kubernetes úr útgáfu 1.22. Með 1.0 okkar bjóðum við nú upp á fullan stuðning apiextensions.k8s.io/v1 и admissionregistration.k8s.io/v1 fyrir Kubernetes 1.16 (þar sem þeim var bætt við) og síðar. Fyrir notendur fyrri útgáfur höldum við áfram að bjóða upp á stuðning v1beta1 í okkar legacy útgáfur.

Bætt skógarhögg

Í þessari útgáfu höfum við uppfært skráningarsafnið í klog/v2, notað í Kubernetes 1.19. Við skoðum líka hverja dagbók sem við skrifum til að ganga úr skugga um að henni sé úthlutað viðeigandi stigi. Við höfðum þetta að leiðarljósi leiðbeiningar frá Kubernetes. Það eru fimm (reyndar sex, ca. þýðandi) skráningarstig frá og með Error (stig 0), sem prentar aðeins mikilvægar villur og endar með Trace (stig 5) sem mun hjálpa þér að vita nákvæmlega hvað er að gerast. Með þessari breytingu höfum við fækkað annálum ef þú þarft ekki villuleitarupplýsingar þegar þú keyrir cert-manager.

Ábending: cert-manager keyrir sjálfgefið á stigi 2 (Info), geturðu hnekið þessu með því að nota global.logLevel í Helmchart.

Athugið: Að fara yfir annálana er síðasta úrræðið við bilanaleit. Fyrir frekari upplýsingar skoðaðu okkar forysta.

Athugið ritstjóra: Til að læra meira um hvernig þetta allt virkar undir hettunni hjá Kubernetes, fá dýrmæt ráð frá starfandi kennurum, sem og vandaða tækniaðstoð, geturðu tekið þátt í námskeiðum á netinu Kubernetes stöð, sem haldinn verður 28. – 30. september, og Kubernetes Megasem haldinn verður 14. – 16. október.

ACME endurbætur

Algengasta notkun cert-manager tengist líklega útgáfu skírteina frá Let's Encrypt með ACME. Útgáfa 1.0 er athyglisverð fyrir að nota endurgjöf frá samfélaginu til að bæta við tveimur litlum en mikilvægum endurbótum á ACME útgefanda okkar.

Slökktu á reikningslyklamyndun

Ef þú notar ACME skírteini í miklu magni er líklegt að þú notir sama reikninginn á mörgum klösum, þannig að takmarkanir þínar á útgáfu skírteina munu gilda um þau öll. Þetta var þegar mögulegt í cert-manager þegar afritað var leyndarmálið sem tilgreint er í privateKeySecretRef. Þetta notkunartilfelli var frekar gallað, þar sem cert-manager reyndi að vera hjálpsamur og bjó til nýjan reikningslykil ef hann fann hann ekki. Þess vegna bættum við við disableAccountKeyGenerationtil að vernda þig gegn þessari hegðun með því að stilla þennan valkost á true - cert-manager mun ekki búa til lykil og mun vara þig við því að honum hafi ekki verið útvegaður reikningslykill.

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

Ákjósanleg keðja

29. september Við skulum dulkóða mun ná til eigin rótarvottorðsyfirvalds ISRG Root. Í stað krossritaðra skírteina kemur Identrust. Þessi breyting krefst ekki breytinga á stillingum vottorðastjórans; öll uppfærð eða ný skírteini sem gefin eru út eftir þessa dagsetningu munu nota nýja rót CA.

Við skulum dulkóða undirrita nú þegar skírteini með þessu CA og bjóða þau sem „varavottorðskeðju“ í gegnum ACME. Þessi útgáfa af cert-manager hefur getu til að stilla aðgang að þessum keðjum í útgefandastillingum. Í færibreytu preferredChain Þú getur tilgreint nafn CA sem notað er til að gefa út vottorðið. Ef CA vottorð sem samsvarar beiðninni er tiltækt gefur það þér vottorð. Vinsamlegast athugaðu að þetta er valinn kostur, ef ekkert finnst verður sjálfgefið vottorð gefið út. Þetta mun tryggja að þú endurnýjar enn skírteinið þitt eftir að þú hefur eytt varakeðjunni á ACME útgefandahliðinni.

Nú þegar í dag er hægt að fá skírteini árituð af ISRG Root, Svo:

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

Ef þú vilt frekar yfirgefa keðjuna IdenTrust - stilltu þennan valkost á 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"

Vinsamlegast athugaðu að þetta rót CA verður brátt úrelt, Let's Encrypt mun halda þessari keðju virkri til 29. september 2021.

Heimild: www.habr.com

Bæta við athugasemd