Gambaran umum GUI untuk Kubernetes

Gambaran umum GUI untuk Kubernetes

Untuk pekerjaan penuh dengan sistem, pengetahuan tentang utilitas baris perintah itu penting: dalam kasus Kubernetes, ini adalah kubectl. Di sisi lain, antarmuka grafis yang dirancang dengan baik dan bijaksana dapat berfungsiоsebagian besar tugas biasa dan membuka peluang tambahan untuk pengoperasian sistem.

Tahun lalu kami menerbitkan terjemahan ikhtisar kecil UI web untuk Kubernetes, bertepatan dengan pengumuman antarmuka web Tampilan Web Kubernetes. Penulis artikel tersebut dan utilitasnya sendiri, Henning Jacobs dari Zalando, baru saja memposisikan produk baru tersebut sebagai "kubectl untuk web". Dia ingin membuat alat dengan kemampuan yang mudah digunakan untuk interaksi dalam format dukungan teknis (misalnya, dengan cepat menampilkan masalah dengan tautan web) dan untuk menanggapi insiden, mencari masalah di banyak kelompok pada saat yang bersamaan. Keturunannya berkembang saat ini (terutama atas upaya penulis sendiri).

Karena kami melayani banyak kluster Kubernetes dengan berbagai ukuran, kami juga tertarik untuk menyediakan alat visual kepada pelanggan kami. Saat memilih antarmuka yang sesuai, fitur-fitur berikut adalah kunci bagi kami:

  • dukungan untuk diferensiasi hak pengguna (RBAC);
  • visualisasi status namespace dan primitif Kubernetes standar (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC);
  • mendapatkan akses ke baris perintah di dalam pod;
  • melihat log pod;
  • melihat status pod (describe status);
  • menghapus polong.

Fungsi lain, seperti melihat sumber daya yang dikonsumsi (dalam konteks pod/pengontrol/ruang nama), membuat/mengedit primitif K8, tidak relevan dalam alur kerja kami.

Kami akan memulai peninjauan dengan Dasbor Kubernetes klasik, yang merupakan standar kami. Karena dunia tidak berhenti (yang berarti Kubernetes memiliki semakin banyak GUI baru), kami juga akan berbicara tentang alternatifnya saat ini, merangkum semuanya dalam tabel perbandingan di akhir artikel.

NB: Dalam ulasan, kami tidak akan mengulangi solusi yang telah dipertimbangkan artikel terakhir, namun, demi kelengkapan, opsi yang relevan darinya (K8Dash, Octant, Kubernetes Web View) disertakan dalam tabel terakhir.

1. Dasbor Kubernetes

  • halaman dokumentasi;
  • gudang (8000+ bintang GitHub);
  • Lisensi: Apache 2.0;
  • Singkatnya: “Antarmuka web universal untuk kluster Kubernetes. Ini memungkinkan pengguna untuk mengelola dan memecahkan masalah aplikasi yang berjalan di kluster, serta mengelola kluster itu sendiri.”

Gambaran umum GUI untuk Kubernetes

Ini adalah panel tujuan umum yang dicakup oleh penulis Kubernetes dalam dokumentasi resmi (Tetapi tidak dapat diterapkan bawaan). Ini dirancang untuk kebutuhan operasi sehari-hari dan debugging aplikasi dalam sebuah cluster. Di rumah, kami menggunakannya sebagai alat visual ringan lengkap yang memungkinkan kami memberi pengembang akses yang diperlukan dan memadai ke kluster. Kemampuannya mencakup semua kebutuhan mereka yang muncul dalam proses penggunaan cluster (dalam Artikel ini kami mendemonstrasikan beberapa fitur panel). Seperti yang Anda duga, ini berarti memenuhi semua persyaratan kami yang tercantum di atas.

Di antara fitur utama Dasbor Kubernetes:

  • Navigasi: melihat objek utama K8 dalam konteks ruang nama.
  • Jika Anda memiliki hak administrator, panel akan menampilkan node, ruang nama, dan Persistent Volumes. Untuk node, tersedia statistik tentang penggunaan memori, prosesor, alokasi sumber daya, metrik, status, peristiwa, dll.
  • Lihat aplikasi yang di-deploy di namespace menurut jenisnya (Deployment, StatefulSet, dll.), hubungan di antara mereka (ReplicaSet, Horizontal Pod Autoscaler), statistik dan informasi umum dan personal.
  • Lihat layanan dan Ingress, serta hubungannya dengan pod dan endpoint.
  • Melihat objek dan penyimpanan file: Klaim Persistent Volume dan Persistent Volume.
  • Lihat dan edit ConfigMap dan Secret.
  • Lihat log.
  • Akses baris perintah dalam wadah.

Kelemahan yang signifikan (namun, bukan untuk kami) adalah tidak ada dukungan untuk pekerjaan multi-cluster. Proyek ini dikembangkan secara aktif oleh komunitas dan memelihara fitur-fitur yang relevan dengan rilis versi baru dan spesifikasi API Kubernetes: versi panel terbaru adalah v2.0.1 22 Mei 2020 - Diuji kompatibilitasnya dengan Kubernetes 1.18.

2. lensa

Gambaran umum GUI untuk Kubernetes

Proyek ini diposisikan sebagai lingkungan pengembangan terintegrasi (IDE) lengkap untuk Kubernetes. Selain itu, dioptimalkan untuk bekerja dengan banyak klaster dan sejumlah besar pod yang berjalan di dalamnya (diuji pada 25 pod).

Fitur/kemampuan utama Lens:

  • Aplikasi mandiri yang tidak memerlukan penginstalan apa pun di dalam kluster (lebih tepatnya, Prometheus akan diminta untuk mendapatkan semua metrik, tetapi penginstalan yang sudah ada juga dapat digunakan untuk ini). Instalasi "utama" dibuat di komputer pribadi yang menjalankan Linux, macOS atau Windows.
  • Manajemen multi-cluster (mendukung ratusan cluster).
  • Visualisasi keadaan cluster secara real time.
  • Grafik dan tren penggunaan sumber daya dengan riwayat berdasarkan Prometheus bawaan.
  • Akses ke baris perintah kontainer dan node cluster.
  • Dukungan penuh untuk Kubernetes RBAC.

Rilis saat ini - 3.5.0 tanggal 16 Juni 2020 Awalnya dibuat oleh Kontena, hari ini semua kekayaan intelektual telah dialihkan ke organisasi khusus Lab Lakend, yang disebut "persatuan cloud native geeks dan teknolog", yang bertanggung jawab atas "pelestarian dan ketersediaan perangkat lunak dan produk Open Source Kontena."

Lens adalah proyek terpopuler kedua di GitHub dari GUI untuk kategori Kubernetes, “kehilangan” hanya Dasbor Kubernets itu sendiri. Semua solusi Open Source lainnya yang bukan dari kategori CLI* memiliki popularitas yang jauh lebih rendah.

* Lihat tentang K9 di bagian bonus ulasan.

3. Kubernetik

Gambaran umum GUI untuk Kubernetes

Ini adalah aplikasi berpemilik yang diinstal di komputer pribadi (Linux, macOS, Windows didukung). Penulisnya menjanjikan penggantian lengkap utilitas baris perintah, dan dengan itu - tidak perlu mengingat perintah dan bahkan peningkatan kecepatan sepuluh kali lipat.

Salah satu fitur menarik dari alat ini adalah dukungan bawaan untuk grafik Helm, dan salah satu kelemahannya adalah kurangnya metrik kinerja aplikasi.

Fitur utama Kubernetic:

  • Tampilan status cluster yang nyaman. Satu layar untuk melihat semua objek cluster terkait dan dependensinya; status kesiapan merah/hijau untuk semua objek; mode tampilan status cluster dengan pembaruan status waktu nyata.
  • Tombol tindakan cepat untuk menghapus dan menskalakan aplikasi.
  • Dukungan untuk operasi multi-cluster.
  • Pekerjaan sederhana dengan ruang nama.
  • Dukungan untuk grafik Helm dan repositori Helm (termasuk yang pribadi). Menginstal dan mengelola grafik di antarmuka web.

Biaya produk saat ini adalah pembayaran satu kali sebesar 30 euro untuk penggunaannya oleh satu orang untuk sejumlah ruang nama dan kluster.

4. Kubevious

  • Situs web;
  • Презентация;
  • gudang (~500 bintang GitHub);
  • Lisensi: Apache 2.0
  • Singkatnya: "Kubevious membuat kluster Kubernetes, konfigurasi aplikasi, dan tampilan status aman dan mudah dipahami."

Gambaran umum GUI untuk Kubernetes

Gagasan proyek ini adalah membuat alat yang dirancang untuk menganalisis dan men-debug konfigurasi aplikasi yang digunakan dalam sebuah cluster. Penulis berfokus terutama pada penerapan fitur-fitur ini, meninggalkan hal-hal yang lebih umum untuk nanti.

Fitur dan fungsi utama Kubevious:

  • Visualisasi cluster dengan cara yang berpusat pada aplikasi: objek terkait di antarmuka dikelompokkan, berbaris dalam hierarki.
  • Tampilan visual dari dependensi dalam konfigurasi dan konsekuensi yang mengalir dari perubahannya.
  • Tampilan kesalahan konfigurasi kluster: penyalahgunaan label, port yang terlewat, dll. (Ngomong-ngomong, jika Anda tertarik dengan fitur ini, perhatikan Polaristentang yang kita sudah menulis.)
  • Selain poin sebelumnya, pendeteksian wadah yang berpotensi berbahaya juga tersedia, yaitu. memiliki terlalu banyak hak istimewa (atribut hostPID, hostNetwork, hostIPC, gunung docker.sock dll).
  • Sistem pencarian lanjutan untuk cluster (tidak hanya dengan nama objek, tetapi juga dengan propertinya).
  • Alat untuk perencanaan kapasitas dan pengoptimalan sumber daya.
  • "Mesin waktu" bawaan (kemampuan untuk melihat perubahan sebelumnya dalam konfigurasi objek).
  • Manajemen RBAC dengan tabel pivot yang saling terkait dari Roles, RoleBindings, ServiceAccounts.
  • Bekerja dengan hanya satu cluster.

Proyek ini memiliki sejarah yang sangat singkat (rilis pertama dilakukan pada 11 Februari 2020) dan tampaknya telah terjadi periode stabilisasi atau pelambatan dalam pengembangan. Jika versi sebelumnya sering dirilis, maka rilis terbaru (v0.5 15 April 2020) telah tertinggal dari laju awal pembangunan. Ini mungkin karena jumlah kontributor yang sedikit: hanya ada 4 kontributor dalam sejarah repositori, dan semua pekerjaan sebenarnya dilakukan oleh satu orang.

5. Kubewise

  • halaman proyek;
  • Lisensi: berpemilik (akan menjadi Open Source);
  • Singkatnya: "Klien multi-platform sederhana untuk Kubernetes."

Gambaran umum GUI untuk Kubernetes

Produk baru dari VMware, awalnya dibuat sebagai bagian dari hackathon internal (pada Juni 2019). Diinstal di komputer pribadi, berfungsi berdasarkan Elektron (Linux, macOS dan Windows didukung) dan membutuhkan kubectl v1.14.0 atau lebih baru.

Fitur utama Kubewise:

  • Interaksi antarmuka dengan entitas Kubernetes yang paling umum digunakan: node, ruang nama, dll.
  • Dukungan untuk beberapa file kubeconfig untuk cluster yang berbeda.
  • Terminal dengan kemampuan untuk mengatur variabel lingkungan KUBECONFIG.
  • Hasilkan file kubeconfig khusus untuk namespace yang diberikan.
  • Fitur keamanan tingkat lanjut (RBAC, kata sandi, akun layanan).

Sejauh ini, proyek tersebut hanya memiliki satu rilis - versi 1.1.0 tanggal 26 November 2019. Selain itu, penulis berencana untuk segera merilisnya sebagai Open Source, tetapi karena masalah internal (tidak terkait dengan masalah teknis) mereka tidak dapat melakukannya. Mulai Mei 2020, penulis sedang mengerjakan rilis berikutnya dan harus memulai proses pembukaan kode pada saat yang bersamaan.

6. Konsol OpenShift

Gambaran umum GUI untuk Kubernetes

Terlepas dari kenyataan bahwa antarmuka web ini adalah bagian dari distribusi OpenShift (diinstal di sana menggunakan operator khusus), penulis diramalkan kemampuan untuk menginstal / menggunakannya dalam instalasi Kubernetes normal (vanilla).

Konsol OpenShift telah dikembangkan sejak lama, sehingga telah memasukkan banyak fitur. Kami akan menyebutkan yang utama:

  • Pendekatan antarmuka bersama - dua "perspektif" kemungkinan yang tersedia di Konsol: untuk administrator dan untuk pengembang. Mode perspektif pengembang mengelompokkan objek dalam bentuk yang lebih mudah dipahami oleh pengembang (berdasarkan aplikasi) dan memfokuskan antarmuka untuk menyelesaikan tugas umum seperti menerapkan aplikasi, melacak status build/deploy, dan bahkan mengedit kode melalui Eclipse Che.
  • Manajemen beban kerja, jaringan, penyimpanan, hak akses.
  • Pemisahan logis untuk beban kerja ke dalam proyek dan aplikasi. Di salah satu rilis terbaru - v4.3 - muncul khusus Dasbor proyek, yang menampilkan data biasa (jumlah dan status penerapan, pod, dll.; konsumsi sumber daya dan metrik lainnya) dalam irisan proyek.
  • Diperbarui secara real time tampilan keadaan cluster, perubahan (peristiwa) yang terjadi di dalamnya; melihat log.
  • Lihat data pemantauan berdasarkan Prometheus, Alertmanager dan Grafana.
  • Manajemen operator diwakili dalam hub operator.
  • Kelola build yang dijalankan melalui Docker (dari repositori tertentu dengan Dockerfile), S2I atau utilitas eksternal sewenang-wenang.

NB: Kami tidak menambahkan orang lain ke perbandingan distribusi Kubernetes (misalnya, yang kurang terkenal Cubesphere): terlepas dari kenyataan bahwa GUI bisa sangat canggih di dalamnya, biasanya datang sebagai bagian dari tumpukan terintegrasi dari sistem besar. Namun, jika menurut Anda tidak ada cukup solusi yang berfungsi penuh dalam penginstalan vanilla K8s, beri tahu kami di komentar.

Bonus

1. Portainer di Kubernetes dalam versi Beta

  • Situs web;
  • gudang (~100 bintang GitHub);
  • Lisensi: Zlib(?) (sama untuk proyek induk).

Sebuah proyek dari tim Portainer, yang mengembangkan antarmuka populer dengan nama yang sama untuk bekerja dengan Docker. Karena proyek ini berada pada tahap awal pengembangan (versi beta pertama dan satu-satunya keluar 16 April 2020), kami tidak mengevaluasi fitur-fiturnya. Namun, ini mungkin menarik bagi banyak orang: jika ini tentang Anda, ikuti perkembangannya.

2. Panel Es

  • Situs web;
  • Lisensi: hak milik;
  • Singkatnya: "Visual Kubernetes Editor".

Gambaran umum GUI untuk Kubernetes

Aplikasi desktop muda ini bertujuan untuk memvisualisasikan dan mengelola sumber daya Kubernetes secara real time dengan antarmuka seret & lepas yang sederhana. Objek yang didukung saat ini adalah Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap, dan Secret. Segera mereka berjanji akan menambah dukungan untuk Helm. Kerugian utama adalah kedekatan kode (diharapkan membuka "dalam beberapa cara") dan kurangnya dukungan Linux (sejauh ini hanya tersedia versi untuk Windows dan macOS, meskipun ini kemungkinan besar hanya masalah waktu).

3.k9s

  • Situs web;
  • Demonstrasi;
  • gudang (~7700 bintang GitHub);
  • Lisensi: Apache 2.0;
  • Singkatnya: "Antarmuka konsol untuk Kubernetes yang memungkinkan Anda mengelola klaster dengan gaya."

Gambaran umum GUI untuk Kubernetes

Utilitas hanya ada di bagian bonus ulasan karena menawarkan GUI konsol. Namun, penulis benar-benar memaksimalkan terminal, menawarkan tidak hanya antarmuka yang ramah pengguna, tetapi juga 6 tema yang telah ditentukan sebelumnya, dan sistem pintasan keyboard dan alias perintah yang canggih. Pendekatan menyeluruh mereka tidak terbatas pada penampilan: fitur k9 sangat mengesankan: manajemen sumber daya, menampilkan status cluster, menampilkan sumber daya dalam representasi hierarkis dengan dependensi, melihat log, dukungan RBAC, memperluas kemampuan melalui plugin ... Semua ini menarik kepada komunitas K8 yang luas: jumlah bintang proyek GitHub hampir sama baiknya dengan Dasbor Kubernetes resmi!

4. Panel kontrol aplikasi

Dan di akhir ulasan - kategori mini terpisah. Itu termasuk dua antarmuka web yang dirancang bukan untuk manajemen komprehensif cluster Kubernetes, tetapi untuk mengelola apa yang diterapkan di dalamnya.

Seperti yang Anda ketahui, salah satu alat yang paling matang dan tersebar luas untuk menerapkan aplikasi kompleks di Kubernetes adalah Helm. Selama keberadaannya, banyak paket (grafik Helm) telah terakumulasi untuk penyebaran yang mudah banyak aplikasi populer. Oleh karena itu, tampilan alat visual yang sesuai yang memungkinkan Anda mengelola siklus hidup bagan cukup logis.

4.1. Bermata

  • gudang (1300+ bintang GitHub);
  • Lisensi: Apache 2.0;
  • Singkatnya: “Aplikasi web untuk mencari dan menemukan grafik Helm di beberapa repositori. Berfungsi sebagai dasar untuk proyek hub Helm."

Gambaran umum GUI untuk Kubernetes

Pengembangan dari pembuat Helm ini diinstal di Kubernetes dan bekerja dalam cluster yang sama, melakukan tugas tersebut. Namun, saat ini, proyek tersebut hampir tidak berkembang. Tujuan utamanya adalah untuk mendukung keberadaan Helm Hub. Untuk kebutuhan lain, penulis merekomendasikan Kubeapps (lihat di bawah) atau Red Hat Automation Broker (bagian dari OpenShift, tetapi juga tidak lagi dikembangkan).

4.2. Kubeapps

Gambaran umum GUI untuk Kubernetes

Produk dari Bitnami, yang juga dipasang di kluster Kubernetes, tetapi berbeda dari Monocular dalam fokus awalnya bekerja dengan repositori pribadi.

Fungsi dan fitur utama Kubeapps:

  • Lihat dan instal grafik Helm dari repositori.
  • Periksa, perbarui, dan hapus aplikasi berbasis Helm yang diinstal di cluster.
  • Dukungan untuk repositori bagan khusus dan pribadi (mendukung ChartMuseum dan JFrog Artifactory).
  • Melihat dan bekerja dengan layanan eksternal - dari Katalog Layanan dan Pialang Layanan.
  • Menerbitkan aplikasi yang terinstal menggunakan mekanisme Service Catalog Bindings.
  • Dukungan untuk otentikasi dan pemisahan hak menggunakan RBAC.

Tabel ringkasan

Di bawah ini adalah tabel ringkasan tempat kami mencoba meringkas dan menggabungkan fitur-fitur utama antarmuka visual yang ada untuk memfasilitasi perbandingan:

Gambaran umum GUI untuk Kubernetes
(Versi online dari tabel tersedia di Google Dokumen.)

Kesimpulan

GUI untuk Kubernet adalah ceruk yang agak spesifik dan muda. Namun, ini berkembang sangat aktif: sudah mungkin untuk menemukan solusi yang cukup matang, dan solusi yang sangat muda, yang masih memiliki ruang untuk berkembang. Mereka melayani berbagai aplikasi, menawarkan fitur dan tampilan yang sesuai dengan hampir setiap selera. Kami harap ulasan ini akan membantu Anda memilih alat yang paling sesuai dengan kebutuhan Anda saat ini.

PS

Terima kasih kvaps untuk data di Konsol OpenShift untuk tabel perbandingan!

Baca juga di blog kami:

Sumber: www.habr.com

Tambah komentar