cert-manager 1.0 جاری کیا گیا۔

اگر آپ کسی تجربہ کار، عقلمند انجینئر سے پوچھیں کہ وہ سرٹیفکیٹ مینیجر کے بارے میں کیا سوچتا ہے اور ہر کوئی اسے کیوں استعمال کرتا ہے، تو ماہر آہیں بھرے گا، اسے اعتماد میں لے کر گلے لگائے گا اور تھکے ہوئے انداز میں کہے گا: "ہر کوئی اسے استعمال کرتا ہے، کیونکہ کوئی سمجھدار متبادل نہیں ہے۔ ہمارے چوہے روتے ہیں، چبھتے ہیں، لیکن اس کیکٹس کے ساتھ رہتے ہیں۔ ہم محبت کیوں کرتے ہیں؟ کیونکہ یہ کام کرتا ہے۔ ہم محبت کیوں نہیں کرتے؟ کیونکہ نئے ورژن مسلسل سامنے آرہے ہیں جو نئی خصوصیات کا استعمال کرتے ہیں۔ اور آپ کو بار بار کلسٹر کو اپ ڈیٹ کرنا ہوگا۔ اور پرانے ورژن کام کرنا چھوڑ دیتے ہیں، کیونکہ ایک سازش اور ایک عظیم پراسرار شمنزم ہے۔

لیکن ڈویلپرز کا دعوی ہے کہ cert-manager 1.0 سب کچھ بدل جائے گا.

یقین؟

cert-manager 1.0 جاری کیا گیا۔

Cert-manager مقامی Kubernetes سرٹیفکیٹ مینجمنٹ کنٹرولر ہے۔ اسے مختلف ذرائع سے سرٹیفکیٹ جاری کرنے کے لیے استعمال کیا جا سکتا ہے: Let's Encrypt، HashiCorp Vault، Venafi، دستخط اور خود دستخط شدہ کلیدی جوڑے۔ یہ آپ کو میعاد ختم ہونے کی تاریخ تک کیز کو اپ ٹو ڈیٹ رکھنے کی بھی اجازت دیتا ہے، اور سرٹیفکیٹس کی میعاد ختم ہونے سے پہلے ایک مخصوص وقت پر خود بخود تجدید کرنے کی بھی کوشش کرتا ہے۔ Cert-manager kube-lego پر مبنی ہے اور اس نے اسی طرح کے دوسرے پروجیکٹس جیسے kube-cert-manager کی کچھ ترکیبیں بھی استعمال کی ہیں۔

ریلیز نوٹس

ورژن 1.0 کے ساتھ، ہم نے cert-manager پروجیکٹ کی ترقی کے تین سال کے لیے اعتماد کا نشان لگایا ہے۔ اس وقت کے دوران، یہ فعالیت اور استحکام میں نمایاں طور پر تیار ہوا ہے، لیکن سب سے زیادہ کمیونٹی میں۔ آج، ہم دیکھتے ہیں کہ بہت سے لوگ اسے اپنے Kubernetes کلسٹرز کو محفوظ بنانے کے ساتھ ساتھ اسے ماحولیاتی نظام کے مختلف حصوں میں تعینات کرنے کے لیے استعمال کرتے ہیں۔ پچھلی 16 ریلیز میں بہت سارے کیڑے ٹھیک کیے گئے ہیں۔ اور جو ٹوٹنے کی ضرورت تھی وہ ٹوٹ گیا۔ API کے ساتھ کام کرنے کے کئی دوروں نے صارفین کے ساتھ اس کے تعامل کو بہتر بنایا ہے۔ ہم نے GitHub پر 1500 مسائل کو 253 کمیونٹی ممبران کی طرف سے مزید پل کی درخواستوں کے ساتھ حل کیا ہے۔

1.0 کے اجراء کے ساتھ، ہم باضابطہ طور پر اعلان کرتے ہیں کہ cert-manager ایک بالغ پروجیکٹ ہے۔ ہم اپنے API کو ہم آہنگ رکھنے کا وعدہ بھی کرتے ہیں۔ v1.

ان تمام لوگوں کا بہت شکریہ جنہوں نے ان تینوں سالوں میں سرٹیفک مینیجر بنانے میں ہماری مدد کی! ورژن 1.0 کو آنے والی بہت سی بڑی چیزوں میں سے پہلا ہونے دیں۔

ریلیز 1.0 کئی ترجیحی علاقوں کے ساتھ ایک مستحکم ریلیز ہے:

  • v1 API

  • ٹیم kubectl cert-manager statusمسئلہ کے تجزیہ میں مدد کرنے کے لیے؛

  • تازہ ترین مستحکم Kubernetes APIs کا استعمال کرتے ہوئے؛

  • بہتر لاگنگ؛

  • ACME میں بہتری۔

اپ گریڈ کرنے سے پہلے اپ گریڈ نوٹ ضرور پڑھیں۔

API v1۔

ورژن v0.16 API کے ساتھ کام کرتا ہے۔ v1beta1. اس سے کچھ ساختی تبدیلیاں ہوئیں اور API فیلڈ دستاویزات میں بھی بہتری آئی۔ ورژن 1.0 ایک API کے ساتھ اس پر بنتا ہے۔ v1. یہ API ہمارا پہلا مستحکم ہے، اسی وقت ہم نے مطابقت کی ضمانتیں پہلے ہی دے دی ہیں، لیکن API کے ساتھ v1 ہم آنے والے سالوں تک مطابقت برقرار رکھنے کا وعدہ کرتے ہیں۔

تبدیلیاں کی گئی ہیں (نوٹ: ہمارے تبادلوں کے ٹولز آپ کے لیے ہر چیز کا خیال رکھتے ہیں):

سرٹیفیکیٹ:

  • emailSANs اب بلایا emailAddresses

  • uriSANs - uris

یہ تبدیلیاں دوسرے SANs کے ساتھ مطابقت کا اضافہ کرتی ہیں (سبجیکٹ Alt نام، تقریبا. مترجم) کے ساتھ ساتھ Go API کے ساتھ۔ ہم اس اصطلاح کو اپنے API سے ہٹا رہے ہیں۔

اپ ڈیٹ کریں

اگر آپ Kubernetes 1.16+ استعمال کر رہے ہیں، تو ویب ہکس کو تبدیل کرنے سے آپ 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 <имя-сертификата>، جو دیے گئے نام کے ساتھ سرٹیفکیٹ کو تلاش کرے گا اور کسی بھی متعلقہ وسائل جیسے CertificateRequest، Secret، Issuer، اور Order and Challenges اگر ACME سے سرٹیفکیٹ استعمال کر رہے ہیں۔

کسی سرٹیفکیٹ کو ڈیبگ کرنے کی ایک مثال جو ابھی تک تیار نہیں ہے:

$ 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 APIs کا استعمال

Cert-manager Kubernetes CRDs کو نافذ کرنے والے پہلے لوگوں میں سے ایک تھا۔ یہ، اور 1.11 تک Kubernetes ورژنز کے لیے ہماری حمایت کا مطلب ہے کہ ہمیں میراث کی حمایت کرنے کی ضرورت ہے۔ apiextensions.k8s.io/v1beta1 ہمارے CRDs کے لیے بھی admissionregistration.k8s.io/v1beta1 ہمارے ویب ہکس کے لیے۔ وہ اب فرسودہ ہیں اور ورژن 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 ہیلم چارٹ میں

نوٹ: خرابیوں کا ازالہ کرتے وقت لاگز کو دیکھنا آخری حربہ ہے۔ مزید معلومات کے لیے ہمارا چیک کریں۔ قیادت.

ایڈیٹر کا n.b.: اس بارے میں مزید جاننے کے لیے کہ یہ سب کس طرح Kubernetes کے تحت کام کرتا ہے، پریکٹس کرنے والے اساتذہ سے قیمتی مشورے حاصل کریں، نیز معیاری تکنیکی مدد کی مدد حاصل کریں، آپ آن لائن انٹینسیو میں حصہ لے سکتے ہیں۔ کبرنیٹس بیس، جو 28-30 ستمبر کو منعقد ہوگا، اور کبرنیٹس میگاجو 14-16 اکتوبر کو منعقد ہو گا۔

ACME میں بہتری

cert-manager کا سب سے عام استعمال شاید ACME کا استعمال کرتے ہوئے Let's Encrypt سے سرٹیفکیٹ جاری کرنے سے متعلق ہے۔ ورژن 1.0 ہمارے ACME جاری کنندہ میں دو چھوٹی لیکن اہم اصلاحات شامل کرنے کے لیے کمیونٹی فیڈ بیک استعمال کرنے کے لیے قابل ذکر ہے۔

اکاؤنٹ کلیدی جنریشن کو غیر فعال کریں۔

اگر آپ بڑی مقدار میں 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 کے ذریعے "متبادل سرٹیفکیٹ چین" کے طور پر پیش کرتے ہیں۔ cert-manager کے اس ورژن میں، جاری کنندہ کی ترتیبات میں ان زنجیروں تک رسائی کو سیٹ کرنا ممکن ہے۔ پیرامیٹر میں 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 جلد ہی فرسودہ ہو جائے گا، Let's Encrypt اس سلسلہ کو 29 ستمبر 2021 تک فعال رکھے گا۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں