Apèsi sou entèfas pou Kubernetes

Apèsi sou entèfas pou Kubernetes

Pou travay konplètman ak sistèm nan, li enpòtan konnen sèvis piblik liy lòd: nan ka Kubernetes, sa a se kubectl. Nan lòt men an, byen fèt, byen panse-soti GUI ka fèоpi fò nan travay abityèl yo ak louvri opòtinite adisyonèl lè sistèm opere.

Ane pase nou te pibliye yon tradiksyon yon ti apèsi sou entènèt UI pou Kubernetes, dedye a anons la nan koòdone entènèt la Kubernetes WebView. Otè atik sa a ak sèvis piblik li menm, Henning Jacobs ki soti nan konpayi Zalando, te pozisyone nouvo pwodwi a kòm yon "kubectl pou entènèt la." Li te vle kreye yon zouti ki gen kapasite pratik pou entèraksyon nan yon fòma sipò teknik (pa egzanp, byen vit montre yon pwoblèm ak yon lyen entènèt) ak pou reponn a ensidan, chèche pwoblèm nan anpil grap an menm tan. Se lide li toujou ap devlope jodi a (sitou pa otè a li menm).

Sèvi anpil gwoup Kubernetes diferan gwosè, nou enterese tou nan kapasite pou bay kliyan yon zouti travay vizyèl. Lè w ap chwazi yon koòdone apwopriye, karakteristik sa yo te kle pou nou:

  • sipò pou diferansyasyon dwa itilizatè (RBAC);
  • vizyalizasyon eta namespace ak estanda Kubernetes primitif (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC);
  • jwenn aksè nan liy lòd la andedan gous la;
  • gade mòso bwa gous;
  • gade estati gous yo (describe status);
  • retire gous.

Lòt fonksyon, tankou gade resous konsome (pa gous / kontwolè / espas non), kreye / modifye primitif K8s, yo pa enpòtan nan workflow nou an.

Nou pral kòmanse revizyon an ak klasik Kubernetes Dashboard la, ki adopte kòm estanda nou an. Piske mond lan pa kanpe (ki vle di nouvo GUI ap parèt nan Kubernetes), nou pral pale tou sou altènativ aktyèl li yo, rezime tout bagay nan yon tablo konparatif nan fen atik la.

NB: Nan revizyon an nou pa pral repete solisyon sa yo ki te deja konsidere nan dènye atik, sepandan - pou dedomajman pou la konplè - opsyon ki enpòtan nan li (K8Dash, Octant, Kubernetes Web View) yo enkli nan tablo final la.

1. Kubernetes Dashboard

  • Paj dokimantasyon;
  • depo (8000+ zetwal GitHub);
  • Lisans: Apache 2.0;
  • Nan ti bout tan: "Yon koòdone entènèt inivèsèl pou grap Kubernetes. Li pèmèt itilizatè yo jere ak rezoud pwoblèm aplikasyon ki kouri nan yon gwoup, osi byen ke jere gwoup la tèt li."

Apèsi sou entèfas pou Kubernetes

Sa a se yon panèl objektif jeneral ki kouvri pa otè Kubernetes yo nan dokiman ofisyèl la (men pa deplwaye default). Li fèt pou bezwen operasyon chak jou ak debogaj aplikasyon nan yon gwoup. Nou itilize li isit la kòm yon zouti vizyèl ki lejè ki pèmèt nou bay devlopè aksè ki nesesè ak ase nan gwoup la. Kapasite li yo kouvri tout bezwen yo ki parèt nan pwosesis pou yo sèvi ak gwoup la (nan atik sa a nou demontre kèk karakteristik panèl la). Kòm ou ka fasilman devine, sa vle di ke li satisfè tout kondisyon nou yo ki nan lis pi wo a.

Pami karakteristik prensipal yo nan Kubernetes Dashboard:

  • Navigasyon: Gade objè prensipal K8s yo pa espas non.
  • Si ou gen dwa administratè, panèl la montre nœuds, espas non, ak volim ki pèsistan. Estatistik sou itilizasyon memwa ak processeur, alokasyon resous, mezi, estati, evènman, elatriye yo disponib pou nœuds.
  • Gade aplikasyon yo deplwaye nan espas non yo dapre kalite yo (Deplwaman, StatefulSet, elatriye), koneksyon ant yo (ReplicaSet, Horizontal Pod Autoscaler), estatistik jeneral ak pèsonalize ak enfòmasyon.
  • Gade sèvis ak Ingress, ansanm ak koneksyon yo ak gous ak pwen final yo.
  • Gade objè fichye yo ak depo: Volim Persistent ak Reklamasyon Volim Persistent.
  • Gade ak modifye ConfigMap ak sekrè.
  • Gade mòso bwa.
  • Aksè liy kòmand nan resipyan.

Yon dezavantaj enpòtan (pa pou nou, sepandan) se ke pa gen okenn sipò pou operasyon milti-cluster. Pwojè a devlope aktivman pa kominote a epi li sipòte fonksyon aktyèl yo ak lage nouvo vèsyon ak espesifikasyon API Kubernetes: dènye vèsyon panèl la se v2.0.1 22 me 2020 - Teste pou konpatibilite ak Kubernetes 1.18.

2. Lantiy

Apèsi sou entèfas pou Kubernetes

Pwojè a pozisyone kòm yon anviwònman devlopman entegre (IDE) konplè pou Kubernetes. Anplis, li optimize pou travay ak anpil grap ak yon gwo kantite gous kouri nan yo (teste sou 25 mil gous).

Karakteristik prensipal / kapasite nan Lens:

  • Yon aplikasyon otonòm ki pa mande pou enstalasyon anyen andedan gwoup la (plis jisteman, Prometheus oblije jwenn tout mezi, men ou ka itilize tou yon enstalasyon ki egziste deja pou sa). Enstalasyon "prensipal" la fèt sou yon òdinatè pèsonèl ki kouri Linux, macOS oswa Windows.
  • Jesyon milti grap (dè santèn de grap sipòte).
  • Vizyalizasyon eta gwoup la an tan reyèl.
  • Grafik itilizasyon resous ak tandans ak istwa ki baze sou Prometheus entegre.
  • Aksè nan liy lòd veso yo ak nœuds gwoup yo.
  • Sipò konplè pou Kubernetes RBAC.

Version aktyèl - 3.5.0 ki gen dat 16 jen 2020. Premye vèsyon an te kreye nan Kontena, e jodi a tout pwopriyete entelektyèl yo te transfere nan yon òganizasyon espesyal. Lakend Labs, yo rele "yon asosyasyon nwaj natif natal ak teknològ," ki responsab pou "konsève ak fè disponib lojisyèl Open Source ak pwodwi Kontena."

Lens se dezyèm pwojè ki pi popilè sou GitHub nan kategori GUI pou Kubernetes, dèyè sèlman Kubernets Dashboard li menm. Tout lòt solisyon Open Source ki pa nan kategori CLI* yo siyifikativman enferyè nan popilarite.

*Gade sou K9 yo nan pati bonis revizyon an.

3. Kubernetic

Apèsi sou entèfas pou Kubernetes

Sa a se yon aplikasyon propriétaire ki enstale sou yon òdinatè pèsonèl (Linux, macOS, Windows yo sipòte). Otè li yo pwomèt yon ranplasman konplè sou sèvis piblik liy lòd la, epi avèk li, pa bezwen sonje kòmandman e menm yon ogmantasyon diz fwa nan vitès opere.

Youn nan karakteristik yo enteresan nan zouti a se sipò entegre pou tablo Helm, men youn nan dezavantaj yo se mank de mezi pèfòmans aplikasyon an.

Karakteristik prensipal Kubernetic:

  • Ekspozisyon pratik nan estati gwoup la. Yon ekran pou wè tout objè gwoup ki gen rapò ak depandans yo; wouj/vèt eta pare pou tout objè; Mòd pou wè estati gwoup la ak mizajou estati an tan reyèl.
  • Bouton aksyon rapid pou efase ak dekale aplikasyon an.
  • Sipò pou operasyon milti-cluster.
  • Travay fasil ak espas non yo.
  • Sipò pou tablo Helm ak depo Helm (ki gen ladan yo prive). Enstalasyon ak jesyon tablo nan koòdone entènèt la.

Pri aktyèl la nan pwodwi a se yon peman yon sèl fwa nan 30 ero pou itilize li pa yon sèl moun pou nenpòt ki kantite namespaces ak grap.

4. Kubevious

  • Lokal la;
  • Prezantasyon;
  • depo (~500 zetwal GitHub);
  • Lisans: Apache 2.0
  • Nan yon ti bout bwa: "Kubevious fè gwoup Kubernetes, konfigirasyon aplikasyon an, ak vizibilite nan estati aplikasyon an sekirite epi fasil pou konprann."

Apèsi sou entèfas pou Kubernetes

Lide pwojè a se kreye yon zouti ki fèt pou analize ak debug konfigirasyon aplikasyon yo deplwaye nan yon gwoup. Otè yo konsantre prensipalman sou aplikasyon an nan karakteristik sa yo, kite bagay ki pi jeneral pou pita.

Karakteristik kle ak fonksyon Kubevious:

  • Vizyalize gwoup la nan yon fason ki santre sou aplikasyon: objè ki konekte nan koòdone a yo gwoupe nan yon yerachi.
  • Vizyèlman montre depandans nan konfigirasyon ak konsekans kaskad chanjman yo.
  • Montre erè konfigirasyon gwoup: itilizasyon kòrèk etikèt, pò rate, elatriye. (Bon wout la, si w enterese nan karakteristik sa a, peye atansyon sou Etwal Polèsou ki nou deja ekri.)
  • Anplis de sa nan pwen anvan an, deteksyon nan resipyan potansyèlman danjere ki disponib, i.e. gen twòp privilèj (atribi hostPID, hostNetwork, hostIPC, monte docker.sock elatriye).
  • Yon sistèm rechèch gwoup avanse (pa sèlman pa non objè, men tou pa pwopriyete yo).
  • Zouti pou planifikasyon kapasite ak optimize resous yo.
  • "Machin tan" entegre (kapasite pou wè chanjman ki te fèt deja nan konfigirasyon objè yo).
  • Jere RBAC lè l sèvi avèk yon tablo rezime ki konekte soti nan Wòl, RoleBindings, ServiceAccounts.
  • Travay sèlman ak yon gwoup.

Pwojè a gen yon istwa trè kout (premye lage a te fèt 11 fevriye 2020) e li sanble ke te gen yon peryòd swa estabilizasyon oswa ralentissement nan devlopman. Si vèsyon anvan yo te pibliye souvan, lè sa a dènye lage (v0.5 ki gen dat 15 avril 2020) te tonbe dèyè vitès inisyal devlopman an. Sa a se pwobableman akòz ti kantite kontribitè yo: nan istwa a nan repozitwa a gen sèlman 4 nan yo, ak tout travay aktyèl la fèt pa yon sèl moun.

5. Kubewise

  • Paj pwojè;
  • Lisans: propriétaires (ap vin Open Source);
  • Nan yon bref: "Yon senp kliyan milti-platfòm pou Kubernetes."

Apèsi sou entèfas pou Kubernetes

Yon nouvo pwodwi soti nan VMware, orijinèlman te kreye kòm yon pati nan yon Hackathon entèn (nan mwa jen 2019). Enstale sou yon òdinatè pèsonèl, travay sou baz la Elèktron (sipòte pa Linux, macOS ak Windows) epi li mande pou kubectl v1.14.0 oswa pita.

Karakteristik kle nan Kubewise:

  • Entèaksyon entèfas ak antite Kubernetes ki pi souvan itilize yo: nœuds, espas non, elatriye.
  • Sipò pou plizyè fichye kubeconfig pou diferan gwoup.
  • Tèminal ak kapasite pou mete yon varyab anviwònman an KUBECONFIG.
  • Jenere dosye kubeconfig koutim pou yon espas non bay yo.
  • Karakteristik sekirite avanse (RBAC, modpas, kont sèvis).

Jiskaprezan pwojè a gen yon sèl lage - vèsyon 1.1.0 ki gen dat 26 novanm 2019. Anplis, otè yo te planifye imedyatman lage li kòm Open Source, men akòz pwoblèm entèn (pa gen rapò ak pwoblèm teknik) yo pa t 'kapab fè sa. Apati me 2020, otè yo ap travay sou pwochen lage a epi yo dwe kòmanse pwosesis sous louvri an menm tan an.

6. OpenShift Console

Apèsi sou entèfas pou Kubernetes

Malgre lefèt ke koòdone entènèt sa a se yon pati nan distribisyon an OpenShift (la li enstale lè l sèvi avèk operatè espesyal), otè te bay kapasite pou enstale/sèvi ak li nan enstalasyon regilye (vaniy) Kubernetes.

OpenShift Console te devlope pou yon tan long, kidonk li te enkòpore anpil fonksyon. Se pou nou mansyone prensipal yo:

  • Yon apwòch pataje nan koòdone a - de "pèspektiv" nan kapasite ki disponib nan konsole a: pou administratè ak devlopè. Mode Pèspektiv pwomotè gwoup objè yo nan yon fòm ki pi konpreyansib pou devlopè yo (pa aplikasyon) epi konsantre koòdone a sou rezoud travay tipik tankou deplwaye aplikasyon, swiv estati bati / deplwaman, e menm koreksyon kòd atravè Eclipse Che.
  • Jere chaj travay, rezo, depo, dwa aksè.
  • Separasyon lojik pou chaj travay pwojè ak aplikasyon. Nan youn nan dènye degaje yo - v4.3 - parèt espesyal Pwojè tablodbò, montre done abityèl yo (kantite ak estati deplwaman, gous, elatriye; konsomasyon resous ak lòt mezi) nan yon koup transvèsal nan pwojè yo.
  • Ekspozisyon an tan reyèl mete ajou estati gwoup la ak chanjman (evènman) ki te fèt nan li; gade mòso bwa.
  • Gade done siveyans ki baze sou Prometheus, Alertmanager ak Grafana.
  • Jere operatè yo reprezante nan operatorhub.
  • Jere bati ki kouri atravè Docker (ki soti nan yon depo espesifye ak yon Dockerfile) S2I oswa sèvis piblik abitrè ekstèn.

NB: Nou pa t ajoute lòt moun nan konparezon an Distribisyon Kubernetes (pou egzanp, anpil mwens pi popilè Kubesphere): malgre lefèt ke koòdone nan grafik nan yo ka trè avanse, li anjeneral vini kòm yon pati nan chemine a entegre nan yon gwo sistèm. Sepandan, si ou panse ke kèk solisyon ki konplètman fonksyonèl nan enstalasyon vaniy K8s yo manke, fè nou konnen nan kòmantè yo.

Bonis

1. Portainer sou Kubernetes nan beta

  • Lokal la;
  • depo (~100 zetwal GitHub);
  • Lisans: Zlib(?) (menm ak pwojè paran an).

Yon pwojè nan ekip Portainer la, ki te devlope koòdone popilè a menm non pou travay ak Docker. Depi pwojè a se nan yon etap bonè nan devlopman (premye ak sèlman vèsyon an beta soti 16 avril 2020), nou pa t evalye karakteristik li yo. Sepandan, li ka nan enterè anpil moun: si sa a son tankou ou, swiv devlopman an.

2. IcePanel

  • Lokal la;
  • Lisans: propriétaires;
  • Nan ti bout tan: "Vizyèl editè Kubernetes."

Apèsi sou entèfas pou Kubernetes

Aplikasyon pou Desktop jèn sa a gen pou objaktif pou visualiser ak jere resous Kubernetes an tan reyèl ak yon senp drag & drop koòdone. Objè yo sipòte kounye a se Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap ak sekrè. Yo pwomèt pou ajoute sipò Helm talè. Dezavantaj prensipal yo se ke kòd la fèmen (li espere louvri "nan kèk fòm") ak mank de sipò Linux (jiskaprezan sèlman vèsyon pou Windows ak macOS ki disponib, byenke sa a tou gen plis chans jis yon kesyon de tan).

3. k9s

  • Lokal la;
  • Demonstrasyon;
  • depo (~7700 zetwal GitHub);
  • Lisans: Apache 2.0;
  • Nan yon bref: "Yon koòdone konsole pou Kubernetes ki pèmèt ou jere gwoup ou a nan style."

Apèsi sou entèfas pou Kubernetes

Te sèvis piblik la sèlman enkli nan pati nan bonis nan revizyon an pou rezon ki fè li ofri yon entèfas konsole. Sepandan, otè yo literalman peze pi plis nan tèminal la, ofri pa sèlman yon koòdone pratik, men tou, 6 tèm predefini, ak yon sistèm devlope nan rakoursi klavye ak alyas pou kòmandman. Apwòch konplè yo pa te limite a aparans: kapasite k9s yo bèl enpresyonan: jere resous, montre eta a nan gwoup la, montre resous yo nan yon View yerarchize ak depandans, gade mòso bwa, sipòte RBAC, elaji kapasite atravè grefon... Tout sa a te gou nan kominote a lajè K8s: kantite Pwojè zetwal GitHub la prèske menm jan ak Dashboard ofisyèl Kubernetes!

4. Aplikasyon panno kontwòl

Ak nan fen revizyon an - yon mini-kategori separe. Li gen ladan de koòdone entènèt ki fèt pa pou jesyon konplèks nan grap Kubernetes, men pou jere sa ki deplwaye nan yo.

Kòm ou konnen, youn nan zouti ki pi matirite ak toupatou pou deplwaye aplikasyon konplèks nan Kubernetes se Helm. Pandan peryòd egzistans li, anpil pakè (graphique Helm) te akimile pou deplwaman fasil anpil aplikasyon popilè. Se poutèt sa, li se byen lojik ke zouti vizyèl apwopriye ap parèt ede jere sik lavi a nan tablo yo.

4.1. Monokilè

  • depo (1300+ zetwal GitHub);
  • Lisans: Apache 2.0;
  • Nan yon ti bout bwa: "Aplikasyon entènèt pou chèche ak dekouvri tablo Helm atravè plizyè depo. Sèvi kòm baz pou pwojè Helm hub la."

Apèsi sou entèfas pou Kubernetes

Devlopman sa a soti nan otè yo nan Helm enstale nan Kubernetes epi li kouri nan yon gwoup, fè travay la asiyen. Sepandan, kounye a pwojè a pa devlope ditou. Objektif prensipal li se sipòte egzistans Helm Hub. Pou lòt bezwen, otè yo rekòmande Kubeapps (gade anba a) oswa Red Hat Automation Broker (ki fè pati OpenShift, men tou, pa devlope ankò).

4.2. Kubeapps

  • Lokal la;
  • Prezantasyon;
  • depo (~2100 zetwal GitHub);
  • Lisans: Apache 2.0
  • Nan yon bref: "Dashboard aplikasyon w lan pou Kubernetes."

Apèsi sou entèfas pou Kubernetes

Yon pwodwi ki soti nan Bitnami, ki enstale tou nan yon gwoup Kubernetes, men diferan de Monocular nan konsantre inisyal li sou travay ak depo prive.

Karakteristik kle ak fonksyonalite Kubeapps:

  • Gade epi enstale tablo Helm ki soti nan depo yo.
  • Tcheke, mete ajou epi retire aplikasyon ki baze sou Helm ki enstale sou gwoup la.
  • Sipò pou travay ak depo tablo koutim ak prive (sipòte ChartMuseum ak JFrog Artifactory).
  • Gade ak travay ak sèvis ekstèn - nan Katalòg Sèvis ak Koutye Sèvis.
  • Pibliye aplikasyon enstale lè l sèvi avèk mekanis Sèvis Katalòg Liaisons.
  • Sipò pou otantifikasyon ak separasyon dwa lè l sèvi avèk RBAC.

Tablo final la

Anba a se yon tablo rezime kote nou te eseye rezime ak total kapasite prensipal yo nan koòdone vizyèl ki egziste deja pou fasilite konparezon:

Apèsi sou entèfas pou Kubernetes
(Vèsyon sou entènèt nan tablo a disponib nan Google Docs.)

Konklizyon

Koòdone grafik pou Kubernetes se yon nich olye espesifik ak jèn. Sepandan, li ap devlope trè aktivman: ou ka deja jwenn tou de solisyon jistis matirite ak sa ki trè jèn ki toujou gen plas yo grandi. Yo founi nan yon varyete aplikasyon, ofri karakteristik ak sanble kostim prèske chak gou. Nou espere ke revizyon sa a pral ede w chwazi zouti ki pi byen adapte ak bezwen w kounye a.

PS

Mèsi kvaps pou done OpenShift Console pou tab konparezon an!

Li tou sou blog nou an:

Sous: www.habr.com

Add nouvo kòmantè