په هیلم کې د رازونو اتوماتیک نسل

په هیلم کې د رازونو اتوماتیک نسل

ټیم Kubernetes aaS له Mail.ru څخه یو لنډ یادښت ژباړل شوی د تازه کولو پر مهال په اتوماتيک ډول د هیلم رازونه څنګه پیدا کول. لاندې د مقالې لیکوال څخه متن دی - د Intoware تخنیکي رییس، یو شرکت چې د SaaS حلونه رامینځته کوي.

کانټینرونه یخ دي. په لومړي سر کې زه د کانټینر ضد وم (زه په دې اعتراف کولو شرمیږم)، مګر اوس زه د دې ټیکنالوژۍ کارولو بشپړ ملاتړ کوم. که تاسو دا لوستل کوئ، تاسو هیله مند یاست چې د ډاکر سمندر په بریالیتوب سره حرکت وکړئ، د کوبرنیټس ګټې درک کړې، او د هیلم سره ستاسو ژوند خورا اسانه کړی.

په هرصورت، ځینې شیان په څرګنده توګه د اړتیا په پرتله خورا ستونزمن دي.

څنګه د تازه کولو پر مهال په اتوماتيک ډول رازونه پیدا کړئ؟

د Kubernetes راز یوه سرچینه ده چې کلیدي / ارزښت جوړه لري چې تاسو غواړئ په خپل کوډ کې وکاروئ. دا کیدای شي د ډیټابیس پیوستون تارونه، د بریښنالیک پاسورډونه، او داسې نور وي. د رازونو په کارولو سره ، تاسو د کوډ او تنظیماتو ترمینځ روښانه جلا کول رامینځته کوئ ، تاسو ته اجازه درکوي په اسانۍ سره د کوډبیس بدلولو پرته مختلف ګمارنې تنظیم کړئ.

یو عام حالت هغه وخت دی کله چې دوه ماډلونه باید د یو عام کیلي په کارولو سره اړیکه ونیسي. د کلستر څخه بهر هیڅوک باید دا کلید ونه پیژني، ځکه چې دا په کلستر کې د یو بل سره د اړیکو لپاره دی.

رازونه جوړول

عموما، په هیلم کې د راز جوړولو لپاره تاسو اړتیا لرئ:

  • د ارزښتونو فایل کې راز بیان کړئ؛
  • د ګمارنې پرمهال یې بیا تعریف کړئ؛
  • د ګمارنې/پوډ دننه دې ته مراجعه وکړئ؛
  • ... ګټه!

دا معمولا داسې ښکاري:

apiVersion: v1
kind: Secret
metadata:
  name: my-super-awesome-api-key
type: Opaque
stringData:
  apiKey: {{ .Values.MyApiKeySecret | quote }}

یو ساده Kubernetes راز د values.yml څخه د ارزښتونو په کارولو سره

مګر راځئ چې ووایو تاسو نه غواړئ خپل راز د ارزښتونو فایل کې مشخص کړئ.

ډیری اختیارونه شتون لري کله چې ګمارل یو شریک کیلي ته اړتیا لري، کوم چې باید د نصب کولو پرمهال تولید شي.

د موډل څخه تر ماډل مخابراتي مثال کې، دا د پام وړ نه ده چې د ځای پرځای کولو څخه بهر راز شریک کړئ. نو ځکه، دا خورا مطلوب دی چې هیلم داسې میکانیزمونه ولري چې په اتوماتيک ډول یو راز تولید کړي پرته له دې چې مستقیم یې مشخص کړي.

هک

هکس تاسو ته اجازه درکوي د نصب کولو پروسې په جریان کې په ځانګړو ځایونو کې کوډ چل کړئ. کیدای شي د ترتیب کولو دنده وي چې د لومړي نصب کولو وروسته پرمخ وړلو ته اړتیا لري، یا شاید د هر تازه کولو ترسره کولو دمخه پاکولو ته اړتیا وي.

د نصب کولو پرمهال رامینځته شوي کیلي اضافه کولو زموږ ستونزې حل کولو لپاره ، د نصب کولو دمخه هکونه غوره دي. مګر یو کیچ شتون لري: تاسو نشئ کولی په اوتومات ډول یو ځل په تازه کولو کې راز رامینځته کړئ. هکس به په هر تازه کار کې کار وکړي.

که تاسو خپل راز تولید کړی وي او ستاسو لومړی انسټالټ لا تر اوسه نه دی شوی نو بیا لوستل بند کړئ، د مخکې نصب کولو هک به ستاسو لپاره ښه کار وکړي.

مګر که راز د تازه کولو برخه وي (شاید یوه نوې ب featureه چې د نصب کولو پرمهال شتون نلري) ، نو دا د شرم خبره ده چې تاسو نشئ کولی د نصب کولو دمخه هک رامینځته کړئ چې یوازې یوځل کار کوي.

دندې

د هیلم افعال تاسو ته اجازه درکوي چې ستاسو د پلي کولو سکریپټونو کې مختلف سکریپټینګ عناصر اضافه کړئ.

apiVersion: v1
kind: Secret
metadata:
  name: my-super-awesome-api-key
type: Opaque
stringData:
  apiKey: {{ uuidv4 | quote }} #Generate a new UUID and quote it

دا مثال ښیې چې د apiKey راز ارزښت به د نصب کولو پرمهال رامینځته شوی نوی UUID وي.

هیلم کې واقعیا یو پراخه فیچر کتابتون شامل دی چې د ګمرکي ګمارنې رامینځته کولو لپاره د حیرانتیا GO ټیمپلیټ ب featuresو او د سپریګ فیچر کتابتون څخه ګټه پورته کوي.

د لټون فعالیت

په هیلم 3.1 کې اضافه شوی د لټون فعالیت، کوم چې تاسو ته اجازه درکوي د موجوده ګمارنې غوښتنه وکړئ او:

  • د سرچینو شتون چیک کړئ؛
  • د وروسته کارونې لپاره د موجوده سرچینې ارزښت بیرته راګرځوي.

د دې دواړو وړتیاو په کارولو سره ، موږ کولی شو یو ځل ، متحرک ډول رامینځته شوی راز رامینځته کړو!

# 1. Запросить существование секрета и вернуть в переменной $secret
{{- $secret := (lookup "v1" "Secret" .Release.Namespace "some-awesome-secret" -}}
apiVersion: v1
kind: Secret
metadata:
  name: some-awesome-secret
type: Opaque

# 2. Если секрет существует, взять его значение как apiKey (секрет использует кодирование Base64, так что используйте ключ "data")
{{ if $secret -}}
data:
  apiKey: {{ $secret.data.apiKey }}

# 3. Если секрет не существует — создать его (в этот раз используйте "stringData", так как будет обычное значение)!
{{ else -}}
stringData:
  apiKey: {{ uuidv4 | quote }}
{{ end }}

هرکله چې په سرور کې نوی اوسمهال پلي کیږي، هیلم به یا یو نوی پټ ارزښت رامینځته کړي (که چیرې تراوسه هیڅ راز شتون نلري) یا موجوده ارزښت بیا وکاروي.

ښه چانس!

په موضوع نور څه لوستل:

  1. په کبرنیټس کې د اتوماتیک کولو درې کچې او څنګه یې په مؤثره توګه کارول.
  2. Kubernetes د پلي کولو لپاره د یوې نمونې سره د سمندري غلو په روح کې.
  3. زموږ چینل په ټیلیګرام کې د کوبرنیټس شاوخوا.

سرچینه: www.habr.com

Add a comment