{"id":85863,"date":"2020-06-20T01:42:31","date_gmt":"2020-06-19T23:42:31","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/obzor-graficheskih-interfejsov-dlya-kubernetes"},"modified":"2020-06-20T01:42:31","modified_gmt":"2020-06-19T23:42:31","slug":"obzor-graficheskih-interfejsov-dlya-kubernetes","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/obzor-graficheskih-interfejsov-dlya-kubernetes","title":{"rendered":"Przegl\u0105d interfejs\u00f3w graficznych dla Kubernetes","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Przegl\u0105d interfejs\u00f3w graficznych dla Kubernetes\" src=\"\/wp-content\/uploads\/2020\/06\/9cb9eebaccf4e06002ded924f05ac5bb.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAby w pe\u0142ni korzysta\u0107 z systemu, wa\u017cna jest znajomo\u015b\u0107 narz\u0119dzi wiersza polece\u0144: w przypadku Kubernetes jest to kubectl. Z drugiej strony, dobrze zaprojektowane, przemy\u015blane interfejsy graficzne mog\u0105 wykonywa\u0107 wi\u0119kszo\u015b\u0107 zwyk\u0142ych zada\u0144 i otworzy\u0107 dodatkowe mo\u017cliwo\u015bci podczas eksploatacji system\u00f3w.<i>wi\u0119ksz\u0105<\/i>W zesz\u0142ym roku opublikowali\u015bmy t\u0142umaczenie<\/p>\n<p>ma\u0142ej recenzji web UI <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/468041\/\">dla Kubernetes, zwi\u0105zan\u0105 z og\u0142oszeniem interfejsu internetowego<\/a><\/noindex> Kubernetes Web View <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/hjacobs\/kube-web-view\">. Autorem tego artyku\u0142u i samego narz\u0119dzia jest Henning Jacobs z firmy Zalando, kt\u00f3ry w\u0142a\u015bnie pozycjonowa\u0142 nowink\u0119 jako \u201ekubectl dla sieci\u201d. Chcia\u0142 stworzy\u0107 narz\u0119dzie z wygodnymi mo\u017cliwo\u015bciami do interakcji w formacie wsparcia technicznego (na przyk\u0142ad szybko pokaza\u0107 problem za pomoc\u0105 linku internetowego) i do reagowania na incydenty, szukania problem\u00f3w w wielu klastrach jednocze\u015bnie. Jego dzie\u0142o wci\u0105\u017c si\u0119 rozwija (g\u0142\u00f3wnie dzi\u0119ki samemu autorowi).<\/a><\/noindex>Obs\u0142uguj\u0105c wiele klastr\u00f3w Kubernetes o r\u00f3\u017cnych skalach, r\u00f3wnie\u017c jeste\u015bmy zainteresowani mo\u017cliwo\u015bci\u0105 dostarczania klientom narz\u0119dzia do wizualnej pracy. Przy wyborze odpowiedniego interfejsu kluczowe dla nas by\u0142y nast\u0119puj\u0105ce mo\u017cliwo\u015bci:<\/p>\n<p>wsparcie dla rozgraniczenia praw u\u017cytkownik\u00f3w (RBAC);<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<ul>\n<li> wizualizacja stanu przestrzeni nazw i standardowych prymityw\u00f3w Kubernetes (Deployment, StatefulSet, Service, Cronjob, Job, Ingress, ConfigMap, Secret, PVC);<\/li>\n<li> uzyskanie dost\u0119pu do wiersza polece\u0144 wewn\u0105trz pod\u2019a;<\/li>\n<li> przegl\u0105danie log\u00f3w pod\u2019\u00f3w;<\/li>\n<li> przegl\u0105danie stanu pod\u2019\u00f3w (<\/li>\n<li> describe status<code>usuwanie pod\u2019\u00f3w.<\/code>);<\/li>\n<li> Inne funkcje, takie jak przegl\u0105danie u\u017cywanych zasob\u00f3w (w kontek\u015bcie pod\u2019\u00f3w\/kontroler\u00f3w\/przestrzeni nazw), tworzenie\/edycja prymityw\u00f3w K8s, w ramach naszego procesu roboczego nie s\u0105 aktualnie istotne.<\/li>\n<\/ul>\n<p>\nPrzegl\u0105d rozpoczniemy od klasycznego Kubernetes Dashboard, kt\u00f3ry zosta\u0142 przyj\u0119ty jako standard. Poniewa\u017c \u015bwiat si\u0119 nie zatrzymuje (co oznacza, \u017ce Kubernetes zyskuje nowe GUI), opowiemy r\u00f3wnie\u017c o jego aktualnych alternatywach, podsumowuj\u0105c wszystko w tabeli por\u00f3wnawczej na ko\u0144cu artyku\u0142u.<\/p>\n<p>: W przegl\u0105dzie nie b\u0119dziemy si\u0119 powtarza\u0107 w przypadku tych rozwi\u0105za\u0144, kt\u00f3re zosta\u0142y ju\u017c om\u00f3wione w<\/p>\n<p><i><b>NB<\/b>, ale \u2013 dla pe\u0142niejszego obrazu \u2013 odpowiednie opcje z niej (K8Dash, Octant, Kubernetes Web View) zosta\u0142y uwzgl\u0119dnione w ko\u0144cowej tabeli. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/468041\/\">W poprzednim artykule<\/a><\/noindex>1. Kubernetes Dashboard<\/i><\/p>\n<h2>Strona dokumentacji<\/h2>\n<p><\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/access-application-cluster\/web-ui-dashboard\/\">(8000+ gwiazdek na GitHubie);<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/dashboard\">Repozytorium<\/a><\/noindex> Licencja: Apache 2.0;<\/li>\n<li> Licencja: Apache 2.0;<\/li>\n<li> Kr\u00f3tko m\u00f3wi\u0105c: \u201eUniwersalny interfejs webowy dla klastr\u00f3w Kubernetes. Umo\u017cliwia u\u017cytkownikom zarz\u0105dzanie aplikacjami dzia\u0142aj\u0105cymi w klastrze oraz rozwi\u0105zywanie ich problem\u00f3w, a tak\u017ce zarz\u0105dzanie samym klastrem\u201d.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Przegl\u0105d interfejs\u00f3w graficznych dla Kubernetes\" src=\"\/wp-content\/uploads\/2020\/06\/dfeae9414643d57310bbf9813cbd171c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTo panel og\u00f3lnego przeznaczenia, kt\u00f3ry autorzy Kubernetes opisuj\u0105 w oficjalnej dokumentacji. <i>(chocia\u017c <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/access-application-cluster\/web-ui-dashboard\/#deploying-the-dashboard-ui\">nie jest rozwijany<\/a><\/noindex> domy\u015blnie)<\/i>. Jest zaprojektowany dla codziennych potrzeb operacyjnych i debugowania aplikacji w klastrze. U\u017cywamy go jako pe\u0142noprawnego, lekkiego narz\u0119dzia wizualnego, pozwalaj\u0105cego deweloperom na niezb\u0119dny i wystarczaj\u0105cy dost\u0119p do klastra. Jego mo\u017cliwo\u015bci pokrywaj\u0105 wszystkie ich potrzeby, kt\u00f3re powstaj\u0105 w trakcie korzystania z klastra. <i>(w <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/452988\/\">w tym artykule<\/a><\/noindex> pokazali\u015bmy niekt\u00f3re funkcje panelu)<\/i>. Jak \u0142atwo si\u0119 domy\u015bli\u0107, oznacza to, \u017ce spe\u0142nia wszystkie nasze wymagania wymienione powy\u017cej.<\/p>\n<p>Do g\u0142\u00f3wnych mo\u017cliwo\u015bci Dashboard Kubernetes nale\u017c\u0105:<\/p>\n<ul>\n<li> Nawigacja: przegl\u0105d podstawowych obiekt\u00f3w K8s w kontek\u015bcie przestrzeni nazw.<\/li>\n<li> W przypadku uprawnie\u0144 administratora panel pokazuje w\u0119z\u0142y, przestrzenie nazw i Persistent Volumes. Dost\u0119pne s\u0105 statystyki dotycz\u0105ce wykorzystania pami\u0119ci, procesora, przydzia\u0142u zasob\u00f3w, metryk, statusu, zdarze\u0144 itd.<\/li>\n<li> Przegl\u0105d aplikacji wdro\u017conych w przestrzeni nazw wed\u0142ug ich typu (Deployment, StatefulSet itp.), relacji mi\u0119dzy nimi (ReplicaSet, Horizontal Pod Autoscaler), og\u00f3lnej i spersonalizowanej statystyki oraz informacji.<\/li>\n<li> Przegl\u0105d us\u0142ug i Ingress\u00f3w, a tak\u017ce ich relacji z podami i endpointami.<\/li>\n<li> Przegl\u0105d obiekt\u00f3w plikowych i magazyn\u00f3w: Persistent Volume i Persistent Volume Claim.<\/li>\n<li> Przegl\u0105d i edycja ConfigMap i Secret.<\/li>\n<li> Przegl\u0105d log\u00f3w.<\/li>\n<li> Dost\u0119p do wiersza polece\u0144 w kontenerach.<\/li>\n<\/ul>\n<p>\nIstotna wada (jednak nie dla nas)\u2014 brak wsparcia dla pracy z wieloma klastrami. Projekt jest aktywnie rozwijany przez spo\u0142eczno\u015b\u0107 i wspiera aktualne funkcje wraz z wydaniem nowych wersji i specyfikacji Kubernetes API: ostatnia wersja panelu \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/dashboard\/releases\/tag\/v2.0.1\">v2.0.1<\/a><\/noindex> z 22 maja 2020 r. \u2014 przetestowana pod k\u0105tem zgodno\u015bci z Kubernetes 1.18.<\/p>\n<h2>2. Lens<\/h2>\n<p><\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/k8slens.dev\/\">Strona<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=04v2ODsmtIs\">Prezentacja<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/lensapp\/lens\">Repozytorium<\/a><\/noindex> (~4800 gwiazdek GitHub);<\/li>\n<li> Licencja: MIT;<\/li>\n<li> Kr\u00f3tko m\u00f3wi\u0105c: \u201eKubernetes IDE\u201d.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Przegl\u0105d interfejs\u00f3w graficznych dla Kubernetes\" src=\"\/wp-content\/uploads\/2020\/06\/4e421e163ac6762a3a1ec9876569d029.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nProjekt jest pozycjonowany jako pe\u0142noprawne zintegrowane \u015brodowisko programistyczne (IDE) dla Kubernetes. Jest zoptymalizowany do pracy z wieloma klastrami i du\u017c\u0105 liczb\u0105 uruchomionych w nich pod\u00f3w (testowany na 25 tysi\u0105cach pod\u00f3w).<\/p>\n<p>G\u0142\u00f3wne cechy\/mo\u017cliwo\u015bci Lens:<\/p>\n<ul>\n<li> Aplikacja autonomiczna, nie wymagaj\u0105ca instalacji czegokolwiek w klastrze (dok\u0142adniej, do uzyskania wszystkich metryk b\u0119dzie potrzebny Prometheus, ale mo\u017cna te\u017c skorzysta\u0107 z istniej\u0105cej instalacji). \u201eG\u0142\u00f3wna\u201d instalacja odbywa si\u0119 na komputerze osobistym dzia\u0142aj\u0105cym pod kontrol\u0105 system\u00f3w Linux, macOS lub Windows.<\/li>\n<li> Zarz\u0105dzanie multiklastrowe (obs\u0142ugiwanych jest setki klastr\u00f3w).<\/li>\n<li> Wizualizacja stanu klastra w czasie rzeczywistym.<\/li>\n<li> Wykresy u\u017cycia zasob\u00f3w i trendy z histori\u0105 na podstawie wbudowanego Prometheusa.<\/li>\n<li> Dost\u0119p do terminala kontener\u00f3w oraz w\u0119z\u0142\u00f3w klastra.<\/li>\n<li> Pe\u0142ne wsparcie dla Kubernetes RBAC.<\/li>\n<\/ul>\n<p>\nAktualne wydanie \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/lensapp\/lens\/releases\/tag\/v3.5.0\">3.5.0<\/a><\/noindex> od 16 czerwca 2020 r. Pierwsza wersja zosta\u0142a stworzona w firmie Kontena, a obecnie ca\u0142a w\u0142asno\u015b\u0107 intelektualna zosta\u0142a przekazana specjalnej organizacji <noindex><a rel=\"nofollow\" href=\"https:\/\/lakendlabs.com\/\">Lakend Labs<\/a><\/noindex>, zwanej \u201ezwi\u0105zkiem entuzjast\u00f3w cloud native i technolog\u00f3w\u201d, odpowiedzialnej za \u201ezachowanie i dost\u0119pno\u015b\u0107 oprogramowania Open Source i produkt\u00f3w Kontena\u201d.<\/p>\n<p>Lens to drugi najpopularniejszy projekt na GitHubie w kategorii GUI dla Kubernetes, ust\u0119puj\u0105cy jedynie samemu Kubernets Dashboard. Wszystkie pozosta\u0142e rozwi\u0105zania Open Source niezwi\u0105zane z CLI* s\u0105 znacznie mniej popularne.<\/p>\n<p><i>* Patrz K9s w bonusowej cz\u0119\u015bci przegl\u0105du.<\/i><\/p>\n<h2>3. Kubernetic<\/h2>\n<p><\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetic.com\/\">Strona<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetic.com\/assets\/images\/deployment-nginx.png\">Demonstracja<\/a><\/noindex>;<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/harbur\/kubernetic\">Repozytorium (tylko dokumentacja)<\/a><\/noindex> (200+ gwiazdek na GitHubie);<\/li>\n<li> Licencja: w\u0142asno\u015bciowa;<\/li>\n<li> W skr\u00f3cie: \u201eZarz\u0105dzanie klastrem, uproszczone\u201d.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Przegl\u0105d interfejs\u00f3w graficznych dla Kubernetes\" src=\"\/wp-content\/uploads\/2020\/06\/24484cec37e11f8f2e279863eee20f2f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTo w\u0142asno\u015bciowa aplikacja, instalowana na komputerze osobistym (obs\u0142ugiwane s\u0105 Linux, macOS, Windows). Jej autorzy obiecuj\u0105 pe\u0142n\u0105 alternatyw\u0119 dla narz\u0119dzia wiersza polece\u0144, a tak\u017ce brak konieczno\u015bci zapami\u0119tywania polece\u0144 i dziesi\u0119ciokrotne zwi\u0119kszenie wydajno\u015bci.<\/p>\n<p>Jedn\u0105 z ciekawych cech narz\u0119dzia jest wbudowane wsparcie dla chart\u00f3w Helm, a jednym z jego wad \u2014 brak metryk wydajno\u015bci aplikacji.<\/p>\n<p>G\u0142\u00f3wne funkcje Kubernetic:<\/p>\n<ul>\n<li> Wygodne wy\u015bwietlanie stanu klastra. Jeden ekran do przegl\u0105dania wszystkich powi\u0105zanych obiekt\u00f3w klastra i ich zale\u017cno\u015bci; stan gotowo\u015bci wszystkich obiekt\u00f3w w kolorze czerwonym\/zielonym; tryb wy\u015bwietlania stanu klastra z aktualizacj\u0105 statusu w czasie rzeczywistym.<\/li>\n<li> Przyciski szybkiego dzia\u0142ania do usuwania i skalowania aplikacji.<\/li>\n<li> Wsparcie dla pracy multiklastrowej.<\/li>\n<li> Prosta praca z przestrzeniami nazw.<\/li>\n<li> Wsparcie dla Helm chart\u00f3w i repozytori\u00f3w Helm (w tym prywatnych). Instalacja i zarz\u0105dzanie chartami w interfejsie webowym.<\/li>\n<\/ul>\n<p>\nAktualna cena produktu \u2014 jednorazowa op\u0142ata w wysoko\u015bci 30 euro za korzystanie przez jedn\u0105 osob\u0119 w dowolnej liczbie przestrzeni nazw i klastr\u00f3w.<\/p>\n<h2>4. Kubevious<\/h2>\n<p><\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/kubevious.io\/\">Strona<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=YVBjt-9ugTg\">Prezentacja<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubevious\/kubevious\">Repozytorium<\/a><\/noindex> (~500 gwiazd na GitHubie);<\/li>\n<li> Licencja: Apache 2.0<\/li>\n<li> W skr\u00f3cie: \u201eKubevious sprawia, \u017ce klastry Kubernetes, konfiguracje aplikacji i przegl\u0105danie ich stanu s\u0105 bezpieczne i zrozumia\u0142e\u201d.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Przegl\u0105d interfejs\u00f3w graficznych dla Kubernetes\" src=\"\/wp-content\/uploads\/2020\/06\/b8866c4baaac6b6b2da495034afd035e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIdea projektu polega na stworzeniu narz\u0119dzia s\u0142u\u017c\u0105cego do analizy i debugowania konfiguracji aplikacji wdro\u017conych w klastrze. Autorzy skupili si\u0119 przede wszystkim na realizacji tych funkcji, zostawiaj\u0105c bardziej og\u00f3lne rzeczy na p\u00f3\u017aniej. <\/p>\n<p>G\u0142\u00f3wne cechy i funkcje Kubevious:<\/p>\n<ul>\n<li> Wizualizacja klastra w spos\u00f3b zorientowany na aplikacje: powi\u0105zane obiekty w interfejsie grupowane s\u0105 w hierarchi\u0119.<\/li>\n<li> Wyra\u017ane przedstawienie zale\u017cno\u015bci w konfiguracjach i kaskadowych skutk\u00f3w ich zmian.<\/li>\n<li> Wykrywanie b\u0142\u0119d\u00f3w w konfiguracji klastra: niew\u0142a\u015bciwe u\u017cycie etykiet, pomini\u0119te porty itp. <i>(Przy okazji, je\u015bli interesuje Ci\u0119 ta funkcja, zwr\u00f3\u0107 uwag\u0119 na <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/FairwindsOps\/polaris\">Polaris<\/a><\/noindex>, o kt\u00f3rym niedawno opowiadali\u015bmy. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/454706\/\">ju\u017c pisali\u015bmy<\/a><\/noindex>.)<\/i><\/li>\n<li> Dodatkowo do poprzedniego punktu \u2014 dost\u0119pne wykrywanie potencjalnie niebezpiecznych kontener\u00f3w, tj. maj\u0105cych zbyt du\u017ce uprawnienia (atrybuty <code>hostPID<\/code>, <code>hostNetwork<\/code>, <code>hostIPC<\/code>, montowanie <code>docker.sock<\/code> i tym podobne).<\/li>\n<li> Zaawansowany system wyszukiwania w klastrze (nie tylko wed\u0142ug nazw obiekt\u00f3w, ale tak\u017ce wed\u0142ug ich w\u0142a\u015bciwo\u015bci).<\/li>\n<li> Narz\u0119dzia do planowania mocy i optymalizacji zasob\u00f3w.<\/li>\n<li> Wbudowana \u201emaszyna czasu\u201d (mo\u017cliwo\u015b\u0107 zobaczenia wcze\u015bniejszych zmian w konfiguracji obiekt\u00f3w).<\/li>\n<li> Zarz\u0105dzanie RBAC za pomoc\u0105 zestawionej tabeli ze Roles, RoleBindings, ServiceAccounts.<\/li>\n<li> Dzia\u0142a tylko z jednym klastrem.<\/li>\n<\/ul>\n<p>\nProjekt ma bardzo kr\u00f3tk\u0105 histori\u0119 (pierwsza wersja ukaza\u0142a si\u0119 11 lutego 2020 r.) i zdaje si\u0119, \u017ce nasta\u0142 okres albo stabilizacji, albo spowolnienia w rozwoju. Je\u015bli wcze\u015bniejsze wersje by\u0142y wydawane cz\u0119sto, to ostatnie wydanie (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubevious\/kubevious\/releases\/tag\/v0.5\">v0.5<\/a><\/noindex> z 15 kwietnia 2020 r.) odbiega od pocz\u0105tkowego tempa rozwoju. Prawdopodobnie jest to zwi\u0105zane z niewielk\u0105 liczb\u0105 wsp\u00f3\u0142pracownik\u00f3w: w historii repozytorium jest ich tylko 4, a ca\u0142a faktyczna praca prowadzona jest przez jedn\u0105 osob\u0119.<\/p>\n<h2>5. Kubewise<\/h2>\n<p><\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/flings.vmware.com\/kubewise\">Strona projektu<\/a><\/noindex>;<\/li>\n<li> Licencja: w\u0142asno\u015bciowa (stanie si\u0119 Open Source);<\/li>\n<li> Kr\u00f3tko: \u201eProsty, wieloplatformowy klient dla Kubernetes.\u201d<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Przegl\u0105d interfejs\u00f3w graficznych dla Kubernetes\" src=\"\/wp-content\/uploads\/2020\/06\/01d283927bb586882275a933d9cbb439.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNowy produkt od firmy VMware, pierwotnie stworzony w ramach wewn\u0119trznego hackathonu (w czerwcu 2019 roku). Instalowany na komputerze osobistym, dzia\u0142a na bazie <noindex><a rel=\"nofollow\" href=\"https:\/\/www.electronjs.org\/\">Electron<\/a><\/noindex> (obs\u0142ugiwane Linux, macOS i Windows) i wymaga kubectl w wersji co najmniej v1.14.0.<\/p>\n<p>G\u0142\u00f3wne funkcje Kubewise:<\/p>\n<ul>\n<li> Interakcja w interfejsie z najcz\u0119\u015bciej u\u017cywanymi zasobami Kubernetes: w\u0119z\u0142ami, przestrzeniami nazw itp.<\/li>\n<li> Wsparcie dla wielu plik\u00f3w kubeconfig dla r\u00f3\u017cnych klastr\u00f3w.<\/li>\n<li> Terminal z mo\u017cliwo\u015bci\u0105 ustawienia zmiennej \u015brodowiskowej <code>KUBECONFIG<\/code>.<\/li>\n<li> Generowanie niestandardowych plik\u00f3w kubeconfig dla okre\u015blonej przestrzeni nazw.<\/li>\n<li> Rozszerzone mo\u017cliwo\u015bci zabezpiecze\u0144 (RBAC, has\u0142a, konta serwisowe).<\/li>\n<\/ul>\n<p>\nJak dot\u0105d projekt ma tylko jedn\u0105 wersj\u0119 \u2014 wersj\u0119 <noindex><a rel=\"nofollow\" href=\"https:\/\/flings.vmware.com\/kubewise#changelog\">1.1.0<\/a><\/noindex> z 26 listopada 2019 roku. Autorzy planowali od razu wyda\u0107 go jako Open Source, jednak z powodu problem\u00f3w wewn\u0119trznych (nie zwi\u0105zanych z kwestiami technicznymi) nie mogli tego zrobi\u0107. Stan na maj 2020, autorzy pracuj\u0105 nad nast\u0119pn\u0105 wersj\u0105 i r\u00f3wnocze\u015bnie chc\u0105 zainicjowa\u0107 proces otwarcia kodu.<\/p>\n<h3>6. OpenShift Console<\/h3>\n<p><\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.openshift.com\/container-platform\/4.4\/web_console\/web-console.html\">Sekcja dokumentacji OpenShift<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/openshift\/console\">Repozytorium<\/a><\/noindex> (~150 gwiazdek na GitHubie);<\/li>\n<li> Licencja: Apache 2.0;<\/li>\n<li> Kr\u00f3tko: \u201eUI dla klastr\u00f3w OpenShift.\u201d<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Przegl\u0105d interfejs\u00f3w graficznych dla Kubernetes\" src=\"\/wp-content\/uploads\/2020\/06\/fe1e708c9fe68eb4b57123a0d9eca8ff.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPomimo, \u017ce ten interfejs webowy jest cz\u0119\u015bci\u0105 dystrybucji OpenShift (tam instalowany jest za pomoc\u0105 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/openshift\/console-operator\/\">specjalnego operatora<\/a><\/noindex>), autorzy <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/openshift\/console#native-kubernetes\">przewidzieli<\/a><\/noindex> mo\u017cliwo\u015b\u0107 jego instalacji\/u\u017cytkowania r\u00f3wnie\u017c w standardowych (vanilla) instalacjach Kubernetes.<\/p>\n<p>OpenShift Console rozwija si\u0119 ju\u017c od d\u0142u\u017cszego czasu, wi\u0119c wbudowano w ni\u0105 wiele funkcji. Wspomnijmy o g\u0142\u00f3wnych z nich:<\/p>\n<ul>\n<li> Podzielone podej\u015bcie do interfejsu \u2014 dwa \u201ewidoki\u201d dost\u0119pne w Console: dla administrator\u00f3w i dla programist\u00f3w. Tryb <i>Developer perspective<\/i> grupuje obiekty w bardziej zrozumia\u0142y dla programist\u00f3w spos\u00f3b (wed\u0142ug aplikacji) i kieruje interfejs na rozwi\u0105zanie takich typowych zada\u0144 jak wdra\u017canie aplikacji, \u015bledzenie statusu budowy\/wdra\u017cania, a nawet edytowanie kodu przez Eclipse Che.<\/li>\n<li> Zarz\u0105dzanie obci\u0105\u017ceniami roboczymi, sieci\u0105, magazynami, prawami dost\u0119pu.<\/li>\n<li> Logiczne podzia\u0142 dla obci\u0105\u017ce\u0144 roboczych na projekty i aplikacje. W jednej z ostatnich wersji \u2014 v4.3 \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.openshift.com\/blog\/openshift-4-3-dashboard-refinements-and-the-new-project-dashboard\">pojawi\u0142 si\u0119<\/a><\/noindex> specjalny <i>Project dashboard<\/i>, wy\u015bwietlaj\u0105ce znane dane (liczba i statusy wdro\u017ce\u0144, pod\u00f3w itp.; zu\u017cycie zasob\u00f3w i inne metryki) w kontek\u015bcie projekt\u00f3w.<\/li>\n<li> Aktualizowane w czasie rzeczywistym wy\u015bwietlanie stanu klastra, wprowadzonych w nim zmian (zdarze\u0144); przegl\u0105danie dziennik\u00f3w.<\/li>\n<li> Przegl\u0105danie danych monitorowania opartych na Prometheus, Alertmanager i Grafana.<\/li>\n<li> Zarz\u0105dzanie operatorami przedstawionymi w <noindex><a rel=\"nofollow\" href=\"https:\/\/operatorhub.io\/\">OperatorHub<\/a><\/noindex>.<\/li>\n<li> Zarz\u0105dzanie obrazami, kt\u00f3re s\u0105 uruchamiane przez Docker (z okre\u015blonego repozytorium z Dockerfile), <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/openshift\/source-to-image\">S2I<\/a><\/noindex> lub dowolnymi zewn\u0119trznymi narz\u0119dziami.<\/li>\n<\/ul>\n<p>\n<i><b>NB<\/b>: Nie zdecydowali\u015bmy si\u0119 doda\u0107 do por\u00f3wnania innych <b>dystrybucji Kubernetes<\/b> (na przyk\u0142ad znacznie mniej znanej <noindex><a rel=\"nofollow\" href=\"https:\/\/kubesphere.io\/\">Kubesphere<\/a><\/noindex>): mimo \u017ce interfejs graficzny w nich mo\u017ce by\u0107 bardzo zaawansowany, zazwyczaj jest cz\u0119\u015bci\u0105 zintegrowanego stosu du\u017cego systemu. Je\u015bli jednak uwa\u017casz, \u017ce niekt\u00f3rych rozwi\u0105za\u0144, kt\u00f3re w pe\u0142ni funkcjonuj\u0105 w vanilla-instalacji K8s, brakuje \u2014 daj nam zna\u0107 w komentarzach.<\/i><\/p>\n<h2>Bonus<\/h2>\n<p><\/p>\n<h3>1. Portainer na Kubernetes w wersji beta<\/h3>\n<p><\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/www.portainer.io\/\">Strona<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/portainer\/portainer-k8s\">Repozytorium<\/a><\/noindex> (~100 gwiazdek na GitHubie);<\/li>\n<li> Licencja: Zlib(?) <i>(taka jest w przypadku projektu macierzystego)<\/i>.<\/li>\n<\/ul>\n<p>Projekt zespo\u0142u Portainer, kt\u00f3ry stworzy\u0142 popularny interfejs o tej samej nazwie do pracy z Dockerem. Poniewa\u017c projekt znajduje si\u0119 na wczesnym etapie rozwoju (pierwsza i jedyna wersja beta <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/portainer\/portainer-k8s\/releases\/tag\/portainer-beta-1.0.0\">zosta\u0142a wydana<\/a><\/noindex> 16 kwietnia 2020 r.), nie oceniali\u015bmy jego funkcji. Niemniej jednak mo\u017ce on zainteresowa\u0107 wielu u\u017cytkownik\u00f3w: je\u015bli to dotyczy ciebie \u2014 \u015bled\u017a rozw\u00f3j.<\/p>\n<h3>2. IcePanel<\/h3>\n<p><\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/icepanel.io\/\">Strona<\/a><\/noindex>;<\/li>\n<li> Licencja: w\u0142asno\u015bciowa;<\/li>\n<li> W skr\u00f3cie: \u201eWizualny edytor Kubernetes\u201d.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Przegl\u0105d interfejs\u00f3w graficznych dla Kubernetes\" src=\"\/wp-content\/uploads\/2020\/06\/e1dfd9853a4d159d746e6f466dcab851.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTo m\u0142oda aplikacja desktopowa maj\u0105ca na celu wizualizacj\u0119 zasob\u00f3w Kubernetes w czasie rzeczywistym i zarz\u0105dzanie nimi z prostym interfejsem w stylu drag &amp; drop. Z aktualnie wspieranych obiekt\u00f3w dost\u0119pne s\u0105 Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap i Secret. Wkr\u00f3tce obiecuj\u0105 doda\u0107 wsparcie dla Helm. G\u0142\u00f3wne wady to zamkni\u0119to\u015b\u0107 kodu (oczekuje si\u0119 jego <noindex><a rel=\"nofollow\" href=\"https:\/\/www.reddit.com\/r\/kubernetes\/comments\/h88a64\/visualize_and_edit_your_kubernetes_cluster_in\/furytcx\/\">otwarcia \u201ew jakiej\u015b formie\u201d<\/a><\/noindex>) oraz brak wsparcia dla Linuxa (na razie dost\u0119pne s\u0105 tylko wersje na Windows i macOS, chocia\u017c to tak\u017ce prawdopodobnie tylko kwestia czasu).<\/p>\n<h3>3. k9s<\/h3>\n<p><\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/k9scli.io\/\">Strona<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=k7zseUhaXeU\">Demonstracja<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/derailed\/k9s\">Repozytorium<\/a><\/noindex> (~7700 gwiazdek na GitHubie);<\/li>\n<li> Licencja: Apache 2.0;<\/li>\n<li> W skr\u00f3cie: \u201eInterfejs konsolowy dla Kubernetes, pozwalaj\u0105cy stylowo zarz\u0105dza\u0107 klastrem.\u201d<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Przegl\u0105d interfejs\u00f3w graficznych dla Kubernetes\" src=\"\/wp-content\/uploads\/2020\/06\/b17ececa517ff0748c4a4ff7d46c8152.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNarz\u0119dzie znalaz\u0142o si\u0119 jedynie w bonusowej cz\u0119\u015bci przegl\u0105du, poniewa\u017c oferuje konsolowy interfejs u\u017cytkownika. Jednak autorzy dos\u0142ownie wydobyli maksimum z terminala, oferuj\u0105c nie tylko wygodny interfejs, ale tak\u017ce 6 predefiniowanych motyw\u00f3w, rozwini\u0119ty system skr\u00f3t\u00f3w klawiszowych oraz alias\u00f3w dla polece\u0144. Ich staranne podej\u015bcie nie ograniczy\u0142o si\u0119 do wygl\u0105du: mo\u017cliwo\u015bci k9s s\u0105 w rzeczy samej imponuj\u0105ce: zarz\u0105dzanie zasobami, wy\u015bwietlanie stanu klastra, przedstawianie zasob\u00f3w w hierarchicznym uk\u0142adzie z zale\u017cno\u015bciami, przegl\u0105danie log\u00f3w, wsparcie dla RBAC, rozszerzenie mo\u017cliwo\u015bci poprzez wtyczki\u2026 To wszystko przypad\u0142o do gustu szerokiej spo\u0142eczno\u015bci K8s: liczba gwiazdek projektu na GitHubie praktycznie dor\u00f3wnuje oficjalnemu Kubernetes Dashboard!<\/p>\n<h3>4. Panele zarz\u0105dzania aplikacjami<\/h3>\n<p>\nI na zako\u0144czenie przegl\u0105du \u2014 osobna mini-kategoria. Znalaz\u0142y si\u0119 w niej dwa interfejsy webowe, przeznaczone nie do kompleksowego zarz\u0105dzania klastrami Kubernetes, lecz do zarz\u0105dzania tym, co jest w nich rozlokowane.<\/p>\n<p>Jak wiadomo, jednym z najbardziej dojrza\u0142ych i rozpowszechnionych narz\u0119dzi do wdra\u017cania z\u0142o\u017conych aplikacji w Kubernetes jest Helm. W ci\u0105gu jego istnienia zebra\u0142o si\u0119 wiele pakiet\u00f3w (Helm charts) do prostego wdra\u017cania <noindex><a rel=\"nofollow\" href=\"https:\/\/hub.helm.sh\/charts\">wielu popularnych aplikacji<\/a><\/noindex>. Dlatego ca\u0142kiem logiczne jest pojawienie si\u0119 odpowiednich wizualnych narz\u0119dzi umo\u017cliwiaj\u0105cych zarz\u0105dzanie cyklem \u017cycia chart\u00f3w.<\/p>\n<h4>4.1. Monocular<\/h4>\n<p><\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/monocular\">Repozytorium<\/a><\/noindex> (1300+ gwiazdek GitHub);<\/li>\n<li> Licencja: Apache 2.0;<\/li>\n<li>Kr\u00f3tko m\u00f3wi\u0105c: \"Aplikacja webowa do wyszukiwania i odkrywania Helm charts w wielu repozytoriach. Stanowi podstaw\u0119 projektu Helm hub.\"<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Przegl\u0105d interfejs\u00f3w graficznych dla Kubernetes\" src=\"\/wp-content\/uploads\/2020\/06\/9208e0a43eb0e42e6daefd1e5e700ce2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTen rozw\u00f3j od autor\u00f3w Helm jest instalowany w Kubernetes i dzia\u0142a w obr\u0119bie jednego klastra, wykonuj\u0105c postawione zadanie. Jednak obecnie projekt niemal nie jest rozwijany. Jego g\u0142\u00f3wnym celem jest wsparcie istnienia Helm Hub. Do innych potrzeb autorzy polecaj\u0105 Kubeapps (patrz dalej) lub Red Hat Automation Broker (cz\u0119\u015b\u0107 OpenShift, ale r\u00f3wnie\u017c ju\u017c nie rozwijany).<\/p>\n<h4>4.2. Kubeapps<\/h4>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/kubeapps.com\/\">Strona<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/G1IGLW4oDF0\">Prezentacja<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubeapps\/kubeapps\">Repozytorium<\/a><\/noindex> (~2100 gwiazdek GitHub);<\/li>\n<li> Licencja: Apache 2.0<\/li>\n<li> Kr\u00f3tko m\u00f3wi\u0105c: \"Wasz panel aplikacji dla Kubernetes.\"<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Przegl\u0105d interfejs\u00f3w graficznych dla Kubernetes\" src=\"\/wp-content\/uploads\/2020\/06\/45d9b995a93063e2a835cfcaf1fa65ff.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nProdukt od Bitnami, kt\u00f3ry r\u00f3wnie\u017c jest instalowany w klastrze Kubernetes, ale r\u00f3\u017cni si\u0119 od Monocular pocz\u0105tkowym skupieniem na pracy z prywatnymi repozytoriami.<\/p>\n<p>Kluczowe funkcje i cechy Kubeapps:<\/p>\n<ul>\n<li> Przegl\u0105danie i instalacja Helm chart\u00f3w z repozytori\u00f3w.<\/li>\n<li> Sprawdzanie, aktualizowanie i usuwanie aplikacji opartych na Helm, zainstalowanych w klastrze.<\/li>\n<li> Wsparcie dla pracy z niestandardowymi i prywatnymi repozytoriami chart\u00f3w (obs\u0142uguje ChartMuseum i JFrog Artifactory).<\/li>\n<li> Przegl\u0105danie i praca z zewn\u0119trznymi us\u0142ugami \u2014 z Service Catalog i Service Brokers.<\/li>\n<li> Publikacja zainstalowanych aplikacji za pomoc\u0105 mechanizmu Service Catalog Bindings.<\/li>\n<li> Wsparcie dla uwierzytelniania i podzia\u0142u uprawnie\u0144 za pomoc\u0105 RBAC.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Tabela podsumowuj\u0105ca<\/h2>\n<p>\nPoni\u017cej znajduje si\u0119 tabela, w kt\u00f3rej starali\u015bmy si\u0119 zebra\u0107 i zsyntetyzowa\u0107 g\u0142\u00f3wne mo\u017cliwo\u015bci istniej\u0105cych interfejs\u00f3w wizualnych, aby u\u0142atwi\u0107 por\u00f3wnanie:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/z2\/ey\/kj\/z2eykjznebd3ilw5xzf3ry34vlg.png\"><img decoding=\"async\" alt=\"Przegl\u0105d interfejs\u00f3w graficznych dla Kubernetes\" src=\"\/wp-content\/uploads\/2020\/06\/f9c565f68e9d9ace5b66b8cc6b9e9ba7.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<i>(Wersja online tabeli <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.google.com\/spreadsheets\/d\/1wEN6lvDqKy4MKCD_d-B5sIrGGLYp1suyI-vw8Yi7E0Q\/edit#gid=0\">jest dost\u0119pna w Google Docs.<\/a><\/noindex>.)<\/i><\/p>\n<h2>Podsumowanie<\/h2>\n<p>\nGraficzne interfejsy dla Kubernetes to do\u015b\u0107 specyficzna i m\u0142oda nisza. Jednak rozwija si\u0119 ona do\u015b\u0107 aktywnie: ju\u017c mo\u017cna znale\u017a\u0107 zar\u00f3wno dojrza\u0142e rozwi\u0105zania, jak i zupe\u0142nie nowe, kt\u00f3re maj\u0105 jeszcze wiele do zrobienia. Skierowane s\u0105 na r\u00f3\u017cne opcje zastosowania, oferuj\u0105c funkcje i wygl\u0105d praktycznie na ka\u017cdy gust. Mamy nadziej\u0119, \u017ce ta recenzja pomo\u017ce w wyborze narz\u0119dzia, kt\u00f3re najlepiej odpowiada bie\u017c\u0105cym potrzebom.<\/p>\n<h2>P.S.<\/h2>\n<p>\n<i>Dzi\u0119kujemy <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/kvaps\/\" class=\"user_link\">kvaps<\/a><\/noindex> za dane dotycz\u0105ce OpenShift Console do tabeli por\u00f3wnawczej!<\/i><\/p>\n<p>Przeczytaj tak\u017ce na naszym blogu:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/468041\/\">Zapowied\u017a interfejsu webowego Kubernetes Web View (i kr\u00f3tki przegl\u0105d innych interfejs\u00f3w UI webowych dla Kubernetes)<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/468041\/\">Integracja Kubernetes Dashboard i u\u017cytkownik\u00f3w GitLab<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/454706\/\">Zosta\u0142 zaprezentowany Polaris, aby utrzyma\u0107 klastry Kubernetes w dobrym stanie<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/426985\/\">kubebox i inne pow\u0142oki konsolowe dla Kubernetes<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/506948\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0414\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u0432\u0430\u0436\u043d\u043e \u0437\u043d\u0430\u043d\u0438\u0435 \u0443\u0442\u0438\u043b\u0438\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438: \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 Kubernetes \u044d\u0442\u043e kubectl. \u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0445\u043e\u0440\u043e\u0448\u043e \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435, \u043f\u0440\u043e\u0434\u0443\u043c\u0430\u043d\u043d\u044b\u0435 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 \u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u0441\u0438\u0441\u0442\u0435\u043c. \u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u043c \u0433\u043e\u0434\u0443 \u043c\u044b \u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043e\u0431\u0437\u043e\u0440\u0430 web UI \u0434\u043b\u044f Kubernetes, \u043f\u0440\u0438\u0443\u0440\u043e\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u043a \u0430\u043d\u043e\u043d\u0441\u0443 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 Kubernetes Web [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":85864,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-85863","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0414\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u0432\u0430\u0436\u043d\u043e \u0437\u043d\u0430\u043d\u0438\u0435.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/obzor-graficheskih-interfejsov-dlya-kubernetes\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041e\u0431\u0437\u043e\u0440 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 \u0434\u043b\u044f Kubernetes | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0414\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u0432\u0430\u0436\u043d\u043e \u0437\u043d\u0430\u043d\u0438\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/obzor-graficheskih-interfejsov-dlya-kubernetes\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-06-19T23:42:31+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-06-19T23:42:31+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Przegl\u0105d graficznych interfejs\u00f3w dla Kubernetes | ProHoster","description":"Do pe\u0142nej pracy z systemem istotna jest wiedza.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/obzor-graficheskih-interfejsov-dlya-kubernetes","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041e\u0431\u0437\u043e\u0440 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 \u0434\u043b\u044f Kubernetes | ProHoster","og:description":"\u0414\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u0432\u0430\u0436\u043d\u043e \u0437\u043d\u0430\u043d\u0438\u0435.","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/obzor-graficheskih-interfejsov-dlya-kubernetes","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-06-19T23:42:31+00:00","article:modified_time":"2020-06-19T23:42:31+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"85863","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 14:28:24","updated":"2022-09-28 05:27:01","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/85863","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=85863"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/85863\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/85864"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=85863"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=85863"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=85863"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}