Kubernetes için GUI'lere Genel Bakış

Kubernetes için GUI'lere Genel Bakış

Sistemle tam teşekküllü çalışma için, komut satırı yardımcı programlarının bilgisi önemlidir: Kubernetes söz konusu olduğunda, bu kubectl'dir. Öte yandan, iyi tasarlanmış, üzerinde düşünülmüş grafik arayüzler,оolağan görevlerin çoğu ve sistemlerin çalışması için ek fırsatlar açar.

Geçen yıl bir çeviri yayınladık web kullanıcı arayüzüne küçük bir genel bakış Kubernet'ler için, web arayüzünün duyurulmasıyla aynı zamana denk gelecek şekilde zamanlanmış Kubernetes Web Görünümü. Bu makalenin yazarı ve yardımcı programın kendisi, Zalando'dan Henning Jacobs, yeni ürünü "web için kubectl" olarak konumlandırdı. Teknik destek formatında etkileşim (örneğin, sorunu bir web bağlantısıyla hızlı bir şekilde gösterme) ve olaylara yanıt verme, aynı anda birçok kümede sorun arama için kullanıcı dostu yeteneklere sahip bir araç yaratmak istiyordu. Yavrusu şu anda gelişiyor (esas olarak yazarın çabalarıyla).

Çeşitli boyutlarda birçok Kubernetes kümesine hizmet verdiğimiz için, müşterilerimize görsel bir araç sunabilmekle de ilgileniyoruz. Uygun bir arayüz seçerken, aşağıdaki özellikler bizim için çok önemliydi:

  • kullanıcı haklarının farklılaştırılması için destek (RBAC);
  • ad alanı durumunun ve standart Kubernetes temel öğelerinin (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC) görselleştirilmesi;
  • bölme içindeki komut satırına erişim;
  • bölme günlüklerini görüntüleme;
  • bölmelerin durumunu görüntüleyin (describe status);
  • bakla çıkarma.

Tüketilen kaynakları görüntüleme (bölmeler / denetleyiciler / ad alanları bağlamında), K8s ilkellerini oluşturma / düzenleme gibi diğer işlevler iş akışımızla ilgili değildir.

İncelemeye standardımız olan klasik Kubernetes Dashboard ile başlayacağız. Dünya yerinde duramadığı için (bu, Kubernetes'in giderek daha fazla yeni GUI'ye sahip olduğu anlamına gelir), makalenin sonunda her şeyi karşılaştırmalı bir tabloda özetleyerek mevcut alternatiflerinden de bahsedeceğiz.

NB: İncelemede, daha önce ele alınmış olan çözümlerle tekrar etmeyeceğiz. son makale, ancak bütünlük adına, ondan ilgili seçenekler (K8Dash, Octant, Kubernetes Web Görünümü) son tabloya dahil edilmiştir.

1. Kubernetes Panosu

  • Dokümantasyon sayfası;
  • depo (8000+ GitHub yıldızı);
  • Lisans: Apache 2.0;
  • Kısaca: “Kubernetes kümeleri için evrensel web arayüzü. Kullanıcıların hem kümede çalışan uygulamaları yönetmesine ve sorunlarını gidermesine hem de kümenin kendisini yönetmesine olanak tanır."

Kubernetes için GUI'lere Genel Bakış

Bu, resmi belgelerde Kubernetes yazarları tarafından kapsanan genel amaçlı bir paneldir. (Ancak dağıtılamaz varsayılan). Bir kümedeki uygulamaların günlük işletimi ve hata ayıklama gereksinimleri için tasarlanmıştır. Evde, geliştiricilere kümeye gerekli ve yeterli erişimi sağlamamıza izin veren tam teşekküllü, hafif bir görsel araç olarak kullanıyoruz. Yetenekleri, kümeyi kullanma sürecinde ortaya çıkan tüm ihtiyaçlarını karşılar. (bölgesindeki Bu makalede panelin bazı özelliklerini gösterdik). Tahmin edebileceğiniz gibi, bu, yukarıda listelenen tüm gereksinimlerimizi karşıladığı anlamına gelir.

Kubernetes Dashboard'un ana özellikleri arasında:

  • Gezinme: K8'lerin ana nesnelerini ad alanları bağlamında görüntüleyin.
  • Yönetici haklarına sahipseniz panel düğümleri, ad alanlarını ve Kalıcı Birimleri gösterir. Düğümler için bellek, işlemci, kaynak tahsisi, ölçümler, durum, olaylar vb. kullanımıyla ilgili istatistikler mevcuttur.
  • Bir ad alanında dağıtılan uygulamaları türlerine (Dağıtım, StatefulSet vb.), aralarındaki ilişkilere (ReplicaSet, Horizontal Pod Autoscaler), genel ve kişiselleştirilmiş istatistiklere ve bilgilere göre görüntüleyin.
  • Hizmetleri ve Girişlerin yanı sıra bunların bölmeler ve uç noktalarla olan ilişkilerini görüntüleyin.
  • Dosya nesnelerini ve depoları görüntüleyin: Kalıcı Hacim ve Kalıcı Hacim Talebi.
  • ConfigMap ve Secret'ı görüntüleyin ve düzenleyin.
  • Günlükleri görüntüleyin.
  • Konteynerlerde komut satırı erişimi.

Önemli bir dezavantaj (ancak bizim için değil), çoklu küme çalışması için destek olmamasıdır. Proje, topluluk tarafından aktif olarak geliştirilir ve Kubernetes API'sinin yeni sürümlerinin ve teknik özelliklerinin yayınlanmasıyla ilgili özellikleri korur: panelin en son sürümü v2.0.1 22 Mayıs 2020 - Kubernetes 1.18 ile uyumluluk açısından test edildi.

2. mercek

Kubernetes için GUI'lere Genel Bakış

Proje, Kubernetes için eksiksiz bir tümleşik geliştirme ortamı (IDE) olarak konumlandırılmıştır. Ayrıca, birçok kümeyle ve bunların içinde çalışan çok sayıda bölmeyle çalışacak şekilde optimize edilmiştir (25 bölme üzerinde test edilmiştir).

Lens'in ana özellikleri/yetenekleri:

  • Küme içinde herhangi bir kurulum gerektirmeyen bağımsız uygulama (daha doğrusu, tüm ölçümleri almak için Prometheus gerekli olacaktır, ancak bunun için mevcut bir kurulum da kullanılabilir). "Ana" kurulum, Linux, macOS veya Windows çalıştıran bir kişisel bilgisayarda yapılır.
  • Çoklu küme yönetimi (yüzlerce küme desteklenir).
  • Kümenin durumunun gerçek zamanlı olarak görselleştirilmesi.
  • Yerleşik Prometheus'a dayalı geçmişe sahip kaynak kullanım grafikleri ve eğilimleri.
  • Kapsayıcıların komut satırına ve küme düğümlerine erişim.
  • Kubernetes RBAC için tam destek.

Geçerli sürüm - 3.5.0 16 Haziran 2020 tarihli İlk olarak Kontena tarafından oluşturulan, bugün tüm fikri mülkiyet özel bir kuruluşa devredilmiştir. Lakend Laboratuvarları, "Kontena'nın Açık Kaynak yazılım ve ürünlerinin korunmasından ve kullanılabilirliğinden" sorumlu olan "bulut yerel meraklıları ve teknoloji uzmanları birliği" olarak adlandırılır.

Lens, Kubernetes için GUI kategorisinde GitHub'daki en popüler ikinci projedir ve yalnızca Kubernets Dashboard'un kendisini "kaybeder". CLI* kategorisinden olmayan diğer tüm Açık Kaynak çözümlerinin popülaritesi önemli ölçüde düşüktür.

* İncelemenin bonus bölümünde K9'lar hakkında bilgi edinin.

3. Kubernetik

Kubernetes için GUI'lere Genel Bakış

Bu, kişisel bir bilgisayara yüklenen tescilli bir uygulamadır (Linux, macOS, Windows desteklenir). Yazarları, komut satırı yardımcı programının tamamen değiştirilmesini vaat ediyor ve bununla birlikte - komutları hatırlamaya gerek yok ve hatta hızda on kat artış var.

Aracın ilginç özelliklerinden biri, Helm çizelgeleri için yerleşik desteğidir ve dezavantajlarından biri de uygulama performans ölçümlerinin olmamasıdır.

Kubernetic'in ana özellikleri:

  • Küme durumunun uygun gösterimi. İlgili tüm küme nesnelerini ve bunların bağımlılıklarını görüntülemek için bir ekran; tüm nesneler için kırmızı/yeşil hazırlık durumu; gerçek zamanlı durum güncellemeleri ile küme durumu görüntüleme modu.
  • Uygulamayı silmek ve ölçeklendirmek için hızlı işlem düğmeleri.
  • Çoklu küme işlemi için destek.
  • İsim alanlarıyla basit çalışma.
  • Helm çizelgeleri ve Helm depoları için destek (özel olanlar dahil). Web arayüzünde grafikleri yükleme ve yönetme.

Ürünün mevcut maliyeti, herhangi bir sayıda ad alanı ve küme için bir kişi tarafından kullanımı için bir kereye mahsus 30 Euro'dur.

4. Kubevi

  • web sitesi;
  • tanıtım;
  • depo (~500 GitHub yıldızı);
  • Lisans: Apache 2.0
  • Kısaca: "Kubevious, Kubernetes kümelerini, uygulama yapılandırmasını ve durum görüntülemeyi güvenli ve anlaşılması kolay hale getirir."

Kubernetes için GUI'lere Genel Bakış

Projenin fikri, bir kümede dağıtılan uygulama yapılandırmalarını analiz etmek ve hata ayıklamak için tasarlanmış bir araç oluşturmaktır. Yazarlar, daha genel şeyleri sonraya bırakarak öncelikle bu özelliklerin uygulanmasına odaklandılar.

Kubevious'un temel özellikleri ve işlevleri:

  • Uygulama merkezli bir şekilde küme görselleştirme: arayüzdeki ilgili nesneler, bir hiyerarşide sıralanarak gruplandırılır.
  • Konfigürasyonlardaki bağımlılıkların ve değişikliklerinin ardışık sonuçlarının görsel gösterimi.
  • Küme yapılandırma hatalarının görüntülenmesi: etiketlerin yanlış kullanımı, kaçırılan bağlantı noktaları, vb. (Bu arada, bu özellikle ilgileniyorsanız, dikkat edin. Polarishangimiz hakkında zaten yazdı.)
  • Önceki noktaya ek olarak, potansiyel olarak tehlikeli konteynerlerin tespiti mevcuttur, örn. çok fazla ayrıcalığa sahip olmak (öznitelikler hostPID, hostNetwork, hostIPC, montaj docker.sock vesaire).
  • Küme için gelişmiş arama sistemi (yalnızca nesnelerin adlarına göre değil, özelliklerine göre de).
  • Kapasite planlama ve kaynak optimizasyonu için araçlar.
  • Yerleşik "zaman makinesi" (nesnelerin konfigürasyonundaki önceki değişiklikleri görme yeteneği).
  • Roller, RoleBindings, ServiceAccounts'un birbiriyle ilişkili pivot tablosuyla RBAC yönetimi.
  • Yalnızca bir küme ile çalışır.

Projenin çok kısa bir geçmişi var (ilk sürüm 11 Şubat 2020'de gerçekleşti) ve geliştirmede ya bir istikrar ya da yavaşlama dönemi olmuş gibi görünüyor. Önceki sürümler sık ​​sık yayınlanıyorsa, en son sürüm (v0.5 15 Nisan 2020), başlangıçtaki geliştirme hızının gerisinde kaldı. Bu muhtemelen az sayıda katkıda bulunanlardan kaynaklanmaktadır: depo geçmişinde bunlardan yalnızca 4 tanesi vardır ve tüm gerçek iş bir kişi tarafından yapılır.

5. Kubewise

  • proje sayfası;
  • Lisans: tescilli (Açık Kaynak olacak);
  • Kısacası: "Kubernet'ler için basit bir çok platformlu istemci."

Kubernetes için GUI'lere Genel Bakış

Orijinal olarak dahili bir hackathon'un parçası olarak oluşturulan (Haziran 2019'da) VMware'den yeni bir ürün. Kişisel bir bilgisayara kurulur, temelinde çalışır Elektron (Linux, macOS ve Windows desteklenir) ve kubectl v1.14.0 veya üstünü gerektirir.

Kubewise'ın ana özellikleri:

  • En sık kullanılan Kubernetes varlıklarıyla arabirim etkileşimi: düğümler, ad alanları vb.
  • Farklı kümeler için birden çok kubeconfig dosyası desteği.
  • Bir ortam değişkeni ayarlama yeteneğine sahip terminal KUBECONFIG.
  • Verilen ad alanı için özel kubeconfig dosyaları oluşturun.
  • Gelişmiş güvenlik özellikleri (RBAC, parolalar, hizmet hesapları).

Şimdiye kadar, projenin yalnızca bir sürümü var - sürüm 1.1.0 26 Kasım 2019 tarihli. Ayrıca, yazarlar bunu hemen Açık Kaynak olarak yayınlamayı planladılar, ancak dahili sorunlar nedeniyle (teknik sorunlarla ilgili değil) bunu yapamadılar. Mayıs 2020 itibariyle, yazarlar bir sonraki sürüm üzerinde çalışıyorlar ve aynı zamanda kod açma sürecini başlatmaları gerekiyor.

6. OpenShift Konsolu

Kubernetes için GUI'lere Genel Bakış

Bu web arayüzünün OpenShift dağıtımının bir parçası olmasına rağmen (orada kullanılarak kurulur) özel operatör), yazarlar öngörülen normal (vanilla) Kubernetes kurulumlarında kurma/kullanma yeteneği.

OpenShift Konsolu uzun süredir geliştirilmektedir, bu nedenle birçok özelliği bünyesine katmıştır. Ana olanlardan bahsedeceğiz:

  • Paylaşılan arabirim yaklaşımı - Konsolda bulunan olasılıkların iki "perspektifi": yöneticiler ve geliştiriciler için. mod geliştirici bakış açısı nesneleri geliştiriciler için (uygulamalara göre) daha anlaşılır bir biçimde gruplandırır ve arabirimi, uygulamaları dağıtma, yapı / dağıtım durumunu izleme ve hatta Eclipse Che aracılığıyla kod düzenleme gibi tipik görevleri çözmeye odaklar.
  • İş yüklerinin yönetimi, ağ, depolama, erişim hakları.
  • İş yükleri için projelere ve uygulamalara mantıksal ayırma. En son sürümlerden birinde - v4.3 - göründü özel Proje panosu, bir proje diliminde olağan verileri (dağıtımların, bölmelerin vb. sayıları ve durumları; kaynak tüketimi ve diğer ölçümler) görüntüleyen.
  • Kümenin durumunun, içinde meydana gelen değişikliklerin (olayların) gerçek zamanlı görüntüsünde güncellendi; günlükleri görüntüleme.
  • Prometheus, Alertmanager ve Grafana'ya dayalı izleme verilerini görüntüleyin.
  • Temsil edilen operatörlerin yönetimi operatör merkezi.
  • Docker aracılığıyla çalışan derlemeleri yönetin (bir Dockerfile ile belirli bir havuzdan), S2I veya isteğe bağlı harici yardımcı programlar.

NB: Karşılaştırmaya başkalarını eklemedik Kubernet dağıtımları (örneğin, çok daha az bilinen Kubesfer): GUI'nin bunlarda çok gelişmiş olabilmesine rağmen, genellikle büyük bir sistemin tümleşik yığınının bir parçası olarak gelir. Ancak, vanilya K8s kurulumunda tam olarak çalışan yeterli çözüm olmadığını düşünüyorsanız, yorumlarda bize bildirin.

Bonus

1. Beta'da Kubernetes'te Portainer

  • web sitesi;
  • depo (~100 GitHub yıldızı);
  • Lisans: Zlib(?) (ana proje için aynı).

Docker ile çalışmak için aynı adlı popüler arayüzü geliştiren Portainer ekibinden bir proje. Proje geliştirmenin erken bir aşamasında olduğu için (ilk ve tek beta sürümü çıktı 16 Nisan 2020), özelliklerini değerlendirmedik. Ancak, birçok kişinin ilgisini çekebilir: Bu sizinle ilgiliyse, gelişmeleri takip edin.

2. Buz Paneli

  • web sitesi;
  • Lisans: tescilli;
  • Kısaca: "Görsel Kubernet Düzenleyici".

Kubernetes için GUI'lere Genel Bakış

Bu genç masaüstü uygulaması, basit bir sürükle ve bırak arabirimiyle Kubernetes kaynaklarını gerçek zamanlı olarak görselleştirmeyi ve yönetmeyi amaçlamaktadır. Şu anda desteklenen nesneler şunlardır: Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap ve Secret. Yakında Helm için destek ekleme sözü veriyorlar. Ana dezavantajlar, kodun yakınlığıdır (beklenir) "bir şekilde" açılıyor) ve Linux desteğinin olmaması (şimdiye kadar yalnızca Windows ve macOS sürümleri mevcuttur, ancak bu da büyük olasılıkla an meselesidir).

3.k9s

  • web sitesi;
  • Gösteri;
  • depo (~7700 GitHub yıldızı);
  • Lisans: Apache 2.0;
  • Kısacası: "Kümenizi şık bir şekilde yönetmenize olanak tanıyan, Kubernetes için bir konsol arabirimi."

Kubernetes için GUI'lere Genel Bakış

Yardımcı program, bir konsol GUI'si sunması nedeniyle incelemenin yalnızca bonus bölümünde yer aldı. Bununla birlikte, yazarlar, yalnızca kullanıcı dostu bir arayüz değil, aynı zamanda 6 önceden tanımlanmış tema ve gelişmiş bir klavye kısayolları ve komut takma adları sistemi sunarak terminalden kelimenin tam anlamıyla maksimumu çıkardılar. Kapsamlı yaklaşımları görünümle sınırlı değildi: k9s özellikleri hoş bir şekilde etkileyici: kaynak yönetimi, kümenin durumunu görüntüleme, kaynakları bağımlılıklarla hiyerarşik bir temsilde görüntüleme, günlükleri görüntüleme, RBAC desteği, eklentiler aracılığıyla yetenekleri genişletme ... Tüm bunlar çekici geldi geniş K8s topluluğuna: projenin GitHub yıldızlarının sayısı neredeyse resmi Kubernetes Panosu kadar iyi!

4. Uygulama kontrol panelleri

Ve incelemenin sonunda - ayrı bir mini kategori. Kubernetes kümelerinin kapsamlı yönetimi için değil, bu kümelerde dağıtılanları yönetmek için tasarlanmış iki web arabirimi içeriyordu.

Bildiğiniz gibi, karmaşık uygulamaları Kubernetes'te dağıtmak için en olgun ve yaygın araçlardan biri Helm'dir. Var olduğu süre boyunca, kolay dağıtım için birçok paket (Helm chart) birikmiştir. birçok popüler uygulama. Bu nedenle, grafiklerin yaşam döngüsünü yönetmenize izin veren uygun görsel araçların ortaya çıkması oldukça mantıklıdır.

4.1. Monoküler

  • depo (1300+ GitHub yıldızı);
  • Lisans: Apache 2.0;
  • Kısaca: “Birden çok depoda Helm çizelgelerini aramak ve keşfetmek için bir web uygulaması. Miğfer merkezi projesinin temelini oluşturur."

Kubernetes için GUI'lere Genel Bakış

Helm'in yazarlarından gelen bu geliştirme, Kubernetes'e kurulur ve aynı küme içinde çalışarak görevi yerine getirir. Ancak, şu anda, proje neredeyse geliştirilmemiştir. Ana amacı Helm Hub'ın varlığını desteklemektir. Yazarlar, diğer ihtiyaçlar için Kubeapps (aşağıya bakın) veya Red Hat Automation Broker'ı (OpenShift'in bir parçasıdır, ancak artık geliştirilmemektedir) önermektedir.

4.2. Kubeapp'ler

  • web sitesi;
  • tanıtım;
  • depo (~2100 GitHub yıldızı);
  • Lisans: Apache 2.0
  • Kısaca: "Kubernetes için uygulama panonuz."

Kubernetes için GUI'lere Genel Bakış

Yine bir Kubernetes kümesinde yüklü olan, ancak özel depolarla çalışmaya ilk odaklanması açısından Monocular'dan farklı olan Bitnami'den bir ürün.

Kubeapps'in temel işlevleri ve özellikleri:

  • Depolardan Helm çizelgelerini görüntüleyin ve kurun.
  • Kümede yüklü Helm tabanlı uygulamaları kontrol edin, güncelleyin ve kaldırın.
  • Özel ve özel grafik depoları için destek (ChartMuseum ve JFrog Artifactory'yi destekler).
  • Service Catalog ve Service Brokers'tan harici hizmetleri görüntüleme ve bunlarla çalışma.
  • Hizmet Kataloğu Bağlantıları mekanizmasını kullanarak kurulu uygulamaları yayınlama.
  • RBAC kullanarak kimlik doğrulama ve hakların ayrılması desteği.

Özet tablosu

Aşağıda, karşılaştırmayı kolaylaştırmak için mevcut görsel arayüzlerin ana özelliklerini özetlemeye ve bir araya getirmeye çalıştığımız bir özet tablo bulunmaktadır:

Kubernetes için GUI'lere Genel Bakış
(Tablonun çevrimiçi versiyonu Google Dokümanlar'da mevcut.)

Sonuç

Kubernet'ler için GUI'ler oldukça spesifik ve genç bir niştir. Bununla birlikte, çok aktif bir şekilde gelişiyor: hem oldukça olgun çözümler hem de hala büyüme alanı olan çok genç çözümler bulmak zaten mümkün. Neredeyse her zevke uygun özellikler ve görünümler sunarak çeşitli uygulamalara hitap ederler. Bu incelemenin, mevcut ihtiyaçlarınıza en uygun aracı seçmenize yardımcı olacağını umuyoruz.

PS

teşekkür ederim kvaplar karşılaştırma tablosu için OpenShift Konsolundaki veriler için!

Blogumuzda da okuyun:

Kaynak: habr.com

Yorum ekle