cert-manager 1.0 නිකුත් කරන ලදී

ඔබ පළපුරුදු, බුද්ධිමත් ඉංජිනේරුවෙකුගෙන් ඔහු සහතික කළමණාකරු ගැන සිතන්නේ කුමක්ද සහ සෑම කෙනෙකුම එය භාවිතා කරන්නේ මන්දැයි ඇසුවොත්, විශේෂඥයා සුසුම්ලමින්, ඔහුව විශ්වාසයෙන් බදාගෙන වෙහෙසට පත්ව මෙසේ කියයි: “සෑම කෙනෙකුම එය භාවිතා කරයි, මන්ද බුද්ධිමත් විකල්ප නොමැති බැවිනි. අපේ මීයන් අඬනවා, විදින්න, නමුත් දිගටම මේ පතොක් සමඟ ජීවත් වෙනවා. ඇයි අපි ආදරය කරන්නේ? එය වැඩ කරන නිසා. ඇයි අපි ආදරය නොකරන්නේ? නව විශේෂාංග භාවිතා කරන නව අනුවාදයන් නිරන්තරයෙන් නිකුත් වන බැවිනි. තවද ඔබ නැවත නැවතත් පොකුර යාවත්කාලීන කළ යුතුය. කුමන්ත්රණයක් සහ මහා අද්භූත shamanism පවතින නිසා පැරණි අනුවාදයන් වැඩ කිරීම නතර කරයි.

නමුත් සංවර්ධකයින් පවසන්නේ එයයි සහතික කළමණාකරු 1.0 සියල්ල වෙනස් වනු ඇත.

අපි විශ්වාස කරමුද?

cert-manager 1.0 නිකුත් කරන ලදී

Cert-manager යනු ස්වදේශික Kubernetes සහතික කළමණාකරණ පාලකයයි. විවිධ මූලාශ්‍රවලින් සහතික නිකුත් කිරීමට එය භාවිතා කළ හැක: අපි සංකේතනය කරමු, HashiCorp Vault, Venafi, අත්සන් කිරීම සහ ස්වයං-අත්සන් කළ යතුරු යුගල. එය කල් ඉකුත්වන දිනය අනුව යතුරු යාවත්කාලීනව තබා ගැනීමට ඔබට ඉඩ සලසයි, තවද සහතික කල් ඉකුත් වීමට පෙර නියමිත වේලාවට ස්වයංක්‍රීයව අලුත් කිරීමට උත්සාහ කරයි. Cert-manager kube-lego මත පදනම් වන අතර kube-cert-manager වැනි වෙනත් සමාන ව්‍යාපෘතිවල උපක්‍රම ද භාවිතා කර ඇත.

නිකුත් කිරීමේ සටහන්

1.0 අනුවාදය සමඟින්, අපි සහතික කළමණාකරු ව්‍යාපෘතියේ වසර තුනක සංවර්ධනය සඳහා විශ්වාසයේ සලකුණක් තැබුවෙමු. මෙම කාලය තුළ, එය ක්‍රියාකාරීත්වය සහ ස්ථාවරත්වය තුළ සැලකිය යුතු ලෙස පරිණාමය වී ඇත, නමුත් සියල්ලටම වඩා ප්‍රජාව තුළ. අද වන විට, බොහෝ අය ඔවුන්ගේ Kubernetes පොකුරු සුරක්ෂිත කිරීම සඳහා මෙන්ම පරිසර පද්ධතියේ විවිධ කොටස් වෙත එය යෙදවීම සඳහා එය භාවිතා කරන ආකාරය අපි දකිමු. පසුගිය නිකුතු 16 තුළ බොහෝ දෝෂ නිවැරදි කර ඇත. ඒ වගේම කඩන්න ඕන දේ කැඩිලා. API සමඟ වැඩ කිරීමට කිහිප වතාවක්ම පරිශීලකයන් සමඟ එහි අන්තර්ක්‍රියා වැඩි දියුණු කර ඇත. අපි ප්‍රජා සාමාජිකයින් 1500 දෙනෙකුගෙන් තවත් ඇදීමේ ඉල්ලීම් සමඟ GitHub හි ගැටළු 253ක් විසඳා ඇත.

1.0 නිකුත් කිරීමත් සමඟ, සහතික කළමණාකරු පරිණත ව්‍යාපෘතියක් බව අපි නිල වශයෙන් ප්‍රකාශ කරමු. අපගේ API අනුකූලව තබා ගැනීමට ද අපි පොරොන්දු වෙමු v1.

මේ වසර තුන පුරාවටම සහතික කළමණාකරුවෙකු වීමට අපට උපකාර කළ සැමට බොහොම ස්තුතියි! 1.0 අනුවාදය ඉදිරියේදී බොහෝ විශාල දේවලින් පළමුවැන්න වීමට ඉඩ දෙන්න.

Release 1.0 යනු ප්‍රමුඛතා ක්ෂේත්‍ර කිහිපයක් සහිත ස්ථාවර නිකුතුවකි:

  • v1 API;

  • කණ්ඩායම kubectl cert-manager status, ගැටළු විශ්ලේෂණය සඳහා උපකාර කිරීමට;

  • නවතම ස්ථාවර Kubernetes API භාවිතා කිරීම;

  • වැඩි දියුණු කළ ලොග්;

  • ACME වැඩිදියුණු කිරීම්.

උත්ශ්‍රේණි කිරීමට පෙර යාවත්කාලීන සටහන් කියවීමට වග බලා ගන්න.

ඒපීඅයි v1

v0.16 අනුවාදය API සමඟ ක්‍රියා කළේය v1beta1. මෙය ව්‍යුහාත්මක වෙනස්කම් කිහිපයක් එකතු කරන ලද අතර API ක්ෂේත්‍ර ලේඛනගත කිරීමද වැඩිදියුණු කරන ලදී. 1.0 අනුවාදය API සමඟ ගොඩනඟයි v1. මෙම API අපගේ පළමු ස්ථාවර එකයි, ඒ සමඟම අපි දැනටමත් අනුකූලතා සහතික ලබා දී ඇත, නමුත් API සමඟ v1 ඉදිරි වසර සඳහා අනුකූලතාව පවත්වා ගැනීමට අපි පොරොන්දු වෙමු.

සිදු කරන ලද වෙනස්කම් (සටහන: අපගේ පරිවර්තන මෙවලම් ඔබ වෙනුවෙන් සියල්ල බලා ගනී):

සහතිකය:

  • emailSANs දැන් හැඳින්වේ emailAddresses

  • uriSANs - uris

මෙම වෙනස්කම් අනෙකුත් SAN සමග ගැළපීමක් එක් කරයි (විෂය වෙනස් නම්, ආසන්න වශයෙන් පරිවර්තකයා), මෙන්ම Go API සමඟ. අපි මෙම යෙදුම අපගේ API වෙතින් ඉවත් කරන්නෙමු.

යාවත්කාලීන කරන්න

ඔබ Kubernetes 1.16+ භාවිතා කරන්නේ නම්, webhooks පරිවර්තනය කිරීම ඔබට API අනුවාද සමඟ එකවර සහ බාධාවකින් තොරව වැඩ කිරීමට ඉඩ සලසයි. v1alpha2, v1alpha3, v1beta1 и v1. මේවා සමඟ, ඔබට ඔබේ පැරණි සම්පත් වෙනස් කිරීම හෝ නැවත යෙදවීමකින් තොරව API හි නව අනුවාදය භාවිතා කිරීමට හැකි වනු ඇත. අපි ඔබගේ මැනිෆෙස්ටස් API වෙත උත්ශ්‍රේණි කිරීම නිර්දේශ කරමු v1, පෙර අනුවාද ඉක්මනින් අත්හරිනු ඇති බැවින්. පරිශීලකයන් legacy cert-manager හි අනුවාදවලට තවමත් ප්‍රවේශය ඇත්තේ වෙත පමණි v1, උත්ශ්‍රේණිගත කිරීමේ පියවර සොයා ගත හැක මෙහි.

kubectl cert-manager තත්ව විධානය

දක්වා අපගේ දිගුවේ නව වැඩිදියුණු කිරීම් සමඟ kubectl සහතික නිකුත් නොකිරීම සම්බන්ධ ගැටළු විමර්ශනය කිරීම පහසු විය. kubectl cert-manager status දැන් සහතික සමඟ සිදු වන දේ පිළිබඳ තවත් බොහෝ තොරතුරු ලබා දෙන අතර සහතික නිකුත් කිරීමේ අදියර ද පෙන්වයි.

දිගුව ස්ථාපනය කිරීමෙන් පසුව, ඔබට ධාවනය කළ හැකිය kubectl cert-manager status certificate <имя-сертификата>, එය දී ඇති නම සහිත සහතිකය සහ ACME වෙතින් සහතික භාවිතා කරන්නේ නම් CertificateRequest, Secret, Issuer, and Order and Challenges වැනි ඕනෑම අදාළ සම්පත් සොයා බලයි.

තවමත් සූදානම් නැති සහතිකයක් නිදොස් කිරීම සඳහා උදාහරණයක්:

$ 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

සහතිකයේ අන්තර්ගතය ගැන වැඩි විස්තර දැනගැනීමට විධානය ඔබට උපකාර කරයි. 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
[...]

නවතම ස්ථාවර Kubernetes API භාවිතා කරමින්

Cert-manager යනු Kubernetes CRDs ක්‍රියාත්මක කළ පළමු අයගෙන් කෙනෙකි. මෙය සහ 1.11 දක්වා Kubernetes අනුවාද සඳහා අපගේ සහය යන්නෙන් අදහස් කළේ අපට උරුමයට සහය විය යුතු බවයි. apiextensions.k8s.io/v1beta1 අපගේ CRD සඳහාද admissionregistration.k8s.io/v1beta1 අපගේ webhooks සඳහා. ඒවා දැන් අවලංගු කර ඇති අතර 1.22 අනුවාදයෙන් Kubernetes හි ඉවත් කරනු ලැබේ. අපගේ 1.0 සමඟ අපි දැන් සම්පූර්ණ සහාය ලබා දෙන්නෙමු apiextensions.k8s.io/v1 и admissionregistration.k8s.io/v1 Kubernetes 1.16 සඳහා (ඒවා එකතු කරන ලද) සහ නව. පෙර අනුවාද භාවිතා කරන්නන් සඳහා, අපි දිගටම සහාය ලබා දෙන්නෙමු v1beta1 අපේ legacy අනුවාද.

වැඩි දියුණු කළ ලොග් කිරීම

මෙම නිකුතුවේදී, අපි ලොගින් පුස්තකාලය යාවත්කාලීන කර ඇත klog/v2, Kubernetes 1.19 හි භාවිතා වේ. අපි ලියන සෑම සඟරාවක්ම එයට සුදුසු මට්ටමක් පවරා ඇති බව සහතික කර ගැනීමට ද අපි සමාලෝචනය කරමු. අපි මෙයින් මඟ පෙන්වූවා Kubernetes වෙතින් මග පෙන්වීම. පහක් ඇත (ඇත්ත වශයෙන්ම හයක්, ආසන්න වශයෙන් පරිවර්තකයා) ලොගින් මට්ටම් ආරම්භ වේ Error (මට්ටම 0), එය වැදගත් දෝෂ පමණක් මුද්‍රණය කර අවසන් වේ Trace (5 වන මට්ටම) සිදුවන්නේ කුමක්ද යන්න නිවැරදිව දැන ගැනීමට ඔබට උපකාර වනු ඇත. මෙම වෙනස සමඟ, සහතික කළමණාකරු ක්‍රියාත්මක කිරීමේදී ඔබට නිදොස් කිරීමේ තොරතුරු අවශ්‍ය නැතිනම් අපි ලොග ගණන අඩු කර ඇත.

ඉඟිය: සහතික කළමණාකරු පෙරනිමියෙන් 2 මට්ටමේ ධාවනය වේ (Info), ඔබට මෙය භාවිතයෙන් අභිබවා යා හැක global.logLevel Helmchart හි.

සටහන: දෝශ නිරාකරණය කිරීමේදී අවසාන විසඳුම වන්නේ ලඝු-සටහන් බැලීමයි. වැඩි විස්තර සඳහා අපගේ පරීක්ෂා කරන්න නායකත්වය.

සංස්කාරක එන්.බී.: Kubernetes ගේ තොප්පිය යටතේ ඒ සියල්ල ක්‍රියාත්මක වන ආකාරය ගැන වැඩිදුර දැන ගැනීමට, පුහුණු ගුරුවරුන්ගෙන් වටිනා උපදෙස් ලබා ගැනීමට මෙන්ම ගුණාත්මක තාක්ෂණික සහාය උපකාර ලබා ගැනීමට, ඔබට මාර්ගගත තීව්‍රතාවයට සහභාගී විය හැකිය. කුබර්නෙට්ස් පදනම, සැප්තැම්බර් 28-30 පැවැත්වෙන අතර, සහ කුබර්නෙටස් මෙගාඔක්තෝබර් 14-16 දක්වා පැවැත්වේ.

ACME වැඩිදියුණු කිරීම්

Cert-manager හි වඩාත් පොදු භාවිතය ACME භාවිතයෙන් Let's Encrypt වෙතින් සහතික නිකුත් කිරීම හා සම්බන්ධ විය හැකිය. අපගේ ACME නිකුත් කරන්නා වෙත කුඩා නමුත් වැදගත් වැඩිදියුණු කිරීම් දෙකක් එක් කිරීමට ප්‍රජා ප්‍රතිපෝෂණ භාවිතා කිරීම සඳහා 1.0 අනුවාදය කැපී පෙනේ.

ගිණුම් යතුරු උත්පාදනය අබල කරන්න

ඔබ ACME සහතික විශාල වෙළුම් වලින් භාවිතා කරන්නේ නම්, ඔබ එකම ගිණුම පොකුරු කිහිපයක භාවිතා කිරීමට ඉඩ ඇත, එබැවින් ඔබේ සහතික නිකුත් කිරීමේ සීමාවන් ඒ සියල්ලටම අදාළ වේ. නිශ්චිතව දක්වා ඇති රහස පිටපත් කිරීමේදී සහතික කළමණාකරු තුළ මෙය දැනටමත් හැකි විය privateKeySecretRef. සහතික කළමණාකරු ප්‍රයෝජනවත් වීමට උත්සාහ කළ අතර එය සොයා නොගත්තොත් සතුටින් නව ගිණුම් යතුරක් නිර්මාණය කළ බැවින්, මෙම භාවිත අවස්ථාව තරමක් දෝෂ සහිත විය. ඒකයි අපි එකතු කළේ disableAccountKeyGenerationඔබ මෙම විකල්පය සකසන්නේ නම් මෙම හැසිරීමෙන් ඔබව ආරක්ෂා කිරීමට true - cert-manager යතුරක් ජනනය නොකරන අතර එයට ගිණුම් යතුරක් ලබා දී නොමැති බවට ඔබට අනතුරු අඟවයි.

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

කැමති දාමය

සැප්තැම්බර් 29 අපි සංකේතනය කරමු සමත් වනු ඇත ඔබේම මූල CA වෙත ISRG Root. හරස් අත්සන් සහිත සහතික මගින් ප්‍රතිස්ථාපනය කරනු ලැබේ Identrust. මෙම වෙනස් කිරීම සඳහා සහතික කළමණාකරු සැකසීම් වෙනස් කිරීම අවශ්‍ය නොවේ, මෙම දිනයෙන් පසුව නිකුත් කරන ලද සියලුම යාවත්කාලීන හෝ නව සහතික නව මූල CA භාවිතා කරනු ඇත.

අපි දැනටමත් මෙම CA සමඟ සහතික අත්සන් කර ඒවා ACME හරහා "විකල්ප සහතික දාමයක්" ලෙස පිරිනමමු. සහතික කළමණාකරුගේ මෙම අනුවාදයේ, නිකුත් කරන්නා සැකසීම් තුළ මෙම දාමයන් වෙත ප්‍රවේශය සැකසීමට හැකිය. පරාමිතිය තුළ preferredChain ඔබට භාවිතා කරන CA හි නම සඳහන් කළ හැක, සහතිකය නිකුත් කරනු ලැබේ. ඉල්ලීමට ගැළපෙන CA සහතිකයක් තිබේ නම්, එය ඔබට සහතිකයක් නිකුත් කරනු ඇත. මෙය වඩාත් කැමති විකල්පය බව කරුණාවෙන් සලකන්න, කිසිවක් සොයාගත නොහැකි නම්, පෙරනිමි සහතිකයක් නිකුත් කරනු ලැබේ. ACME නිකුත් කරන්නා පැත්තෙන් විකල්ප දාමය මකා දැමීමෙන් පසුවත් ඔබ ඔබේ සහතිකය අලුත් කරන බව මෙය සහතික කරයි.

දැනටමත් අද ඔබට අත්සන් කළ සහතික ලබා ගත හැකිය ISRG Root, ඒ නිසා:

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

ඔබ දාමයෙන් ඉවත් වීමට කැමති නම් IdenTrust - මෙම විකල්පය සකසන්න 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"

මෙම මූල CA ඉක්මනින් අත්හරිනු ඇති බව කරුණාවෙන් සලකන්න, අපි සංකේතනය කිරීමෙන් මෙම දාමය 29 සැප්තැම්බර් 2021 දක්වා සක්‍රියව තබනු ඇත.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න