Helm တွင် လျှို့ဝှက်ချက်များ အလိုအလျောက် ထုတ်ပေးသည်။

Helm တွင် လျှို့ဝှက်ချက်များ အလိုအလျောက် ထုတ်ပေးသည်။

အဖွဲ့ Mail.ru မှ Kubernetes aaS မှတ်စုတိုကို ဘာသာပြန်ဆိုသည်။ အပ်ဒိတ်လုပ်သောအခါ Helm လျှို့ဝှက်ချက်များကို အလိုအလျောက်ထုတ်လုပ်နည်းအကြောင်း။ အောက်ဖော်ပြပါသည် SaaS ဖြေရှင်းချက်များအား တီထွင်ထုတ်လုပ်သည့် ကုမ္ပဏီတစ်ခုဖြစ်သည့် Intoware ၏ နည်းပညာဆိုင်ရာ ဒါရိုက်တာထံမှ စာသားဖြစ်သည်။

ကွန်တိန်နာတွေက အေးတယ်။ အစတုန်းကတော့ ကျွန်တော်ဟာ ကွန်တိန်နာဆန့်ကျင်သူ (အဲဒါကို ဝန်ခံဖို့ ရှက်တယ်)၊ ဒါပေမယ့် အခု ဒီနည်းပညာကို အပြည့်အဝ ထောက်ခံပါတယ်။ သင်ဤစာကိုဖတ်နေပါက၊ သင်သည် Docker ၏ပင်လယ်များကိုအောင်မြင်စွာလမ်းပြနိုင်ခဲ့ပြီး Kubernetes ၏အကျိုးကျေးဇူးများကိုနားလည်ပြီး Helm ဖြင့်သင့်ဘဝကိုပိုမိုလွယ်ကူစေသည်။

သို့သော် အချို့အရာများသည် လိုအပ်သည်ထက် ပိုမိုခက်ခဲသည်မှာ ထင်ရှားသည်။

အပ်ဒိတ်လုပ်တဲ့အခါ လျှို့ဝှက်ချက်တွေကို အလိုအလျောက် ဘယ်လိုထုတ်မလဲ။

Kubernetes လျှို့ဝှက်ချက်သည် သင့်ကုဒ်တွင် သင်အသုံးပြုလိုသော သော့/တန်ဖိုးအတွဲများပါရှိသော အရင်းအမြစ်တစ်ခုဖြစ်သည်။ ၎င်းတို့သည် ဒေတာဘေ့စ်ချိတ်ဆက်မှုစာကြောင်းများ၊ အီးမေးလ် စကားဝှက်များ စသည်တို့ ဖြစ်နိုင်သည်။ လျှို့ဝှက်ချက်များကို အသုံးပြုခြင်းဖြင့်၊ သင်သည် ကုဒ်နှင့် ဆက်တင်များကြား ရှင်းရှင်းလင်းလင်း ပိုင်းခြားမှုကို ဖန်တီးနိုင်ပြီး၊ မတူညီသော ဖြန့်ကျက်မှုများကို ကုဒ်ဘေ့စ်ကို မပြောင်းလဲဘဲ စိတ်ကြိုက်ပြင်ဆင်နိုင်စေမည်ဖြစ်သည်။

ဘုံသော့ကို အသုံးပြု၍ module နှစ်ခု ဆက်သွယ်ရသောအခါတွင် ဘုံအခြေအနေတစ်ခုဖြစ်သည်။ အစုအဝေးပြင်ပရှိ မည်သူမျှ ဤသော့ကို သိသင့်သည်၊ အဘယ်ကြောင့်ဆိုသော် ၎င်းသည် အစုအဝေးအတွင်း တစ်ဦးမှတစ်ဦး ဆက်သွယ်ရေးအတွက် ရည်ရွယ်ပါသည်။

လျှို့ဝှက်ချက်လုပ်တယ်။

ပုံမှန်အားဖြင့်၊ Helm တွင်လျှို့ဝှက်ချက်တစ်ခုဖန်တီးရန်၊ သင်လိုအပ်သည်-

  • တန်ဖိုးများဖိုင်တွင်လျှို့ဝှက်ချက်ကိုဖော်ပြပါ;
  • ဖြန့်ကျက်စဉ်အတွင်း ၎င်းကို ပြန်လည်သတ်မှတ်ပါ။
  • deployment/pod အတွင်းရှိ ၎င်းကိုရည်ညွှန်းပါ။
  • ... အမြတ်အစွန်း!

၎င်းသည် များသောအားဖြင့် ဤကဲ့သို့သောပုံရသည်-

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

values.yml မှ တန်ဖိုးများကို အသုံးပြု၍ ရိုးရှင်းသော Kubernetes လျှို့ဝှက်ချက်

ဒါပေမယ့် တန်ဖိုးများဖိုင်ထဲမှာ မင်းရဲ့လျှို့ဝှက်ချက်ကို မသတ်မှတ်ချင်ဘူးဆိုကြပါစို့။

ဖြန့်ကျက်မှုတွင် ထည့်သွင်းစဉ်အတွင်း ထုတ်ပေးရမည့် မျှဝေသောကီး လိုအပ်သည့်အခါ ရွေးချယ်စရာများစွာရှိသည်။

အထက်ဖော်ပြပါ module-to-module ဆက်သွယ်ရေးနမူနာတွင်၊ အသုံးချမှုပြင်ပတွင် လျှို့ဝှက်ချက်ကို မျှဝေရန် မလိုလားပါ။ ထို့ကြောင့်၊ Helm သည် ၎င်းကို တိုက်ရိုက်သတ်မှတ်ရန်မလိုဘဲ လျှို့ဝှက်ချက်ကို အလိုအလျောက်ထုတ်လုပ်ရန် ယန္တရားများရှိသည်ကို အလွန်လိုလားပါသည်။

ချိတ်

Hooks သည် တပ်ဆင်ခြင်းလုပ်ငန်းစဉ်အတွင်း သတ်မှတ်ထားသောနေရာများတွင် ကုဒ်ကိုဖွင့်နိုင်စေပါသည်။ ပထမတပ်ဆင်ပြီးနောက် လုပ်ဆောင်ရန် လိုအပ်သော ဖွဲ့စည်းမှုပုံစံ အလုပ်တစ်ခု ရှိနိုင်သည်၊ သို့မဟုတ် အပ်ဒိတ်တစ်ခုခုကို မလုပ်ဆောင်မီ သန့်ရှင်းရေးကို လုပ်ဆောင်ရန် လိုအပ်ပေမည်။

တပ်ဆင်စဉ်အတွင်း ထုတ်လုပ်ထားသော သော့ထည့်ခြင်းဆိုင်ရာ ပြဿနာကို ဖြေရှင်းရန်၊ ကြိုတင်ထည့်သွင်းခြင်းချိတ်များသည် အကောင်းဆုံးဖြစ်သည်။ သို့သော် ဖမ်းစားမှုတစ်ခု ရှိသည်- အပ်ဒိတ်တစ်ခုတွင် တစ်ကြိမ် လျှို့ဝှက်ချက်ကို သင် အလိုအလျောက် ထုတ်မပေးနိုင်ပါ။ အပ်ဒိတ်တိုင်းတွင် Hooks အလုပ်လုပ်ပါမည်။

သင့်လျှို့ဝှက်ချက်ကို ထုတ်ပြန်ပြီး သင်၏ပထမဆုံးထည့်သွင်းမှု မဖြစ်ပေါ်သေးပါက စာဖတ်ခြင်းကို ရပ်လိုက်ပါက ကြိုတင်ထည့်သွင်းထားသည့်ချိတ်သည် သင့်အတွက် ကောင်းမွန်ပါလိမ့်မည်။

အကယ်၍ လျှို့ဝှက်ချက်သည် အပ်ဒိတ်တစ်ခု၏ တစ်စိတ်တစ်ပိုင်းဖြစ်သည် (တပ်ဆင်စဉ်အတွင်း မရှိသည့် အင်္ဂါရပ်အသစ်ဖြစ်နိုင်သည်) ဆိုလျှင် တစ်ကြိမ်တည်းသာ အလုပ်လုပ်နိုင်သော ကြိုတင်ထည့်သွင်းမှုချိတ်ကို သင်မဖန်တီးနိုင်ခြင်းမှာ ရှက်စရာပင်။

လုပ်ငန်းဆောင်တာ

Helm လုပ်ဆောင်ချက်များသည် သင့်အား ဖြန့်ကျက်ထားသော scripts များတွင် အမျိုးမျိုးသော scripting element များကို ထည့်သွင်းနိုင်စေပါသည်။

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 အသစ်ကို ထုတ်ပေးမည်ဖြစ်ကြောင်း ပြသသည်။

Helm တွင် စိတ်ကြိုက်အသုံးချမှုများကို ဖန်တီးရန်အတွက် အံ့သြဖွယ်ကောင်းသော GO နမူနာပုံစံအင်္ဂါရပ်များနှင့် Sprig ၏အင်္ဂါရပ်စာကြည့်တိုက်ကို အသုံးချသည့် အမှန်တကယ်ကျယ်ပြန့်သော အင်္ဂါရပ်စာကြည့်တိုက်တစ်ခု ပါဝင်သည်။

ရှာဖွေမှုလုပ်ဆောင်ချက်

Helm 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 }}

ဆာဗာတွင် အပ်ဒိတ်အသစ်ကို အသုံးပြုသည့်အခါတိုင်း၊ Helm သည် လျှို့ဝှက်တန်ဖိုးအသစ် (လျှို့ဝှက်ချက်မရှိသေးပါက) သို့မဟုတ် ရှိပြီးသားတန်ဖိုးကို ပြန်လည်အသုံးပြုမည်ဖြစ်သည်။

ကံကောင်းပါစေ!

နောက်ထပ် ဘာအကြောင်းအရာတွေ ဆက်ဖတ်ရမလဲ:

  1. Kubernetes တွင် အော်တိုစကေးချဲ့ခြင်း အဆင့်သုံးဆင့်နှင့် ၎င်းတို့ကို ထိရောက်စွာ အသုံးပြုနည်း.
  2. အကောင်အထည်ဖော်ရန်အတွက် နမူနာပုံစံဖြင့် ခိုးကူးမှုသဘောဖြင့် Kubernetes.
  3. Telegram ရှိ Kubernetes ဝန်းကျင်တွင် ကျွန်ုပ်တို့၏ချန်နယ်.

source: www.habr.com

မှတ်ချက် Add