Auto-chizvarwa chezvakavanzika muHelm

Auto-chizvarwa chezvakavanzika muHelm

chikwata Kubernetes aaS kubva kuMail.ru yakashandura chinyorwa chipfupi nezve maitiro ekugadzira otomatiki zvakavanzika zveHelm kana uchigadziridza. Izvi zvinotevera zvinyorwa kubva kumunyori wechinyorwa - technical director weIntoware, kambani inogadzira SaaS mhinduro.

Containers inotonhorera. Pakutanga ndaive anti-container (ndinonyara kuzvibvuma), asi ikozvino ndinotsigira zvizere kushandiswa kwekombiyuta iyi. Kana iwe uri kuverenga izvi, iwe une tariro wakabudirira kufamba mumakungwa eDocker, wakaona mabhenefiti eKubernetes, uye akaita kuti hupenyu hwako huve nyore neHelm.

Zvisinei, zvimwe zvinhu zvakaoma zvikuru kupfuura zvazvinofanira kuva.

Maitiro ekugadzira otomatiki zvakavanzika paunenge uchivandudza?

Chakavanzika cheKubernetes chishandiso chine kiyi / kukosha peya iwe yaunoda kushandisa mune yako kodhi. Aya anogona kunge ari dhatabhesi yekubatanidza tambo, email passwords, zvichingodaro. Nekushandisa zvakavanzika, iwe unogadzira kupatsanurwa kwakajeka pakati pekodhi uye zvigadziriso, zvichikutendera iwe kuti uite nyore kugadzirisa akasiyana deployments pasina kushandura iyo codebase.

Mamiriro akajairwa ndeapo ma module maviri anofanirwa kutaurirana achishandisa kiyi yakafanana. Hapana munhu ari kunze kwechikwata anofanirwa kuziva kiyi iyi, nekuti yakaitirwa kutaurirana-kune-mumwe mukati meboka.

Kuita zvakavanzika

Kazhinji, kugadzira chakavanzika muHelm unofanirwa:

  • tsanangura chakavanzika chiri muhukoshi faira;
  • tsanangura zvakare panguva yekutumirwa;
  • taura nezvayo mukati mekutumira / pod;
  • ... purofiti!

Kazhinji inotaridzika seizvi:

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

Yakareruka Kubernetes chakavanzika uchishandisa kukosha kubva ku values.yml

Asi ngatiti iwe haudi kutsanangura chakavanzika chako mumafaira efaira.

Pane zvakawanda zvingasarudzwa kana kutumirwa kunoda kiyi yakagovaniswa, iyo inofanirwa kugadzirwa panguva yekuiswa.

Mune iyo module-to-module yekutaurirana muenzaniso pamusoro, hazvifadzi kugovera chakavanzika kunze kwekutumirwa. Naizvozvo, zvinoshuviwa zvikuru kuti Helm iite michina yekungogadzira chakavanzika pasina kuitsanangura zvakananga.

Hooks

Hooks dzinokutendera kuti umhanye kodhi panzvimbo dzakananga panguva yekuisa. Panogona kunge paine basa rekugadzirisa rinoda kuitwa mushure mekutanga kuisirwa, kana pamwe kuchenesa kunoda kuitwa usati waita chero update.

Kuti tigadzirise dambudziko redu rekuwedzera kiyi inogadzirwa panguva yekumisikidza, pre-installation hooks yakanaka. Asi pane kubata: haugone kugadzira chakavanzika kamwe chete pakuvandudza. Hooks ichashanda pane yega yega update.

Kana iwe wakagadzira chakavanzika chako uye yako yekutanga yekuisa haisati yaitika chirega kuverenga, iyo pre-install hook ichashanda zvakanaka kwauri.

Asi kana chakavanzika chiri chikamu chekuvandudza (zvichida chimiro chitsva chakanga chisipo panguva yekuiswa), zvino zvinonyadzisa kuti haugone kugadzira hoko yekuisa pre-inongoshanda kamwe chete.

Mabasa

Helm mabasa anotendera iwe kuti uwedzere akasiyana scripting zvinhu kune ako ekutumira zvinyorwa.

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

Uyu muenzaniso unoratidza kuti kukosha kweapiKey chakavanzika ichave iyo itsva UUID inogadzirwa panguva yekuiswa.

Helm inosanganisira raibhurari yechokwadi yakakura kwazvo iyo inokwirisa zvinoshamisa GO template maficha uye Sprig's raibhurari yekugadzira kugadzira tsika deployments.

Lookup basa

Yakawedzerwa muHelm 3.1 Lookup basa, iyo inokutendera iwe kukumbira kutumirwa kuripo uye:

  • tarisa kuvapo kwezvinhu;
  • dzorera kukosha kwechinhu chiripo kuti chizoshandiswa gare gare.

Tichishandisa zvese izvi kugona, tinogona kugadzira imwe-nguva, inogadzirwa chakavanzika chine simba!

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

Pese painogadzikiswa patsva pasevha, Helm inoburitsa kukosha kutsva kwakavanzika (kana pasina chakavanzika parizvino) kana kushandisazve kukosha kwavepo.

Good luck!

Chii chimwe chekuverenga pamusoro penyaya:

  1. Matanho matatu eautoscaling muKubernetes uye maitiro ekuashandisa nemazvo.
  2. Kubernetes mumweya wepiracy ane template yekushandisa.
  3. Yedu chiteshi Around Kubernetes muTeregiramu.

Source: www.habr.com

Voeg