Gambaran keseluruhan GUI untuk Kubernetes

Gambaran keseluruhan GUI untuk Kubernetes

Untuk kerja sepenuhnya dengan sistem, pengetahuan tentang utiliti baris arahan adalah penting: dalam kes Kubernetes, ini adalah kubectl. Sebaliknya, antara muka grafik yang direka dengan baik dan bertimbang rasa boleh berprestasiΠΎkebanyakan tugas biasa dan membuka peluang tambahan untuk pengendalian sistem.

Tahun lepas kami menerbitkan terjemahan gambaran keseluruhan kecil UI web untuk Kubernetes, bertepatan dengan pengumuman antara muka web Kubernetes WebView. Pengarang artikel itu dan utiliti itu sendiri, Henning Jacobs dari Zalando, hanya meletakkan produk baharu sebagai "kubectl untuk web". Dia mahu mencipta alat dengan keupayaan mesra pengguna untuk interaksi dalam format sokongan teknikal (contohnya, cepat menunjukkan masalah dengan pautan web) dan untuk bertindak balas terhadap insiden, mencari masalah dalam banyak kelompok pada masa yang sama. Keturunannya berkembang pada masa sekarang (terutamanya dengan usaha pengarang sendiri).

Memandangkan kami menyediakan banyak kluster Kubernetes dalam pelbagai saiz, kami juga berminat untuk dapat menyediakan alat visual kepada pelanggan kami. Apabila memilih antara muka yang sesuai, ciri berikut adalah kunci untuk kami:

  • sokongan untuk pembezaan hak pengguna (RBAC);
  • visualisasi keadaan ruang nama dan primitif Kubernetes standard (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC);
  • mendapat akses kepada baris arahan di dalam pod;
  • melihat log buah;
  • lihat status pod (describe status);
  • mengeluarkan buah polong.

Fungsi lain, seperti melihat sumber yang digunakan (dalam konteks pod / pengawal / ruang nama), mencipta / mengedit primitif K8, tidak berkaitan dalam aliran kerja kami.

Kami akan memulakan semakan dengan Papan Pemuka Kubernetes klasik, yang merupakan standard kami. Memandangkan dunia tidak berdiam diri (yang bermakna Kubernetes mempunyai lebih banyak GUI baharu), kami juga akan bercakap tentang alternatif semasanya, meringkaskan segala-galanya dalam jadual perbandingan di penghujung artikel.

NB: Dalam semakan, kami tidak akan mengulangi dengan penyelesaian yang telah dipertimbangkan dalam artikel terakhir, walau bagaimanapun, demi kesempurnaan, pilihan yang berkaitan daripadanya (K8Dash, Octant, Kubernetes Web View) disertakan dalam jadual akhir.

1. Papan Pemuka Kubernetes

  • Halaman dokumentasi;
  • repositori (8000+ bintang GitHub);
  • Lesen: Apache 2.0;
  • Ringkasnya: "Antara muka web universal untuk kelompok Kubernetes. Ia membolehkan pengguna mengurus dan menyelesaikan masalah aplikasi yang berjalan dalam kluster, serta mengurus kluster itu sendiri."

Gambaran keseluruhan GUI untuk Kubernetes

Ini adalah panel tujuan umum yang diliputi oleh pengarang Kubernetes dalam dokumentasi rasmi (tetapi tidak boleh digunakan lalai). Ia direka bentuk untuk keperluan operasi harian dan penyahpepijatan aplikasi dalam kelompok. Di rumah, kami menggunakannya sebagai alat visual ringan sepenuhnya yang membolehkan kami menyediakan pembangun akses yang diperlukan dan mencukupi kepada kluster. Keupayaannya meliputi semua keperluan mereka yang timbul dalam proses penggunaan kluster (dalam artikel ini kami menunjukkan beberapa ciri panel). Seperti yang anda fikirkan, ini bermakna ia memenuhi semua keperluan kami yang disenaraikan di atas.

Antara ciri utama Papan Pemuka Kubernetes:

  • Navigasi: lihat objek utama K8 dalam konteks ruang nama.
  • Jika anda mempunyai hak pentadbir, panel menunjukkan nod, ruang nama dan Jilid Berterusan. Untuk nod, statistik tersedia tentang penggunaan memori, pemproses, peruntukan sumber, metrik, status, peristiwa, dsb.
  • Lihat aplikasi yang digunakan dalam ruang nama mengikut jenisnya (Deployment, StatefulSet, dll.), hubungan antara mereka (ReplicaSet, Horizontal Pod Autoscaler), statistik dan maklumat umum dan diperibadikan.
  • Lihat perkhidmatan dan Ingress, serta hubungannya dengan pod dan titik akhir.
  • Lihat objek dan storan fail: Kelantangan Berterusan dan Tuntutan Kelantangan Berterusan.
  • Lihat dan edit ConfigMap dan Rahsia.
  • Lihat log.
  • Akses baris perintah dalam bekas.

Kelemahan yang ketara (bagaimanapun, bukan untuk kami) ialah tiada sokongan untuk kerja berbilang kelompok. Projek ini dibangunkan secara aktif oleh komuniti dan mengekalkan ciri yang berkaitan dengan keluaran versi baharu dan spesifikasi API Kubernetes: versi terkini panel ialah v2.0.1 22 Mei 2020 - Diuji untuk keserasian dengan Kubernetes 1.18.

2. Lens

Gambaran keseluruhan GUI untuk Kubernetes

Projek ini diletakkan sebagai persekitaran pembangunan bersepadu (IDE) yang lengkap untuk Kubernetes. Selain itu, ia dioptimumkan untuk berfungsi dengan banyak kluster dan sebilangan besar pod berjalan di dalamnya (diuji pada 25 pod).

Ciri/keupayaan utama Lens:

  • Aplikasi kendiri yang tidak memerlukan pemasangan apa-apa di dalam kelompok (lebih tepat lagi, Prometheus akan diperlukan untuk mendapatkan semua metrik, tetapi pemasangan sedia ada juga boleh digunakan untuk ini). Pemasangan "utama" dibuat pada komputer peribadi yang menjalankan Linux, macOS atau Windows.
  • Pengurusan berbilang kluster (beratus-ratus kluster disokong).
  • Visualisasi keadaan gugusan dalam masa nyata.
  • Graf dan aliran penggunaan sumber dengan sejarah berdasarkan Prometheus terbina dalam.
  • Akses kepada baris arahan bekas dan pada nod kelompok.
  • Sokongan penuh untuk Kubernetes RBAC.

Keluaran semasa - 3.5.0 bertarikh 16 Jun 2020 Asalnya dicipta oleh Kontena, hari ini semua harta intelek telah dipindahkan ke organisasi khas Makmal Lakend, yang dipanggil "satu kesatuan geeks dan ahli teknologi asli awan", yang bertanggungjawab untuk "pemeliharaan dan ketersediaan perisian dan produk Sumber Terbuka Kontena."

Lens ialah projek kedua paling popular di GitHub daripada GUI untuk kategori Kubernetes, "kehilangan" hanya Papan Pemuka Kubernets itu sendiri. Semua penyelesaian Sumber Terbuka lain yang bukan daripada kategori CLI* adalah jauh lebih rendah dari segi populariti.

* Lihat tentang K9 dalam bahagian bonus ulasan.

3. Kubernetik

Gambaran keseluruhan GUI untuk Kubernetes

Ini ialah aplikasi proprietari yang dipasang pada komputer peribadi (Linux, macOS, Windows disokong). Pengarangnya menjanjikan penggantian lengkap utiliti baris arahan, dan dengan itu - tidak perlu mengingati arahan dan juga peningkatan kelajuan sepuluh kali ganda.

Salah satu ciri menarik alat ini ialah sokongan terbina dalam untuk carta Helm, dan salah satu kelemahannya ialah kekurangan metrik prestasi aplikasi.

Ciri utama Kubernetic:

  • Paparan status kluster yang mudah. Satu skrin untuk melihat semua objek kluster yang berkaitan dan kebergantungannya; status kesediaan merah/hijau untuk semua objek; mod paparan status kelompok dengan kemas kini status masa nyata.
  • Butang tindakan pantas untuk memadam dan menskalakan aplikasi.
  • Sokongan untuk operasi berbilang kelompok.
  • Kerja mudah dengan ruang nama.
  • Sokongan untuk carta Helm dan repositori Helm (termasuk yang peribadi). Memasang dan mengurus carta dalam antara muka web.

Kos semasa produk ialah pembayaran sekali sebanyak 30 euro untuk kegunaannya oleh seorang untuk sebarang bilangan ruang nama dan kelompok.

4. Kubevious

  • Website;
  • Persembahan;
  • repositori (~500 bintang GitHub);
  • Lesen: Apache 2.0
  • Ringkasnya: "Kubevious menjadikan kluster Kubernetes, konfigurasi aplikasi dan paparan status selamat dan mudah difahami."

Gambaran keseluruhan GUI untuk Kubernetes

Idea projek ini adalah untuk mencipta alat yang direka untuk menganalisis dan menyahpepijat konfigurasi aplikasi yang digunakan dalam kelompok. Pengarang memberi tumpuan terutamanya pada pelaksanaan ciri ini, meninggalkan perkara yang lebih umum untuk kemudian.

Ciri dan fungsi utama Kubevious:

  • Visualisasi kluster dalam cara berpusatkan aplikasi: objek berkaitan dalam antara muka dikumpulkan, berbaris dalam hierarki.
  • Paparan visual kebergantungan dalam konfigurasi dan akibat melata daripada perubahannya.
  • Paparan ralat konfigurasi kelompok: penyalahgunaan label, port terlepas, dsb. (Dengan cara ini, jika anda berminat dengan ciri ini, beri perhatian kepada Polaristentang yang kita sudah menulis.)
  • Sebagai tambahan kepada perkara sebelumnya, pengesanan bekas yang berpotensi berbahaya tersedia, i.e. mempunyai terlalu banyak keistimewaan (atribut hostPID, hostNetwork, hostIPC, lekapkan docker.sock dan lain-lain).
  • Sistem carian lanjutan untuk kluster (bukan sahaja dengan nama objek, tetapi juga dengan sifatnya).
  • Alat untuk perancangan kapasiti dan pengoptimuman sumber.
  • "mesin masa" terbina dalam (keupayaan untuk melihat perubahan sebelumnya dalam konfigurasi objek).
  • Pengurusan RBAC dengan jadual saling berkait pangsi Peranan, RoleBindings, ServiceAccounts.
  • Berfungsi dengan hanya satu kluster.

Projek ini mempunyai sejarah yang sangat singkat (keluaran pertama berlaku pada 11 Februari 2020) dan nampaknya terdapat tempoh sama ada penstabilan atau kelembapan dalam pembangunan. Jika versi terdahulu dikeluarkan dengan kerap, maka keluaran terkini (v0.5 15 April 2020) telah ketinggalan daripada kadar pembangunan awal. Ini mungkin disebabkan oleh bilangan penyumbang yang kecil: hanya terdapat 4 daripada mereka dalam sejarah repositori, dan semua kerja sebenar dilakukan oleh seorang.

5. Kubewise

  • Halaman Projek;
  • Lesen: proprietari (akan menjadi Sumber Terbuka);
  • Ringkasnya: "Pelanggan berbilang platform yang mudah untuk Kubernetes."

Gambaran keseluruhan GUI untuk Kubernetes

Produk baharu daripada VMware, pada asalnya dicipta sebagai sebahagian daripada hackathon dalaman (pada Jun 2019). Dipasang pada komputer peribadi, berfungsi berdasarkan Electron (Linux, macOS dan Windows disokong) dan memerlukan kubectl v1.14.0 atau lebih baru.

Ciri utama Kubewise:

  • Interaksi antara muka dengan entiti Kubernetes yang paling biasa digunakan: nod, ruang nama, dsb.
  • Sokongan untuk berbilang fail kubeconfig untuk kluster yang berbeza.
  • Terminal dengan keupayaan untuk menetapkan pembolehubah persekitaran KUBECONFIG.
  • Hasilkan fail kubeconfig tersuai untuk ruang nama yang diberikan.
  • Ciri keselamatan lanjutan (RBAC, kata laluan, akaun perkhidmatan).

Setakat ini, projek itu hanya mempunyai satu keluaran - versi 1.1.0 bertarikh 26 November 2019. Selain itu, penulis merancang untuk segera mengeluarkannya sebagai Sumber Terbuka, tetapi disebabkan masalah dalaman (tidak berkaitan dengan isu teknikal) mereka tidak dapat melakukan ini. Mulai Mei 2020, pengarang sedang mengusahakan keluaran seterusnya dan harus memulakan proses membuka kod pada masa yang sama.

6. OpenShift Console

Gambaran keseluruhan GUI untuk Kubernetes

Walaupun pada hakikatnya antara muka web ini adalah sebahagian daripada pengedaran OpenShift (ia dipasang di sana menggunakan pengendali khas), pengarang diramalkan keupayaan untuk memasang / menggunakannya dalam pemasangan Kubernetes biasa (vanila).

OpenShift Console telah dibangunkan untuk masa yang lama, jadi ia telah menggabungkan banyak ciri. Kami akan menyebut yang utama:

  • Pendekatan antara muka yang dikongsi - dua "perspektif" kemungkinan yang tersedia dalam Konsol: untuk pentadbir dan untuk pembangun. Mod perspektif pembangun mengumpulkan objek dalam bentuk yang lebih mudah difahami untuk pembangun (mengikut aplikasi) dan memfokuskan antara muka pada menyelesaikan tugas biasa seperti menggunakan aplikasi, menjejak status binaan / penggunaan, dan juga mengedit kod melalui Eclipse Che.
  • Pengurusan beban kerja, rangkaian, storan, hak akses.
  • Pemisahan logik untuk beban kerja ke dalam projek dan aplikasi. Dalam salah satu keluaran terkini - v4.3 - muncul khas papan pemuka projek, yang memaparkan data biasa (bilangan dan status penempatan, pod, dsb.; penggunaan sumber dan metrik lain) dalam kepingan projek.
  • Dikemas kini dalam paparan masa nyata keadaan kluster, perubahan (peristiwa) yang telah berlaku di dalamnya; melihat log.
  • Lihat data pemantauan berdasarkan Prometheus, Alertmanager dan Grafana.
  • Pengurusan pengendali yang diwakili dalam operatorhub.
  • Urus binaan yang dijalankan melalui Docker (dari repositori tertentu dengan Dockerfile), S2I atau utiliti luaran sewenang-wenangnya.

NB: Kami tidak menambah yang lain pada perbandingan Pengagihan Kubernetes (contohnya, yang kurang terkenal Kubesphere): walaupun pada hakikatnya GUI boleh menjadi sangat maju di dalamnya, ia biasanya datang sebagai sebahagian daripada timbunan bersepadu sistem yang besar. Walau bagaimanapun, jika anda berpendapat bahawa tiada penyelesaian yang mencukupi yang berfungsi sepenuhnya dalam pemasangan vanila K8s, beritahu kami dalam ulasan.

Bonus

1. Portainer di Kubernetes dalam Beta

  • Website;
  • repositori (~100 bintang GitHub);
  • Lesen: Zlib(?) (sama untuk projek induk).

Projek daripada pasukan Portainer, yang membangunkan antara muka popular dengan nama yang sama untuk bekerja dengan Docker. Memandangkan projek itu berada di peringkat awal pembangunan (versi beta pertama dan satu-satunya keluar 16 April 2020), kami tidak menilai cirinya. Walau bagaimanapun, ia mungkin menarik minat ramai: jika ini mengenai anda, ikuti perkembangannya.

2. Panel Ais

  • Website;
  • Lesen: proprietari;
  • Ringkasnya: "Editor Kubernetes Visual".

Gambaran keseluruhan GUI untuk Kubernetes

Aplikasi desktop muda ini bertujuan untuk menggambarkan dan mengurus sumber Kubernetes dalam masa nyata dengan antara muka seret & lepas yang mudah. Objek yang disokong pada masa ini ialah Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap dan Secret. Tidak lama lagi mereka berjanji untuk menambah sokongan untuk Helm. Kelemahan utama ialah kedekatan kod (ia dijangka membuka "dalam beberapa cara") dan kekurangan sokongan Linux (setakat ini hanya versi untuk Windows dan macOS tersedia, walaupun ini juga kemungkinan besar hanya menunggu masa).

3.k9s

  • Website;
  • Demonstrasi;
  • repositori (~7700 bintang GitHub);
  • Lesen: Apache 2.0;
  • Ringkasnya: "Antara muka konsol untuk Kubernetes yang membolehkan anda mengurus kluster anda dalam gaya."

Gambaran keseluruhan GUI untuk Kubernetes

Utiliti itu hanya berada dalam bahagian bonus semakan atas sebab ia menawarkan GUI konsol. Walau bagaimanapun, pengarang benar-benar memerah maksimum daripada terminal, menawarkan bukan sahaja antara muka mesra pengguna, tetapi juga 6 tema yang dipratentukan, dan sistem lanjutan pintasan papan kekunci dan alias arahan. Pendekatan menyeluruh mereka tidak terhad kepada penampilan: ciri k9s sangat mengagumkan: pengurusan sumber, memaparkan keadaan kluster, memaparkan sumber dalam perwakilan hierarki dengan kebergantungan, melihat log, sokongan RBAC, memperluaskan keupayaan melalui pemalam ... Semua ini menarik kepada komuniti K8 yang luas: bilangan bintang GitHub projek itu hampir sama baiknya dengan Papan Pemuka Kubernetes rasmi!

4. Panel kawalan aplikasi

Dan pada akhir semakan - kategori mini yang berasingan. Ia termasuk dua antara muka web yang direka bukan untuk pengurusan komprehensif gugusan Kubernetes, tetapi untuk mengurus perkara yang digunakan di dalamnya.

Seperti yang anda ketahui, salah satu alat yang paling matang dan meluas untuk menggunakan aplikasi kompleks dalam Kubernetes ialah Helm. Sepanjang tempoh kewujudannya, banyak pakej (Carta Helm) telah terkumpul untuk penggunaan mudah banyak aplikasi popular. Oleh itu, penampilan alat visual yang sesuai yang membolehkan anda menguruskan kitaran hayat carta adalah agak logik.

4.1. Monokular

  • repositori (1300+ bintang GitHub);
  • Lesen: Apache 2.0;
  • Ringkasnya: "Aplikasi web untuk mencari dan menemui carta Helm merentas berbilang repositori. Berfungsi sebagai asas untuk projek hab Helm."

Gambaran keseluruhan GUI untuk Kubernetes

Perkembangan daripada pengarang Helm ini dipasang di Kubernetes dan berfungsi dalam kelompok yang sama, melaksanakan tugas. Walau bagaimanapun, pada masa ini, projek itu hampir tidak dibangunkan. Tujuan utamanya adalah untuk menyokong kewujudan Helm Hub. Untuk keperluan lain, penulis mengesyorkan Kubeapps (lihat di bawah) atau Red Hat Automation Broker (sebahagian daripada OpenShift, tetapi juga tidak lagi dibangunkan).

4.2. Kubeapps

Gambaran keseluruhan GUI untuk Kubernetes

Produk daripada Bitnami, yang turut dipasang dalam gugusan Kubernetes, tetapi berbeza daripada Monokular dalam fokus awalnya untuk bekerja dengan repositori persendirian.

Fungsi dan ciri utama Kubeapps:

  • Lihat dan pasang carta Helm daripada repositori.
  • Semak, kemas kini dan alih keluar aplikasi berasaskan Helm yang dipasang pada kluster.
  • Sokongan untuk repositori carta tersuai dan peribadi (menyokong ChartMuseum dan JFrog Artifactory).
  • Melihat dan bekerja dengan perkhidmatan luaran - daripada Katalog Perkhidmatan dan Broker Perkhidmatan.
  • Menerbitkan aplikasi yang dipasang menggunakan mekanisme Binding Katalog Perkhidmatan.
  • Sokongan untuk pengesahan dan pengasingan hak menggunakan RBAC.

Jadual ringkasan

Di bawah ialah jadual ringkasan di mana kami telah cuba meringkaskan dan mengagregatkan ciri utama antara muka visual sedia ada untuk memudahkan perbandingan:

Gambaran keseluruhan GUI untuk Kubernetes
(Versi dalam talian jadual tersedia di Google Docs.)

Kesimpulan

GUI untuk Kubernetes adalah niche yang agak khusus dan muda. Walau bagaimanapun, ia berkembang dengan sangat aktif: sudah mungkin untuk mencari penyelesaian yang agak matang, dan yang sangat muda, yang masih mempunyai ruang untuk berkembang. Mereka memenuhi pelbagai aplikasi, menawarkan ciri dan rupa yang sesuai dengan hampir setiap citarasa. Kami berharap ulasan ini akan membantu anda memilih alat yang paling sesuai dengan keperluan semasa anda.

PS

Terima kasih kvaps untuk data pada OpenShift Console untuk jadual perbandingan!

Baca juga di blog kami:

Sumber: www.habr.com

Tambah komen