Kubernetes Veb Görünüşünün elanı (və Kubernetes üçün digər veb UI-lərin qısa icmalı)

Qeyd. tərcümə.: Əvvəlcə Zalandodan Henning Jacobs tərəfindən göndərilib. O, Kubernetes ilə işləmək üçün "veb üçün kubectl" kimi yerləşdirilən yeni veb interfeys yaratdı. Niyə yeni bir Açıq Mənbə layihəsi ortaya çıxdı və mövcud həllər hansı meyarlara cavab vermədi - məqaləsində oxuyun.

Kubernetes Veb Görünüşünün elanı (və Kubernetes üçün digər veb UI-lərin qısa icmalı)

Bu yazıda mən müxtəlif açıq mənbəli Kubernetes veb interfeyslərinə nəzər salıram, ümumi UI üçün tələblərimi bildirirəm və niyə inkişaf etdirdiyimi izah edirəm. Kubernetes WebView - birdən çox klasterdə dəstəyi və problemlərin həllini asanlaşdırmaq üçün nəzərdə tutulmuş interfeys.

İstifadə halları

Zalando-da biz çoxlu sayda Kubernetes istifadəçisinə (900+) və klasterlərə (100+) xidmət göstəririk. Xüsusi veb alətinin köməyinin çox faydalı olacağı bir neçə tipik istifadə halları var:

  1. dəstək çərçivəsində həmkarları ilə ünsiyyət;
  2. hadisələrə reaksiya və onların səbəblərinin araşdırılması.

Dəstək

Təcrübəmdə dəstək ünsiyyəti çox vaxt belə görünür:

— Kömək edin, XYZ xidmətimiz əlçatan deyil!
Etdikdə nə görürsən kubectl describe ingress ...?

Və ya CRD üçün oxşar bir şey:

- Şəxsiyyətləşdirmə xidməti ilə bağlı problemim var ...
- Komandanlıq nə məsələdir? kubectl describe platformcredentialsset ...?

Bu cür ünsiyyət adətən əmrin müxtəlif variasiyalarının daxil edilməsi ilə nəticələnir kubectl problemi həll etmək üçün. Nəticədə, söhbətin hər iki tərəfi davamlı olaraq terminal və veb çat arasında keçid etmək məcburiyyətində qalır, üstəlik fərqli bir vəziyyət müşahidə edirlər.

Buna görə də, mən Kubernetes veb cəbhəsinin aşağıdakılara icazə verməsini istəyirəm:

  • istifadəçilər edə bilər mübadilə əlaqələri və eyni şeyi müşahidə edin;
  • kömək edərdi insan səhvindən qaçın dəstəkdə: məsələn, əmr satırında səhv klaster daxil etmək, CLI əmrlərində səhvlər və s.;
  • imkan verərdi fərdi görünüşlər yaratmaq həmkarlarına göndərmək, yəni etiket sütunları əlavə etmək, bir səhifədə bir çox növ resurs göstərmək;
  • ideal olaraq bu veb aləti qoymağa imkan verməlidir YAML-in xüsusi bölmələrinə dərin bağlantılar (məsələn, qəzalara səbəb olan yanlış parametrə işarə etmək).

Hadisənin cavablandırılması və təhlili

İnfrastruktur hadisələrinə cavab vermək situasiya məlumatlılığı, təsirləri qiymətləndirmək bacarığı və klasterlərdə nümunələr axtarmaq tələb edir. Bəzi real həyat nümunələri:

  • kritik bir istehsal xidmətində problemlər var və buna ehtiyacınız var bütün klasterlərdə ada görə bütün Kubernetes resurslarını tapınproblemləri həll etmək;
  • miqyaslandırarkən qovşaqlar düşməyə başlayır və buna ehtiyacınız var bütün klasterlərdə "Gözləmədədir" statusu olan bütün podları tapınproblemin əhatə dairəsini qiymətləndirmək;
  • fərdi istifadəçilər bütün klasterlərdə yerləşdirilmiş DaemonSet ilə bağlı problem barədə məlumat verirlər və bunun olub olmadığını öyrənməlidirlər. Problem geniş yayılıbmı?.

Belə hallarda mənim standart həllim belə bir şeydir for i in $clusters; do kubectl ...; done. Aydındır ki, oxşar imkanları təmin edən alət hazırlamaq mümkündür.

Mövcud Kubernetes veb interfeysləri

Kubernetes üçün açıq mənbəli veb interfeyslər dünyası çox böyük deyil*, ona görə də əlavə məlumat toplamağa çalışdım Twitter:

Kubernetes Veb Görünüşünün elanı (və Kubernetes üçün digər veb UI-lərin qısa icmalı)

* Məhdud sayda Kubernetes veb UI ilə bağlı izahatım budur ki, bulud xidmətləri və Kubernetes satıcıları adətən öz qabaqcıllarını təklif edirlər, buna görə də "yaxşı" pulsuz Kubernetes UI bazarı nisbətən kiçikdir.

Bir tvitin köməyi ilə mən bunu öyrəndim K8Dash, Kubernator и Oktant. Gəlin onlara və digər mövcud Açıq Mənbə həllərinə baxaq, onların nə olduğunu anlamağa çalışaq.

K8Dash

"K8Dash Kubernetes klasterini idarə etməyin ən sadə yoludur."

Kubernetes Veb Görünüşünün elanı (və Kubernetes üçün digər veb UI-lərin qısa icmalı)

K8Dash Yaxşı görünür və sürətli hiss edir, lakin yuxarıda sadalanan istifadə halları üçün bir sıra çatışmazlıqlara malikdir:

  • Yalnız bir klasterin hüdudları daxilində işləyir.
  • Çeşidləmə və filtrləmə mümkündür, lakin daimi bağlantılar yoxdur.
  • Xüsusi Resurs Tərifləri (CRD) üçün dəstək yoxdur.

Kubernator

“Kubernator Kubernetes üçün alternativ istifadəçi interfeysidir. Yüksək səviyyəli Kubernetes İdarə Panelindən fərqli olaraq, o, aşağı səviyyəli nəzarət və yenilərini yaratmaq, onları redaktə etmək və münaqişələri həll etmək imkanı ilə klasterdəki bütün obyektlərin böyük icmalını təmin edir. Tamamilə müştəri tətbiqi olmaqla (kubectl kimi), Kubernetes API serverinin özündən başqa heç bir backend tələb etmir və həmçinin klasterə daxil olmaq qaydalarına hörmət edir.

Kubernetes Veb Görünüşünün elanı (və Kubernetes üçün digər veb UI-lərin qısa icmalı)

Bu olduqca dəqiq təsvirdir. Kubernator. Təəssüf ki, onun bəzi xüsusiyyətləri yoxdur:

  • Yalnız bir klasterə xidmət edir.
  • Siyahıya baxmaq rejimi yoxdur (yəni "Gözləmədədir" statusu olan bütün podları göstərə bilməzsiniz).

Kubernetes İdarəetmə paneli

“Kubernetes Dashboard Kubernetes klasterləri üçün universal veb interfeysdir. O, istifadəçilərə klasterdə işləyən proqramları idarə etməyə və problemləri həll etməyə, həmçinin klasterin özünü idarə etməyə imkan verir”.

Kubernetes Veb Görünüşünün elanı (və Kubernetes üçün digər veb UI-lərin qısa icmalı)

Təəssüf ki, Kubernetes İdarəetmə paneli dəstək və insidentlərə cavab tədbirlərimə çox kömək etmir, çünki:

  • mənbələri süzgəcdən keçirəndə və ya çeşidləmə sırasını dəyişdirəndə olduğu kimi daimi keçidlərin olmaması;
  • statusa görə filtrləmənin asan yolu yoxdur - məsələn, "Gözləmədədir" statusu olan bütün podları görmək;
  • yalnız bir klaster dəstəklənir;
  • CRD tərəfindən dəstəklənmir (bu xüsusiyyət inkişaf mərhələsindədir);
  • heç bir fərdi sütun yoxdur (məsələn, növünə görə etiketlənmiş sütunlar kubectl -L).

Kubernetes Əməliyyat Görünüşü (kube-ops-view)

"Sistem paneli-K8s klaster məkanının müşahidəçisi".

Kubernetes Veb Görünüşünün elanı (və Kubernetes üçün digər veb UI-lərin qısa icmalı)

У Kubernetes Əməliyyat Görünüşü tamamilə fərqli yanaşma: bu alət obyektlərin mətn təfərrüatları olmadan yalnız WebGL-dən istifadə edən klaster qovşaqlarını və podları göstərir. Bu, klasterin statusunun tez bir şəkildə icmalı üçün əladır ("podkalar aşağı düşürmü?")*, lakin yuxarıda təsvir edilən dəstək və insidentlərə cavabdan istifadə halları üçün uyğun deyil.

* Qeyd. tərcümə.: Bu mənada siz də bizim plaginimizlə maraqlana bilərsiniz qrafana status xəritəsi, daha ətraflı müzakirə etdiyimiz Bu məqalə.

Kubernetes Resurs Hesabatı (kube-resurs-hesabat)

"Pod və Kubernetes klaster resurs sorğularını toplayın, onları resurs istehlakı ilə müqayisə edin və statik HTML yaradın."

Kubernetes Veb Görünüşünün elanı (və Kubernetes üçün digər veb UI-lərin qısa icmalı)

Kubernetes Resurs Hesabatı qruplar üzrə komandalar/tətbiqlər arasında resurs istifadəsi və xərc bölgüsü haqqında statik HTML hesabatları yaradır. Hesabat dəstək və insidentlərə cavab vermək üçün bir qədər faydalıdır, çünki o, tətbiqin yerləşdirildiyi klasteri tez tapmağa imkan verir.

Qeyd. tərcümə.: Bulud provayderlərində resursların paylanması və onların dəyərinin təfərrüatlarına baxmaq üçün xidmət və alət də faydalı ola bilər. Kubecost, nəzərdən keçirdiyimiz bu yaxınlarda dərc edilmişdir.

Oktant

"Kubernetes klasterlərinin mürəkkəbliyini daha yaxşı başa düşmək üçün tərtibatçılar üçün genişləndirilə bilən veb platforması."

Kubernetes Veb Görünüşünün elanı (və Kubernetes üçün digər veb UI-lərin qısa icmalı)

Oktant, VMware tərəfindən yaradılmış, nisbətən yaxınlarda öyrəndiyim yeni bir məhsuldur. Onun köməyi ilə yerli maşında klasteri araşdırmaq rahatdır (hətta vizuallaşdırmalar var), lakin o, yalnız məhdud dərəcədə dəstək və insidentlərə reaksiya məsələlərinə toxunur. Oktantın çatışmazlıqları:

  • Klaster axtarışı yoxdur.
  • Yalnız yerli maşında işləyir (klasterdə yerləşdirilmir).
  • Obyektləri çeşidləmək/filtrləmək mümkün deyil (yalnız etiket seçicisi dəstəklənir).
  • Fərdi sütunlar təyin edə bilməzsiniz.
  • Siz obyektləri ad sahəsinə görə sadalaya bilməzsiniz.

Zalando klasterləri ilə Octantın sabitliyi ilə də problemlərim var idi: bəzi CRD-lərdə o hiss edir.

Kubernetes Veb Görünüşünü təqdim edirik

Veb üçün kubectl.

Kubernetes Veb Görünüşünün elanı (və Kubernetes üçün digər veb UI-lərin qısa icmalı)

Kubernetes üçün mövcud interfeys seçimlərini təhlil etdikdən sonra yenisini yaratmağa qərar verdim: Kubernetes WebView. Axı, əslində, mənə yalnız bütün güc lazımdır kubectl internetdə, yəni:

  • istifadəçilərin kubectl istifadə etməyə üstünlük verdiyi bütün (yalnız oxumaq üçün) əməliyyatların mövcudluğu;
  • bütün URL-lər daimi olmalı və həmkarların onları paylaşa və digər alətlərdə istifadə edə bilməsi üçün səhifəni orijinal formada təqdim etməlidir;
  • istənilən növ problemi həll etməyə imkan verəcək bütün Kubernetes obyektləri üçün dəstək;
  • resurs siyahıları sonrakı iş üçün endirilə bilən olmalıdır (elektron cədvəllərdə, CLI alətlərində grep) və saxlama (məsələn, postmortemlər üçün);
  • etiketlər üzrə resursları seçmək üçün dəstək (oxşar kubectl get .. -l);
  • müxtəlif növ resursların birləşdirilmiş siyahılarını yaratmaq imkanı (oxşar kubectl get all) həmkarlar arasında ümumi əməliyyat mənzərəsi əldə etmək (məsələn, hadisəyə reaksiya vermə prosesində);
  • idarə panelləri, qeydlər, tətbiq registrləri və s. kimi digər alətlərə xüsusi "ağıllı" dərin bağlantılar əlavə etmək imkanı. nasazlıqların aradan qaldırılması/sazlanması və insidentlərə cavab verilməsini asanlaşdırmaq;
  • JavaScript-in asılması kimi təsadüfi problemlərin qarşısını almaq üçün ön hissə mümkün qədər sadə olmalıdır (saf HTML);
  • uzaqdan konsaltinq zamanı qarşılıqlı əlaqəni asanlaşdırmaq üçün çoxsaylı klasterlərə dəstək (məsələn, yalnız bir URL-ni yadda saxlamaq);
  • mümkünsə, situasiya təhlili sadələşdirilməlidir (məsələn, bütün klasterlər/ad məkanları üzrə resursları yükləmək üçün keçidlərlə);
  • çevik bağlantılar yaratmaq və mətn məlumatlarını vurğulamaq üçün əlavə imkanlar, məsələn, həmkarlarınızı resurs təsvirində müəyyən bir bölməyə (YAML-də bir xətt) yönəldə biləsiniz;
  • müəyyən bir müştərinin tələblərinə uyğunlaşma imkanı, məsələn, CRD üçün xüsusi ekran şablonları, öz masa görünüşləriniz yaratmağa, CSS üslublarını dəyişdirməyə imkan verir;
  • komanda xəttində əlavə öyrənmək üçün alətlər (məsələn, tam əmrləri göstərmək kubectlkopyalanmağa hazırdır);

Kubernetes Veb Görünüşündə həll olunan tapşırıqlardan kənar (qeyri-məqsəd) qaldı:

  • Kubernetes obyektlərinin mücərrədləşdirilməsi;
  • tətbiqin idarə edilməsi (məsələn, yerləşdirmənin idarə edilməsi, Helm diaqramları və s.);
  • yazma əməliyyatları (təhlükəsiz CI/CD və/və ya GitOps alətlər qutusu vasitəsilə həyata keçirilməlidir);
  • gözəl interfeys (JavaScript, mövzular və s.);
  • vizuallaşdırma (bax kube-ops-view);
  • xərc təhlili (bax kube-resurs-hesabat).

Kubernetes Web View hadisələri dəstəkləməyə və onlara cavab verməyə necə kömək edir?

Dəstək

  • Bütün bağlantılar daimidirhəmkarları ilə məlumat mübadiləsini asanlaşdırır.
  • Yarada bilər onların baxışları, məsələn, bütün Yerləşdirmələri və Podları xüsusi etiketlə iki xüsusi klasterdə göstərin (çoxlu klaster adları və resurs növləri vergüllə ayrılmış keçiddə göstərilə bilər).
  • müraciət edə bilərsiniz yaml faylında müəyyən sətirlər obyekt, obyektin spesifikasiyasında potensial problemlərə işarə edir.

Kubernetes Veb Görünüşünün elanı (və Kubernetes üçün digər veb UI-lərin qısa icmalı)
Kubernetes Veb Görünüşündə klaster axtarışı

Hadisəyə reaksiya

  • qlobal axtarış (qlobal axtarış) bütün klasterlərdə obyektləri axtarmağa imkan verir.
  • Baxışların siyahısı bütün klasterlərdə müəyyən dövlət/sütun olan bütün obyektləri göstərə bilər (məsələn, "Gözləmədədir" statuslu bütün podları tapmalıyıq).
  • Obyektlərin siyahılarını yükləmək olar daha sonra təhlil etmək üçün tab ilə ayrılmış dəyər (TSV) formatında.
  • Xüsusi Xarici Linklər əlaqəli tablosuna və digər alətlərə keçməyə imkan verir.

Kubernetes Veb Görünüşünün elanı (və Kubernetes üçün digər veb UI-lərin qısa icmalı)
Kubernetes Veb Görünüşü: bütün klasterlərdə "Gözləmədədir" statusu olan podların siyahısı

Kubernetes Web Görünüşünü sınamaq istəyirsinizsə, oxumağı məsləhət görürəm sənədlər ya da bax canlı demo.

Əlbəttə ki, interfeys daha yaxşı ola bilərdi, lakin indiyə qədər Kubernetes Veb Görünüşü zəruri hallarda URL yollarını əl ilə manipulyasiya etməkdən çəkinməyən "qabaqcıl istifadəçilər" üçün bir vasitədir. Hər hansı bir şərhiniz/əlavə/təklifiniz varsa, əlaqə saxlayın Twitter-də məni izləyin!

Bu məqalə Kubernetes Veb Görünüşünün yaradılmasına səbəb olan arxa plana qısa girişdir. Digərləri izləyəcək! (Qeyd. tərcümə.: Onları gözləmək lazımdır müəllif blogu.)

PS tərcüməçidən

Bloqumuzda da oxuyun:

Mənbə: www.habr.com

Добавить комментарий