Éta gampang tur merenah pikeun nyiapkeun klaster Kubernetes? Ngumumkeun addon-operator

Éta gampang tur merenah pikeun nyiapkeun klaster Kubernetes? Ngumumkeun addon-operator

Sanggeus cangkang-operator urang nampilkeun lanceukna - addon-operator. Ieu mangrupikeun proyék Open Source anu dianggo pikeun masang komponén sistem kana klaster Kubernetes, anu tiasa disebat tambihan.

Naha aya tambahan pisan?

Henteu aya rahasia yén Kubernetes sanés mangrupikeun produk anu siap-siap, sareng pikeun ngawangun klaster "dewasa" anjeun peryogi sababaraha tambihan. Addon-operator bakal ngabantosan anjeun masang, ngonpigurasikeun sareng tetep énggal-énggal ieu.

Kabutuhan komponén tambahan dina klaster diungkabkeun dina laporan kolega driusha. Pondokna, kaayaan sareng Kubernetes ayeuna sapertos kitu pikeun pamasangan "muter-muter" saderhana anjeun tiasa kéngingkeun komponén-komponén di luar kotak, pikeun pamekar sareng uji anjeun tiasa nambihan Ingress, tapi pikeun instalasi lengkep, ngeunaan anu mana. Anjeun tiasa nyarios "produksi anjeun parantos siap", anjeun kedah tambahkeun sareng belasan tambihan anu béda: hal pikeun ngawaskeun, hal pikeun logging, ulah hilap ingress sareng manajer sertifikasi, pilih grup titik, tambahkeun kawijakan jaringan, usum kalawan sysctl na pod pangaturan autoscaler ...

Éta gampang tur merenah pikeun nyiapkeun klaster Kubernetes? Ngumumkeun addon-operator

Naon spésifik gawé bareng aranjeunna?

Sakumaha prakték nunjukkeun, masalahna henteu dugi ka hiji pamasangan. Pikeun dianggo kalayan nyaman sareng kluster, tambihan kedah diénggalan, ditumpurkeun (dihapus tina kluster), sareng anjeun badé nguji sababaraha sateuacan dipasang dina kluster produksi.

Janten, panginten Ansible bakal cekap di dieu? Tiasa waé. Tapi Sacara umum, tambihan lengkep henteu hirup tanpa setélan. Setélan ieu tiasa bénten gumantung kana varian klaster (aws, gce, azure, bare-metal, do, ...). Sababaraha setélan teu tiasa dieusian sateuacanna; aranjeunna kedah dicandak tina kluster. Sareng klasterna henteu statik: pikeun sababaraha setélan anjeun kedah ngawas parobihan. Sareng di dieu Ansible parantos leungit: anjeun peryogi program anu hirup dina klaster, i.e. Operator Kubernetes.

Jalma anu diusahakeun eta di gawe cangkang-operator, aranjeunna bakal nyarios yén tugas masang sareng ngamutahirkeun tambihan sareng setélan ngawaskeun tiasa direngsekeun lengkep nganggo kait pikeun cangkang-operator. Anjeun tiasa nyerat naskah anu bakal ngalakukeun kondisional kubectl apply jeung monitor, contona, ConfigMap, dimana setélan bakal disimpen. Ieu kira-kira anu dilaksanakeun dina addon-operator.

Kumaha ieu diatur dina addon-operator?

Nalika nyiptakeun solusi énggal, kami teraskeun tina prinsip-prinsip ieu:

  • Pamasang tambihan kedah ngadukung templating jeung konfigurasi déklaratif. Kami henteu ngadamel skrip sihir anu masang tambihan. Addon-operator ngagunakeun Helm pikeun install addons. Pikeun masang, anjeun kedah nyiptakeun bagan sareng pilih nilai anu bakal dianggo pikeun konfigurasi.
  • Setélan tiasa ngahasilkeun on instalasi, Anjeun tiasa meunang ti klasteratawa nampi apdet, ngawaskeun sumberdaya klaster. Operasi ieu tiasa dilaksanakeun nganggo hook.
  • Setélan tiasa nyimpen dina klaster. Pikeun nyimpen setelan dina klaster, dijieun ConfigMap / addon-operator jeung Addon-operator ngawas parobahan ConfigMap ieu. Addon-operator méré aksés kait kana setélan ngagunakeun konvénsi basajan.
  • Tambihan gumantung kana setélan. Lamun setélan geus robah, lajeng Addon-operator gulung kaluar grafik Helm kalawan nilai anyar. Kami disebut kombinasi bagan Helm, nilai pikeun éta sareng ngaitkeun modul (tingali di handap pikeun langkung rinci).
  • Pementasan. Henteu aya skrip pelepasan sihir. Mékanisme pembaruan sami sareng aplikasi biasa - kumpulkeun tambihan sareng operator addon kana gambar, tag aranjeunna sareng gulung kaluar.
  • Kontrol hasil. Addon-operator bisa nyadiakeun metrics pikeun Prometheus.

Naon padding dina addon-operator?

Tambihanana tiasa dianggap naon waé anu nambihan fungsi anyar kana kluster. Salaku conto, masang Ingress mangrupikeun conto anu saé pikeun tambihan. Ieu tiasa wae operator atawa controller kalawan CRD sorangan: prometheus-operator, cert-manajer, kube-controller-manajer, jsb. Atawa hal leutik, tapi gampang ngagunakeun - contona, copier rusiah, nu nyalin Rahasia pendaptaran ka namespaces anyar, atawa sysctl tuner, nu configures sysctl parameter on titik anyar.

Pikeun nerapkeun add-ons, Addon-operator nyayogikeun sababaraha konsép:

  • Bagan helm dipaké pikeun masang rupa software kana klaster - contona, Prometheus, Grafana, nginx-ingress. Upami komponén anu diperyogikeun gaduh bagan Helm, teras masangna nganggo Addon-operator bakal saderhana pisan.
  • Panyimpen nilai. Bagan Helm biasana gaduh seueur setélan anu béda-béda anu tiasa robih kana waktosna. Addon-operator ngarojong nyimpen setelan ieu sarta bisa ngawas parobahanana guna reinstall Helm bagan kalawan nilai anyar.
  • Kait mangrupikeun file anu tiasa dieksekusi anu dijalankeun ku Addon-operator dina acara sareng anu ngaksés toko nilai. Kait tiasa ngawas parobahan dina klaster sareng ngapdet nilai dina toko nilai. Jelema. Nganggo kait, anjeun tiasa mendakan pikeun ngumpulkeun nilai tina kluster nalika ngamimitian atanapi numutkeun jadwal, atanapi anjeun tiasa ngalakukeun panemuan kontinyu, ngumpulkeun nilai tina kluster dumasar kana parobahan dina kluster.
  • Modul mangrupakeun kombinasi grafik Helm, toko nilai na hook. Modul tiasa diaktipkeun atanapi ditumpurkeun. Nganonaktipkeun modul hartina mupus sadaya release bagan Helm. Modul tiasa ngaktifkeun diri sacara dinamis, contona, upami sadaya modul anu diperyogikeun diaktipkeun atanapi upami panemuan mendakan parameter anu diperyogikeun dina kait - ieu dilakukeun nganggo skrip anu diaktipkeun bantu.
  • Pancing global. Ieu mangrupikeun pancing "sorangan", aranjeunna henteu kalebet dina modul sareng gaduh aksés ka toko nilai global, nilai-nilai anu sayogi pikeun sadaya kait dina modul.

Kumaha bagian-bagian ieu gawé bareng? Hayu urang tingali gambar tina dokuméntasi:

Éta gampang tur merenah pikeun nyiapkeun klaster Kubernetes? Ngumumkeun addon-operator

Aya dua skenario gawé:

  1. Hook global dipicu ku hiji acara - contona, lamun sumberdaya di klaster robah. Kait ieu ngolah parobihan sareng nyerat nilai énggal ka toko nilai global. Addon-operator notices yén gudang global geus robah tur mimitian sagala modul. Masing-masing modul, nganggo kaitna, nangtukeun naha éta kedah diaktipkeun sareng ngapdet toko nilaina. Mun modul nu diaktipkeun, dimimitian Addon-operator pamasangan grafik Helm. Dina hal ieu, bagan Helm ngagaduhan aksés kana nilai tina panyimpenan modul sareng tina panyimpenan global.
  2. Skenario kadua langkung saderhana: hook modul dipicu ku kajadian sareng ngarobih nilai dina toko nilai modul. Addon-operator notices ieu sareng ngajalankeun bagan Helm kalawan nilai diropéa.

tambahan bisa dilaksanakeun salaku hiji hook tunggal, atawa salaku salah sahiji Helm chart, atawa malah salaku sababaraha modul gumantung - ieu gumantung kana pajeulitna komponén nu dipasang dina klaster jeung dina tingkat nu dipikahoyong tina kalenturan konfigurasi. Contona, dina gudang (/conto) aya tambihan sysctl-tuner, anu dilaksanakeun duanana salaku modul saderhana sareng pancing sareng bagan Helm, sareng nganggo toko nilai, anu ngamungkinkeun anjeun nambihan setélan ku ngédit ConfigMap.

Pangiriman apdet

Sababaraha kecap ngeunaan ngatur apdet komponén nu Addon-operator installs.

Pikeun ngajalankeun Addon-operator dina klaster a, anjeun peryogi ngawangun hiji gambar kalawan tambahan dina bentuk file bagan hook sareng Helm, tambahkeun file binér addon-operator sareng sadaya anu anjeun peryogikeun pikeun pancing: bash, kubectl, jq, python jsb. Lajeng gambar ieu bisa digulung kaluar ka klaster salaku aplikasi biasa, sarta paling dipikaresep anjeun bakal hoyong ngatur hiji atawa skéma tagging sejen. Upami aya sababaraha klaster, pendekatan anu sami sareng aplikasi tiasa cocog: sékrési énggal, versi énggal, angkat ka sadaya klaster sareng ngabenerkeun gambar Pods. Sanajan kitu, dina kasus rollout kana jumlah signifikan tina klaster, konsép timer ngamutahirkeun tina saluran éta leuwih cocog pikeun urang.

Ieu kumaha urang ngalakukeunana:

  • Hiji saluran dasarna mangrupa identifier nu bisa disetel ka nanaon (Contona, dev / panggung / ea / stabil).
  • Ngaran saluran nyaéta tag gambar. Nalika anjeun kedah ngaluncurkeun apdet kana saluran, gambar énggal dirakit sareng ditandaan nami saluran.
  • Lamun gambar anyar nembongan dina pendaptaran, Addon-operator restarted tur dibuka kalawan gambar anyar.

Ieu sanés prakték pangsaéna, sakumaha anu diserat dina dokuméntasi Kubernetes. Ieu henteu dianjurkeun pikeun ngalakukeun ieu, tapi urang ngobrol ngeunaan aplikasi biasa nu hirup dina klaster sarua. Dina kasus Addon-operator, hiji aplikasi loba Deployments sumebar di sakuliah klaster, sarta timer Ngamutahirkeun mantuan pisan jeung ngajadikeun hirup leuwih gampang.

Saluran mantuan jeung dina nguji: lamun aya klaster bantu, Anjeun bisa ngonpigurasikeun ka saluran stage sareng gulung apdet kana éta sateuacan ngagulung ka saluran ea и stable. Lamun kalawan klaster dina saluran ea kasalahan lumangsung, Anjeun bisa pindah ka stable, Bari masalah jeung klaster ieu keur ditalungtik. Upami klaster dikaluarkeun tina dukungan aktip, éta ngalih ka saluran "beku" - contona, freeze-2019-03-20.

Salian ngamutahirkeun hook na Helm grafik, Anjeun bisa jadi kudu update jeung komponén pihak katilu. Contona, anjeun perhatikeun bug dina node-éksportir kondisional komo terang kumaha nambalna. Salajengna, anjeun muka PR sareng ngantosan sékrési énggal ngalangkungan sadaya klaster sareng ningkatkeun versi gambar. Supados teu ngantosan salamina, anjeun tiasa ngawangun node-éksportir anjeun sareng ngalih ka éta sateuacan nampi PR.

Sacara umum, ieu tiasa dilakukeun tanpa Addon-operator, tapi kalayan Addon-operator modul pikeun masang node-éksportir bakal katingali dina hiji gudang, Dockerfile pikeun ngawangun gambar anjeun tiasa disimpen langsung di dinya, janten langkung gampang pikeun sadaya pamilon. prosés ngartos naon kajadian ... Tur upami aya sababaraha klaster, lajeng janten gampang duanana nguji PR anjeun sarta gulung kaluar versi anyar!

Organisasi ngamutahirkeun komponén ieu suksés pikeun kami, tapi skéma anu sanés anu cocog tiasa dilaksanakeun - saatosna dina hal ieu Addon-operator mangrupakeun file binér basajan.

kacindekan

Prinsip dilaksanakeun dina Addon-operator ngidinan Anjeun pikeun ngawangun prosés transparan pikeun nyieun, nguji, masang jeung ngamutahirkeun add-on dina klaster, sarupa jeung prosés ngembangkeun aplikasi biasa.

Add-ons pikeun Addon-operator dina format modul (bagan Helm + hook) bisa dijieun sadia umum. Kami, perusahaan Flant, ngarencanakeun pikeun nyebarkeun pamekaran kami dina bentuk tambahan sapertos dina usum panas. Gabung pamekaran dina GitHub (cangkang-operator, addon-operator), coba nyieun tambahan sorangan dumasar kana conto и dokuméntasi, antosan warta on Habré na on kami saluran YouTube!

PS

Baca ogé dina blog urang:

sumber: www.habr.com

Tambahkeun komentar