Apa gampang lan trep kanggo nyiyapake kluster Kubernetes? Ngumumake addon-operator

Apa gampang lan trep kanggo nyiyapake kluster Kubernetes? Ngumumake addon-operator

Sawise cangkang-operator kita makili sedulure - operator addon. Iki minangka proyek Open Source sing digunakake kanggo nginstal komponen sistem ing kluster Kubernetes, sing bisa diarani ing tembung umum - add-ons.

Napa nambah tambahan apa wae?

Ora ana rahasia manawa Kubernetes dudu produk kabeh-ing-siji sing wis siap, lan macem-macem tambahan bakal dibutuhake kanggo mbangun kluster "diwasa". Operator addon bakal mbantu sampeyan nginstal, ngatur lan njaga addon kasebut anyar.

Kabutuhan kanggo komponen tambahan ing kluster dijamin ing nglaporake Colleagues driusha. Ing cendhak, kahanan karo Kubernetes ing wayahe kaya sing prasaja "muter-muter" instalasi, sampeyan bisa njaluk karo komponen metu saka kothak, kanggo pangembang lan testing, sampeyan bisa nambah Ingress, nanging kanggo lengkap-fledged. instalasi, sing bisa ngomong "produksi wis siyap", sampeyan kudu nambah karo rolas tambahan beda: soko kanggo ngawasi, soko kanggo log, ora lali ingress lan cert-manager, pilih kelompok kelenjar, nambah kawicaksanan jaringan, nambah setelan sysctl lan pod autoscaler ...

Apa gampang lan trep kanggo nyiyapake kluster Kubernetes? Ngumumake addon-operator

Apa spesifik nggarap wong-wong mau?

Minangka laku nuduhake, prakara ora mung siji instalasi. Kanggo karya nyaman karo kluster, add-ons kudu dianyari, dipatèni (dibusak saka kluster), lan sampeyan pengin nyoba soko sadurunge nginstal ing kluster produksi.

Dadi, mungkin Ansible cukup ing kene? Mbok. Nanging tambahan lengkap ing kasus umum ora manggon tanpa setelan. Setelan iki bisa beda-beda gumantung saka varian kluster (aws, gce, azure, bare-metal, do, ...). Sawetara setelan ora bisa disetel sadurunge - kudu dipikolehi saka kluster. Lan kluster ora statis: kanggo sawetara setelan, sampeyan kudu ngetutake owah-owahan kasebut. Lan ing kene Ansible ora cukup: sampeyan butuh program sing manggon ing kluster, i.e. operator Kubernetes.

Sing wis nyoba cangkang-operator, dheweke bakal ujar manawa tugas nginstal lan nganyari setelan tambahan lan ngawasi bisa dirampungake kanthi nggunakake pancingan kanggo operator cangkang. Sampeyan bisa nulis skrip sing bakal nindakake kondisional kubectl apply lan tindakake, contone, ConfigMap, ngendi setelan bakal disimpen. Iki kira-kira sing ditindakake ing addon-operator.

Kepiye cara diatur ing addon-operator?

Nggawe solusi anyar, kita nerusake saka prinsip ing ngisor iki:

  • Pemasang tambahan kudu ndhukung konfigurasi templating lan deklaratif. Kita ora nggawe skrip sihir sing nginstal add-on. Addon-operator nggunakake Helm kanggo nginstal addons. Kanggo nginstal, sampeyan kudu nggawe grafik lan pilih nilai sing bakal digunakake kanggo konfigurasi.
  • Setelan bisa ngasilake nalika nginstal, padha bisa njaluk saka kluster, utawa nampa nganyarinalika ngawasi sumber daya kluster. Operasi kasebut bisa ditindakake kanthi nggunakake pancing.
  • Setelan bisa nyimpen ing kluster. Kanggo nyimpen setelan ing kluster, digawe ConfigMap / addon-operator lan Addon-operator ngawasi owah-owahan kanggo ConfigMap iki. Addon-operator menehi akses pancingan kanggo setelan liwat konvènsi prasaja.
  • Tambahan gumantung setelan. Yen setelan wis diganti, banjur Addon-operator muter metu Helm-chart karo nilai anyar. Kita disebut kombinasi saka grafik Helm, nilai kanggo iku, lan pancingan modul (ndeleng ngisor kanggo rincian liyane).
  • Pementasan. Ora ana skrip rilis sihir. Mekanisme nganyari padha karo aplikasi biasa - ngumpulake add-ons lan addon-operator menyang gambar, tag lan muter metu.
  • Kontrol asil. Addon-operator bisa bali metrik kanggo Prometheus.

Apa tambahan ing addon-operator?

Apa wae sing nambah fitur anyar menyang kluster bisa dianggep minangka tambahan. Contone, instalasi Ingress minangka conto tambahan. Iki bisa dadi operator utawa pengontrol kanthi CRD dhewe: prometheus-operator, cert-manager, kube-controller-manager, lsp. Utawa sing cilik nanging luwih gampang digunakake, kayata mesin fotokopi rahasia sing nyalin rahasia pendaptaran menyang ruang jeneng anyar, utawa tuner sysctl sing nyetel paramèter sysctl ing simpul anyar.

Kanggo ngleksanakake tambahan, Addon-operator nyedhiyakake sawetara konsep:

  • Bagan helm digunakake kanggo nginstal macem-macem piranti lunak menyang kluster - contone, Prometheus, Grafana, nginx-ingress. Yen komponen sing dikarepake duwe grafik Helm, banjur nginstal nggunakake Addon-operator bakal gampang banget.
  • panyimpenan nilai. Bagan helm biasane duwe macem-macem setelan sing bisa diganti kanthi wektu. Addon-operator ndhukung nyimpen setelan iki lan nglacak owah-owahan kanggo ngreset grafik Helm karo nilai anyar.
  • Pancingan iku file eksekusi sing Addon-operator mbukak ing acara lan sing ngakses nyimpen nilai. Pancing bisa nonton owah-owahan ing kluster lan nganyari nilai ing toko nilai. Sing. nggunakake pancing, sampeyan bisa nindakake panemuan kanggo ngumpulake nilai saka kluster nalika wiwitan utawa ing jadwal, utawa sampeyan bisa nindakake panemuan terus-terusan, ngumpulake nilai saka kluster adhedhasar owah-owahan ing kluster.
  • Modul minangka gabungan saka grafik Helm, panyimpenan nilai, lan pancingan. Modul bisa diaktifake lan dipateni. Mateni modul yaiku mbusak kabeh rilis Helm-chart. Modul bisa nyakup dhewe kanthi dinamis, umpamane, yen kabeh modul sing dibutuhake diaktifake utawa yen panemuan nemokake paramèter sing dibutuhake ing pancingan - iki ditindakake kanthi nggunakake skrip aktif tambahan.
  • Pancing Global. Iki minangka pancingan "dhewe", ora kalebu ing modul lan duwe akses menyang toko nilai global, nilai sing kasedhiya kanggo kabeh pancingan ing modul.

Kepiye bagean kasebut bisa digunakake bebarengan? Coba gambar saka dokumentasi:

Apa gampang lan trep kanggo nyiyapake kluster Kubernetes? Ngumumake addon-operator

Ana rong skenario kerja:

  1. Pancing global dipicu dening acara - contone, nalika sumber ing kluster diganti. Pancing iki nangani owah-owahan lan nulis nilai anyar menyang toko nilai global. Addon-operator sok dong mirsani sing nyimpen global wis diganti lan mbukak kabeh modul. Saben modul nggunakake pancingan kanggo nemtokake manawa kudu diaktifake lan nganyari toko nilai. Yen modul diaktifake, banjur Addon-operator miwiti panginstalan Helm-chart. Ing wektu sing padha, nilai saka panyimpenan modul lan saka panyimpenan global kasedhiya ing grafik Helm.
  2. Skenario kapindho luwih prasaja: pancing modul dipicu dening acara, ngganti nilai ing toko nilai modul. Addon-operator sok dong mirsani iki lan miwiti grafik Helm karo nilai dianyari.

Tambahan bisa dileksanakake minangka pancing siji, utawa minangka grafik Helm siji, utawa malah minangka sawetara modul gumantung - gumantung saka kerumitan komponen sing diinstal ing kluster lan tingkat keluwesan konfigurasi sing dikarepake. Contone, ing repositori (/ contone) ana add-on sysctl-tuner, kang dipun ginakaken loro minangka modul prasaja karo pancing lan Helm-chart, lan nggunakake nyimpen nilai, kang ndadekake iku bisa kanggo nambah setelan dening editing ConfigMap.

Pangiriman nganyari

A words sawetara bab organisasi nganyari komponen sing Addon-operator nginstal.

Kanggo mbukak Addon-operator ing kluster, sampeyan kudu ngumpulake gambar kanthi tambahan minangka file pancing lan denah Helm, nambah file binar addon-operator lan kabeh sing perlu kanggo pancingan: bash, kubectl, jq, python lsp. Salajengipun, gambar iki bisa digulung metu menyang kluster minangka aplikasi normal, lan paling kamungkinan sampeyan bakal pengin ngatur siji utawa skema tagging liyane. Yen ana sawetara klompok, pendekatan sing padha karo aplikasi bisa uga cocog: release anyar, versi anyar, bukak kabeh klompok lan ndandani gambar Pods. Nanging, ing kasus rolling metu menyang nomer pinunjul saka kluster, konsep poto-nganyari saka saluran luwih cocok kanggo kita.

Kita wis nyiyapake kaya iki:

  • Saluran iku ateges pengenal sing bisa disetel kanggo apa wae (contone, dev / stage / ea / stabil).
  • Jeneng saluran minangka tag gambar. Yen sampeyan kudu nganyari saluran, gambar anyar digawe lan diwenehi jeneng saluran.
  • Nalika gambar anyar katon ing pendaptaran, Addon-operator maneh lan miwiti karo gambar anyar.

Iki dudu praktik paling apik, kaya sing ditulis ing Dokumentasi Kubernetes. Iku ora dianjurake kanggo nindakake iki, nanging kita ngomong bab aplikasi normal sing manggon ing siji kluster. Ing cilik saka Addon-operator, aplikasi akeh Deployments kasebar ing kluster, lan poto-nganyari mbantu akeh lan nggawe urip luwih gampang.

Saluran bantuan lan ing testing: yen ana kluster tambahan, sampeyan bisa nyetel menyang saluran stage lan muter nganyari menyang sadurunge muter metu kanggo saluran ea и stable. Yen karo kluster ing saluran ea ana kesalahan, sampeyan bisa ngganti menyang stablenalika masalah karo kluster iki lagi diselidiki. Yen kluster dijupuk saka dhukungan aktif, banjur pindhah menyang saluran "beku" - contone, freeze-2019-03-20.

Saliyane nganyari pancingan lan denah Helm, sampeyan bisa uga kudu nganyari lan komponen pihak katelu. Contone, sampeyan ngeweruhi bug ing simpul-eksportir kondisional lan malah ngerti carane kanggo nambal. Banjur kita mbukak PR lan ngenteni rilis anyar kanggo ngliwati kabeh kluster lan nambah versi gambar. Supaya ora ngenteni tanpa wates, sampeyan bisa mbangun node-eksportir dhewe lan ngalih menyang sadurunge nampa PR.

Umumé, iki bisa ditindakake tanpa Addon-operator, nanging kanthi Addon-operator, modul kanggo nginstal node-exporter bakal katon ing siji gudang, sampeyan bisa nyimpen Dockerfile kanggo mbangun gambar sampeyan ing kana, dadi luwih gampang. kabeh peserta ing proses kanggo ngerti sing mengkono… Lan yen ana sawetara klompok, dadi luwih gampang loro kanggo nyoba PR lan muter metu versi anyar!

Organisasi nganyari komponen iki sukses kanggo kita, nanging skema liyane sing cocog bisa ditindakake - sawise kabeh ing kasus iki addon-operator minangka file binar prasaja.

kesimpulan

Prinsip sing dileksanakake ing Addon-operator ngijini sampeyan kanggo mbangun proses transparan kanggo nggawe, testing, nginstal lan nganyari tambahan ing kluster, padha karo pangembangan aplikasi biasa.

Addons kanggo Addon-operator ing format modul (Helm-chart + pancingan) bisa digawe kasedhiya kanggo umum. Kita, perusahaan Flant, ngrancang nerbitake pangembangan kita ing bentuk tambahan kasebut nalika musim panas. Gabung karo pangembangan ing GitHub (cangkang-operator, operator addon), coba gawe tambahan sampeyan adhedhasar conto и dokumentasi, ngenteni kabar ing Habré lan ing kita saluran YouTube!

PS

Waca uga ing blog kita:

Source: www.habr.com

Add a comment