اگر آپ کسی تجربہ کار، عقلمند انجینئر سے پوچھیں کہ وہ سرٹیفکیٹ مینیجر کے بارے میں کیا سوچتا ہے اور ہر کوئی اسے کیوں استعمال کرتا ہے، تو ماہر آہیں بھرے گا، اسے اعتماد میں لے کر گلے لگائے گا اور تھکے ہوئے انداز میں کہے گا: "ہر کوئی اسے استعمال کرتا ہے، کیونکہ کوئی سمجھدار متبادل نہیں ہے۔ ہمارے چوہے روتے ہیں، چبھتے ہیں، لیکن اس کیکٹس کے ساتھ رہتے ہیں۔ ہم محبت کیوں کرتے ہیں؟ کیونکہ یہ کام کرتا ہے۔ ہم محبت کیوں نہیں کرتے؟ کیونکہ نئے ورژن مسلسل سامنے آرہے ہیں جو نئی خصوصیات کا استعمال کرتے ہیں۔ اور آپ کو بار بار کلسٹر کو اپ ڈیٹ کرنا ہوگا۔ اور پرانے ورژن کام کرنا چھوڑ دیتے ہیں، کیونکہ ایک سازش اور ایک عظیم پراسرار شمنزم ہے۔
لیکن ڈویلپرز کا دعوی ہے کہ 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 میں استعمال ہوتا ہے۔ ہم ہر اس جریدے کا بھی جائزہ لیتے ہیں جو ہم لکھتے ہیں یہ یقینی بنانے کے لیے کہ اسے مناسب سطح پر تفویض کیا گیا ہے۔ اس سے ہماری رہنمائی ہوئی۔ Error
(سطح 0)، جو صرف اہم غلطیوں کو پرنٹ کرتا ہے، اور اس کے ساتھ ختم ہوتا ہے۔ Trace
(سطح 5) جو آپ کو یہ جاننے میں مدد کرے گا کہ کیا ہو رہا ہے۔ اس تبدیلی کے ساتھ، ہم نے لاگز کی تعداد کم کردی ہے اگر آپ کو سرٹیفیک مینیجر چلاتے وقت ڈیبگ معلومات کی ضرورت نہیں ہے۔
ٹپ: سرٹیف مینیجر ڈیفالٹ سطح 2 پر چلتا ہے (Info
)، آپ اسے استعمال کر کے اوور رائیڈ کر سکتے ہیں۔ global.logLevel
ہیلم چارٹ میں
نوٹ: خرابیوں کا ازالہ کرتے وقت لاگز کو دیکھنا آخری حربہ ہے۔ مزید معلومات کے لیے ہمارا چیک کریں۔
ایڈیٹر کا n.b.: اس بارے میں مزید جاننے کے لیے کہ یہ سب کس طرح Kubernetes کے تحت کام کرتا ہے، پریکٹس کرنے والے اساتذہ سے قیمتی مشورے حاصل کریں، نیز معیاری تکنیکی مدد کی مدد حاصل کریں، آپ آن لائن انٹینسیو میں حصہ لے سکتے ہیں۔
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 ستمبر آئیے انکرپٹ کریں۔ 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