Ho iketsetsa liphiri ho Helm

Ho iketsetsa liphiri ho Helm

sehlopha Kubernetes aaS ho tsoa ho Mail.ru e fetoletseng mongolo o mokgutshwane mabapi le mokhoa oa ho iketsetsa liphiri tsa Helm ha u nchafatsa. Se latelang ke sengoloa se tsoang ho sengoli sa sengoloa - motsamaisi oa tekheniki oa Intoware, k'hamphani e hlahisang tharollo ea SaaS.

Lijana li pholile. Qalong ke ne ke le anti-container (ke hlajoa ke lihlong ho e lumela), empa hona joale ke tšehetsa ka botlalo tšebeliso ea theknoloji ena. Haeba u bala sena, ka tšepo u atlehile ho tsamaea maoatleng a Docker, u hlokometse melemo ea Kubernetes, 'me u nolofalitse bophelo ba hau haholo ka Helm.

Leha ho le joalo, ho hlakile hore lintho tse ling li thata ho feta kamoo li hlokang ho ba kateng.

Joang ho iketsetsa liphiri ha u nchafatsa?

Lekunutu la Kubernetes ke sesebelisoa se nang le lintlha tsa bohlokoa / tsa boleng tseo u batlang ho li sebelisa khoutu ea hau. Tsena e ka ba likhoele tsa khokahano ea database, li-password tsa imeile, joalo-joalo. Ka ho sebelisa liphiri, o theha karohano e hlakileng pakeng tsa khoutu le litlhophiso, e leng se u lumellang hore u iketsetse li-deployments tse fapaneng ntle le ho fetola codebase.

Boemo bo tloaelehileng ke ha li-module tse peli li tlameha ho buisana li sebelisa senotlolo se tloaelehileng. Ha ho motho ea ka ntle ho sehlopha ea lokelang ho tseba senotlolo sena, kaha se reretsoe puisano ea motho ka mong ka har'a sehlopha.

Ho etsa makunutu

Ka tloaelo, ho theha lekunutu ho Helm o hloka ho:

  • hlalosa sephiri faeleng ea boleng;
  • e hlalosetse hape nakong ea ho romelloa;
  • bua ka eona ka hare ho deployment/pod;
  • ... phaello!

Hangata e shebahala tjena:

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

Lekunutu le bonolo la Kubernetes le sebelisang litekanyetso tse tsoang ho values.yml

Empa ha re re ha u batle ho hlakisa lekunutu la hau faeleng ea boleng.

Ho na le likhetho tse ngata ha ho tsamaisoa ho hloka senotlolo se arolelanoang, se lokelang ho hlahisoa nakong ea ho kenya.

Mohlala oa puisano oa module-to-module ka holimo, ha ho lakatsehe ho arolelana lekunutu ka ntle ho ts'ebetso. Ka hona, ke ntho e lakatsehang haholo hore Helm e be le mekhoa ea ho iketsetsa lekunutu ntle le ho e hlalosa ka kotloloho.

Hook

Li-hook li u lumella ho tsamaisa khoutu libakeng tse itseng nakong ea ts'ebetso ea ho kenya. Ho ka 'na ha e-ba le mosebetsi oa tlhophiso o lokelang ho etsoa ka mor'a ho kenngoa ha pele, kapa mohlomong ho hloekisa ho lokela ho etsoa pele ho etsoa ntlafatso leha e le efe.

Ho rarolla bothata ba rona ba ho eketsa senotlolo se hlahisitsoeng nakong ea ho kenya, li-hook tsa pele ho ho kenya li loketse. Empa ho na le ts'oarelo: u ke ke ua iketsetsa lekunutu hang ha ho ntlafatsoa. Hooks e tla sebetsa ntlafatsong e ngoe le e ngoe.

Haeba u hlahisitse lekunutu la hau mme kopo ea hau ea pele ha e so etsahale joale emisa ho bala, hook ea pele e tla u sebeletsa hantle.

Empa haeba sephiri e le karolo ea ntlafatso (mohlomong tšobotsi e ncha e neng e le sieo nakong ea ho kenya), joale ke lihlong hore u ke ke ua etsa hook ea pele ea ho kenya e sebetsang hanngoe feela.

Mesebetsi

Mesebetsi ea Helm e u lumella ho kenyelletsa likarolo tse fapaneng tsa mongolo ho lingoliloeng tsa hau tsa thomello.

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

Mohlala ona o bontša hore boleng ba sephiri sa apiKey e tla ba UUID e ncha e hlahisoang nakong ea ho kenya.

Helm e kenyelletsa laeborari ea likarolo tse pharalletseng e sebelisang likarolo tse makatsang tsa template ea GO le laeborari ea likarolo tsa Sprig ho theha phepelo ea tloaelo.

Mosebetsi oa ho batla

E kenyellelitsoe ho Helm 3.1 Mosebetsi oa ho batla, e u lumellang hore u kope thomello e teng le:

  • hlahloba boteng ba lisebelisoa;
  • khutlisetsa boleng ba sesebelisoa se seng se le teng bakeng sa tšebeliso ea morao.

Re sebelisa bokhoni bona ka bobeli, re ka theha lekunutu la nako e le 'ngoe, le hlahisoang ka matla!

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

Nako le nako ha ntlafatso e ncha e sebelisoa ho seva, Helm e tla hlahisa boleng bo bocha ba lekunutu (haeba ho se sephiri) kapa e sebelise boleng bo teng hape.

Katleho!

Ke eng hape eo u lokelang ho e bala ka sehlooho:

  1. Methati e meraro ea autoscaling ho Kubernetes le mokhoa oa ho e sebelisa ka nepo.
  2. Kubernetes ka moea oa piracy ka template bakeng sa ts'ebetsong.
  3. Seteishene sa rona se Around Kubernetes ho Telegraph.

Source: www.habr.com

Eketsa ka tlhaloso