Ṣe o rọrun ati irọrun lati ṣeto iṣupọ Kubernetes kan? Akede addon-operator

Ṣe o rọrun ati irọrun lati ṣeto iṣupọ Kubernetes kan? Akede addon-operator

Lẹhin ikarahun-onišẹ a fi ẹgbọn rẹ han - addoni-onišẹ. Eyi jẹ iṣẹ akanṣe Orisun Orisun ti o lo lati fi sori ẹrọ awọn paati eto sinu iṣupọ Kubernetes, eyiti o le pe ni awọn afikun.

Kini idi ti awọn afikun eyikeyi rara?

Kii ṣe aṣiri pe Kubernetes kii ṣe ọja ti o ṣetan gbogbo-ni-ọkan, ati lati kọ iṣupọ “agbalagba” iwọ yoo nilo ọpọlọpọ awọn afikun. Addon-operator yoo ṣe iranlọwọ fun ọ lati fi sori ẹrọ, tunto ati tọju awọn afikun wọnyi titi di oni.

Awọn iwulo fun awọn afikun awọn paati ninu iṣupọ naa ti ṣafihan ni ijabọ awọn ẹlẹgbẹ driusha. Ni kukuru, ipo pẹlu Kubernetes ni akoko yii jẹ pe fun fifi sori ẹrọ ti o rọrun "ṣere ni ayika" o le gba pẹlu awọn eroja ti o wa ninu apoti, fun awọn olupilẹṣẹ ati idanwo o le fi Ingress kun, ṣugbọn fun fifi sori ẹrọ ni kikun, nipa eyiti o le sọ “iṣẹjade rẹ ti ṣetan”, o nilo lati ṣafikun pẹlu mejila mejila oriṣiriṣi awọn afikun: nkan fun ibojuwo, nkan fun gedu, maṣe gbagbe ingress ati oluṣakoso ijẹrisi, yan awọn ẹgbẹ ti awọn apa, ṣafikun awọn eto imulo nẹtiwọọki, akoko pẹlu sysctl ati awọn eto autoscaler pod...

Ṣe o rọrun ati irọrun lati ṣeto iṣupọ Kubernetes kan? Akede addon-operator

Kini awọn pato ti ṣiṣẹ pẹlu wọn?

Gẹgẹbi iṣe fihan, ọrọ naa ko ni opin si fifi sori ẹrọ kan. Lati ṣiṣẹ ni itunu pẹlu iṣupọ, awọn afikun yoo nilo lati ni imudojuiwọn, alaabo (yiyọ kuro ninu iṣupọ), ati pe iwọ yoo fẹ lati ṣe idanwo diẹ ninu ṣaaju fifi wọn sinu iṣupọ iṣelọpọ.

Nitorinaa, boya Ansible yoo to nibi? Boya. Sugbon Ni gbogbogbo, awọn afikun-kikun ko gbe laisi awọn eto. Awọn eto wọnyi le yatọ si da lori iyatọ iṣupọ (aws, gce, azure, bare-metal, do, ...). Diẹ ninu awọn eto ko le ṣe pato tẹlẹ; wọn gbọdọ gba lati inu iṣupọ. Ati iṣupọ naa kii ṣe aimi: fun diẹ ninu awọn eto iwọ yoo ni lati ṣe atẹle awọn ayipada. Ati pe nibi Ansible ti sonu tẹlẹ: o nilo eto kan ti o ngbe inu iṣupọ, i.e. Kubernetes onišẹ.

Awọn ti o gbiyanju ni iṣẹ ikarahun-onišẹ, wọn yoo sọ pe awọn iṣẹ-ṣiṣe ti fifi sori ẹrọ ati mimu dojuiwọn awọn afikun ati awọn eto ibojuwo le jẹ ipinnu patapata nipa lilo ìkọ fun ikarahun-onišẹ. O le kọ iwe afọwọkọ kan ti yoo ṣe ipo kubectl apply ati atẹle, fun apẹẹrẹ, ConfigMap, nibiti awọn eto yoo wa ni ipamọ. Eyi jẹ isunmọ ohun ti a ṣe imuse ni oniṣẹ ẹrọ addon.

Bawo ni a ṣe ṣeto eyi ni addon-operator?

Nigbati o ba ṣẹda ojutu tuntun, a tẹsiwaju lati awọn ipilẹ wọnyi:

  • Awọn fifi sori ẹrọ gbọdọ ṣe atilẹyin templating ati declarative iṣeto ni. A ko ṣe awọn iwe afọwọkọ idan ti o fi awọn afikun sii. Addoni-operator nlo Helm lati fi sori ẹrọ addons. Lati fi sori ẹrọ, o nilo lati ṣẹda chart kan ki o yan awọn iye ti yoo ṣee lo fun iṣeto ni.
  • Eto le jẹ ina lori fifi sori, wọn le gba lati iṣupọ, tabi gba awọn imudojuiwọn, Mimojuto iṣupọ oro. Awọn iṣẹ wọnyi le ṣee ṣe nipa lilo awọn kio.
  • Eto le jẹ itaja ni a iṣupọ. Lati fi awọn eto pamọ sinu iṣupọ, a ṣẹda ConfigMap/addon-operator ati pe Addoni-operator ṣe iyipada si ConfigMap yii. Addon-operator n fun awọn kio wọle si awọn eto nipa lilo awọn apejọ ti o rọrun.
  • Afikun da lori awọn eto. Ti awọn eto ba ti yipada, lẹhinna Addon-operator yipo iwe apẹrẹ Helm pẹlu awọn iye tuntun. A pe apapo ti iwe aworan Helm, awọn iye fun rẹ ati kio module kan (wo isalẹ fun awọn alaye diẹ sii).
  • Iṣeto. Ko si awọn iwe afọwọkọ idasilẹ idan. Ilana imudojuiwọn jẹ iru si ohun elo deede - gba awọn afikun ati awọn oniṣẹ addon sinu aworan kan, taagi wọn ki o yi wọn jade.
  • Iṣakoso abajade. Addon-operator le pese awọn metiriki fun Prometheus.

Kini padding ni addon-operator?

Afikun le ṣe akiyesi ohunkohun ti o ṣafikun awọn iṣẹ tuntun si iṣupọ. Fun apẹẹrẹ, fifi Ingress sori ẹrọ jẹ apẹẹrẹ nla ti afikun kan. Eyi le jẹ oniṣẹ tabi oludari eyikeyi pẹlu CRD tirẹ: prometheus-operator, cert-faili, kube-controller- manager, bbl Tabi nkan kekere, ṣugbọn rọrun lati lo - fun apẹẹrẹ, olupilẹṣẹ ikoko, eyiti o daakọ awọn aṣiri iforukọsilẹ si awọn aaye orukọ tuntun, tabi tuner sysctl, eyiti o ṣe atunto awọn aye sysctl lori awọn apa tuntun.

Lati ṣe awọn afikun, Addon-operator pese awọn imọran pupọ:

  • Helm aworan atọka ti a lo lati fi sori ẹrọ ọpọlọpọ sọfitiwia sinu iṣupọ - fun apẹẹrẹ, Prometheus, Grafana, nginx-ingress. Ti paati ti a beere ba ni chart Helm, lẹhinna fifi sori ẹrọ ni lilo Addon-operator yoo rọrun pupọ.
  • Ibi ipamọ awọn iye. Awọn shatti Helm nigbagbogbo ni ọpọlọpọ awọn eto oriṣiriṣi ti o le yipada ni akoko pupọ. Addon-operator ṣe atilẹyin titoju awọn eto wọnyi ati pe o le ṣe atẹle awọn ayipada wọn lati tun fi iwe-aṣẹ Helm sori ẹrọ pẹlu awọn iye tuntun.
  • Awọn ìkọ jẹ awọn faili ti o le ṣiṣẹ ti Addon-operator nṣiṣẹ lori awọn iṣẹlẹ ati pe o wọle si ibi-itaja awọn iye. Kio le ṣe atẹle awọn ayipada ninu iṣupọ ati mu awọn iye ti o wa ninu awọn iye owo dojuiwọn. Awon. Lilo awọn ìkọ, o le ṣe awari lati gba awọn iye lati inu iṣupọ ni ibẹrẹ tabi ni ibamu si iṣeto kan, tabi o le ṣe awari lilọsiwaju, gbigba awọn iye lati inu iṣupọ ti o da lori awọn ayipada ninu iṣupọ.
  • Module jẹ apapo ti iwe aworan Helm kan, ile itaja iye ati awọn iwọ. Awọn modulu le ṣiṣẹ tabi alaabo. Pa module kan kuro tumọ si piparẹ gbogbo awọn idasilẹ iwe aworan Helm. Awọn modulu le mu ara wọn ṣiṣẹ ni agbara, fun apẹẹrẹ, ti gbogbo awọn modulu ti o nilo ba ṣiṣẹ tabi ti iṣawari ba ti rii awọn aye pataki ninu awọn kio - eyi ni a ṣe ni lilo iwe afọwọkọ ti o ṣiṣẹ iranlọwọ.
  • Agbaye ìkọ. Iwọnyi jẹ awọn kio “lori ara wọn”, wọn ko wa ninu awọn modulu ati ni iwọle si ile-itaja iye agbaye kan, awọn idiyele eyiti o wa fun gbogbo awọn iwọ ni awọn modulu.

Bawo ni awọn ẹya wọnyi ṣe ṣiṣẹ pọ? Jẹ ki a wo aworan lati inu iwe:

Ṣe o rọrun ati irọrun lati ṣeto iṣupọ Kubernetes kan? Akede addon-operator

Awọn oju iṣẹlẹ iṣẹ meji wa:

  1. Kio agbaye jẹ okunfa nipasẹ iṣẹlẹ kan - fun apẹẹrẹ, nigbati orisun kan ninu iṣupọ ba yipada. Kio yii ṣe ilana awọn ayipada ati kọ awọn iye tuntun si ile-itaja iye agbaye. Addon-operator ṣe akiyesi pe ibi ipamọ agbaye ti yipada ati bẹrẹ gbogbo awọn modulu. Module kọọkan, ni lilo awọn kio rẹ, pinnu boya o nilo lati mu ṣiṣẹ ati ṣe imudojuiwọn ile-itaja awọn iye rẹ. Ti o ba ti module wa ni sise, bẹrẹ Addoni-operator fifi sori ẹrọ ti Helm chart. Ni ọran yii, chart Helm ni iwọle si awọn iye lati ibi ipamọ module ati lati ibi ipamọ agbaye.
  2. Oju iṣẹlẹ keji rọrun: kio module kan jẹ okunfa nipasẹ iṣẹlẹ kan ati yi awọn iye pada ninu awọn ile itaja iye module. Addon-operator ṣe akiyesi eyi ati ṣe ifilọlẹ iwe apẹrẹ Helm pẹlu awọn iye imudojuiwọn.

Awọn afikun le ti wa ni muse bi ọkan nikan kio, tabi bi ọkan Helm chart, tabi ani bi orisirisi ti o gbẹkẹle modulu - Eyi da lori idiju ti paati ti a fi sori ẹrọ ni iṣupọ ati lori ipele ti o fẹ ti irọrun iṣeto ni. Fun apẹẹrẹ, ninu ibi ipamọ (/ apeere) afikun afikun sysctl-tuner wa, eyiti o jẹ imuse mejeeji bi module ti o rọrun pẹlu kio kan ati chart Helm, ati lilo awọn ile itaja iye, eyiti o jẹ ki o ṣee ṣe lati ṣafikun awọn eto nipasẹ ṣiṣatunṣe ConfigMap.

Ifijiṣẹ awọn imudojuiwọn

Awọn ọrọ diẹ nipa siseto awọn imudojuiwọn paati ti Addon-operator nfi sii.

Lati ṣiṣẹ Addon-operator ni iṣupọ, o nilo kọ aworan kan pẹlu awọn afikun ni irisi kio ati awọn faili chart Helm, ṣafikun faili alakomeji kan addon-operator ati ohun gbogbo ti o nilo fun kio: bash, kubectl, jq, python ati be be lo. Lẹhinna aworan yii le ṣe yiyi si iṣupọ bi ohun elo deede, ati pe o ṣee ṣe julọ iwọ yoo fẹ lati ṣeto ọkan tabi ero fifi aami si miiran. Ti awọn iṣupọ diẹ ba wa, ọna kanna bi pẹlu awọn ohun elo le dara: itusilẹ tuntun, ẹya tuntun, lọ si gbogbo awọn iṣupọ ati ṣatunṣe aworan ti awọn Pods. Sibẹsibẹ, ninu ọran ti yiyi si nọmba pataki ti awọn iṣupọ, imọran ti imudojuiwọn ara ẹni lati ikanni kan dara julọ fun wa.

Eyi ni bii a ṣe ṣe:

  • Ikanni jẹ pataki idamo ti o le ṣeto si ohunkohun (fun apẹẹrẹ, dev/stage/ea/idurosinsin).
  • Orukọ ikanni jẹ aami aworan. Nigbati o ba nilo lati yi awọn imudojuiwọn pada si ikanni kan, aworan titun kan yoo pejọ ati samisi pẹlu orukọ ikanni.
  • Nigbati aworan tuntun ba han ninu iforukọsilẹ, Adon-operator ti tun bẹrẹ ati ṣe ifilọlẹ pẹlu aworan tuntun.

Eyi kii ṣe iṣe ti o dara julọ, bi a ti kọ sinu Kubernetes iwe aṣẹ. O ti wa ni ko niyanju lati ṣe eyi, sugbon a ti wa ni sọrọ nipa ohun elo deede ti o ngbe ni iṣupọ kanna. Ninu ọran ti Addon-operator, ohun elo kan jẹ ọpọlọpọ Awọn imuṣiṣẹ ti o tuka kaakiri awọn iṣupọ, ati imudara ara ẹni ṣe iranlọwọ pupọ ati mu ki igbesi aye rọrun.

Awọn ikanni iranlọwọ ati awọn ninu idanwo: ti o ba wa iṣupọ iranlọwọ, o le tunto si ikanni naa stage ki o si yi awọn imudojuiwọn sinu rẹ ṣaaju ki o to yiyi jade si awọn ikanni ea и stable. Ti o ba pẹlu iṣupọ lori ikanni ea aṣiṣe waye, o le yipada si stable, lakoko ti iṣoro pẹlu iṣupọ yii n ṣe iwadii. Ti a ba mu iṣupọ naa kuro ni atilẹyin lọwọ, o yipada si ikanni “o tutunini” rẹ - fun apẹẹrẹ, freeze-2019-03-20.

Ni afikun si imudojuiwọn awọn kio ati awọn shatti Helm, o le nilo imudojuiwọn ati kẹta paati. Fún àpẹrẹ, o ṣàkíyèsí kòkòrò kan nínú olùtajà-àtajawò àídájú àti pé ó tiẹ̀ ṣàyẹ̀wò bí a ṣe lè pa ẹ́ mọ́. Nigbamii ti, o ṣii PR ati pe o nduro fun itusilẹ tuntun lati lọ nipasẹ gbogbo awọn iṣupọ ati mu ẹya ti aworan naa pọ si. Ni ibere ki o má ṣe duro titilai, o le kọ agbejade-apere rẹ ki o yipada si ṣaaju gbigba PR naa.

Ni gbogbogbo, eyi le ṣee ṣe laisi Addon-operator, ṣugbọn pẹlu Addon-operator module fun fifi sori ẹrọ atajasita yoo han ni ibi ipamọ kan, Dockerfile fun kikọ aworan rẹ le wa ni ipamọ ọtun nibẹ, o di rọrun fun gbogbo awọn olukopa ninu ilana lati ni oye ohun ti o ṣẹlẹ… Ati pe ti ọpọlọpọ awọn iṣupọ ba wa, lẹhinna o rọrun lati ṣe idanwo mejeeji PR rẹ ki o yi ẹya tuntun jade!

Eto isọdọtun paati n ṣiṣẹ ni aṣeyọri fun wa, ṣugbọn eyikeyi ero miiran ti o yẹ le ṣe imuse - lẹhinna ninu ọran yii Addon-operator jẹ faili alakomeji ti o rọrun.

ipari

Awọn ilana ti a ṣe imuse ni Addon-operator gba ọ laaye lati kọ ilana sihin fun ṣiṣẹda, idanwo, fifi sori ẹrọ ati imudojuiwọn awọn afikun ni iṣupọ kan, iru si awọn ilana idagbasoke ti awọn ohun elo deede.

Awọn afikun-afikun fun Addon-operator ni ọna kika module (Chat Helm + awọn iwọ) le ṣee ṣe ni gbangba. A, ile-iṣẹ Flant, gbero lati ṣe atẹjade awọn idagbasoke wa ni irisi iru awọn afikun ni akoko ooru. Darapọ mọ idagbasoke lori GitHub (ikarahun-onišẹ, addoni-onišẹ), gbiyanju lati ṣe afikun ti ara rẹ da lori apẹẹrẹ и iwe, duro fun awọn iroyin lori Habré ati lori wa YouTube ikanni!

PS

Ka tun lori bulọọgi wa:

orisun: www.habr.com

Fi ọrọìwòye kun