{"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\/en\/blog\/administrirovanie\/obzor-graficheskih-interfejsov-dlya-kubernetes","title":{"rendered":"Overview of graphical interfaces for Kubernetes","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Overview of graphical interfaces for Kubernetes\" src=\"\/wp-content\/uploads\/2020\/06\/9cb9eebaccf4e06002ded924f05ac5bb.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTo fully work with the system, it is important to know command-line utilities: in the case of Kubernetes, this is kubectl. On the other hand, well-designed graphical interfaces can perform much of the routine tasks and provide additional opportunities for system operation.<i>higher level of isolation, as if one controller is broken, the problem is confined to that specific context).<\/i>Last year, we published a translation of a short overview of the web UI for Kubernetes, timed to the announcement of the Kubernetes Web View.<\/p>\n<p>The author of that article and the utility itself is Henning Jacobs from Zalando, who positioned the novelty as \"kubectl for the web.\" He aimed to create a tool with convenient features for interaction in a technical support format (for example, quickly showing a problem via a web link) and for responding to incidents, troubleshooting across multiple clusters at once. His creation continues to evolve even now (mainly driven by the author himself). <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/468041\/\">By servicing multiple Kubernetes clusters of various scales, we are also interested in providing our clients with a visual tool. When selecting the appropriate interface, the following capabilities were key for us:<\/a><\/noindex> support for user role-based access control (RBAC); <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/hjacobs\/kube-web-view\">visualization of the status of namespaces and standard Kubernetes primitives (Deployment, StatefulSet, Service, CronJob, Job, Ingress, ConfigMap, Secret, PVC);<\/a><\/noindex>access to the command line within a pod;<\/p>\n<p>viewing pod logs;<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<ul>\n<li> checking the state of pods (<\/li>\n<li> describe status<\/li>\n<li> removing pods.<\/li>\n<li> Other features such as viewing resource consumption (by pods\/controllers\/namespaces), creating\/editing K8s primitives, are not relevant in our workflow.<\/li>\n<li> We will begin the overview with the classic Kubernetes Dashboard, which we have adopted as standard. Since the world does not stand still (meaning new GUIs are emerging for Kubernetes), we will also discuss its current alternatives, summarizing everything in a comparison table at the end of the article.<code>: In the overview, we will not repeat the solutions that have already been considered, but \u2014 for completeness \u2014 relevant options from it (K8Dash, Octant, Kubernetes Web View) are included in the final table.<\/code>);<\/li>\n<li> 1. Kubernetes Dashboard<\/li>\n<\/ul>\n<p>\nDocumentation page<\/p>\n<p>(8000+ stars on GitHub);<\/p>\n<p><i><b>NB<\/b>License: Apache 2.0; <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/468041\/\">the last article<\/a><\/noindex>, however \u2014 for a complete picture \u2014 the relevant options from it (K8Dash, Octant, Kubernetes Web View) are included in the final table.<\/i><\/p>\n<h2>1. Kubernetes Dashboard<\/h2>\n<p><\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/access-application-cluster\/web-ui-dashboard\/\">Documentation page<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/dashboard\">Repository<\/a><\/noindex> (8000+ GitHub stars);<\/li>\n<li> License: Apache 2.0;<\/li>\n<li> In brief: \"A universal web interface for Kubernetes clusters. It allows users to manage applications running in the cluster and troubleshoot them, as well as manage the cluster itself.\"<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Overview of graphical interfaces for Kubernetes\" src=\"\/wp-content\/uploads\/2020\/06\/dfeae9414643d57310bbf9813cbd171c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nThis is a general-purpose panel, considered by the authors of Kubernetes in the official documentation <i>(although it is <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/access-application-cluster\/web-ui-dashboard\/#deploying-the-dashboard-ui\">not deployable<\/a><\/noindex> by default)<\/i>. It is designed for everyday operational and debugging needs of applications in the cluster. We use it as a fully functional lightweight visual tool that provides developers with the necessary and sufficient access to the cluster. Its capabilities cover all their needs that arise while using the cluster <i>(in <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/452988\/\">from one of the authors.<\/a><\/noindex> we demonstrated some features of the panel)<\/i>. As one might easily guess, this means that it meets all our requirements listed above.<\/p>\n<p>Among the main features of the Kubernetes Dashboard:<\/p>\n<ul>\n<li> Navigation: view the main K8s objects across namespaces.<\/li>\n<li> With admin rights, the panel shows nodes, namespaces, and Persistent Volumes. For nodes, statistics on memory usage, CPU, resource allocation, metrics, status, events, etc., are available.<\/li>\n<li> View applications deployed in a namespace by their type (Deployment, StatefulSet, etc.), the relationships between them (ReplicaSet, Horizontal Pod Autoscaler), overall and personalized statistics and information.<\/li>\n<li> View services and Ingresses, as well as their relationships with pods and endpoints.<\/li>\n<li> View file objects and storages: Persistent Volume and Persistent Volume Claim.<\/li>\n<li> View and edit ConfigMap and Secret.<\/li>\n<li> View logs.<\/li>\n<li> Access the command line in containers.<\/li>\n<\/ul>\n<p>\nA significant drawback (though not for us)\u2014there is no support for multi-cluster operation. The project is actively developed by the community and supports relevant features with the release of new versions and specifications of the Kubernetes API: the latest version of the panel is <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/dashboard\/releases\/tag\/v2.0.1\">v2.0.1<\/a><\/noindex> from May 22, 2020\u2014tested for compatibility with Kubernetes 1.18.<\/p>\n<h2>2. Lens<\/h2>\n<p><\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/k8slens.dev\/\">Website<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=04v2ODsmtIs\">Presentation<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/lensapp\/lens\">Repository<\/a><\/noindex> (~4800 stars on GitHub);<\/li>\n<li> License: MIT;<\/li>\n<li> In brief: \"Kubernetes IDE.\"<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Overview of graphical interfaces for Kubernetes\" src=\"\/wp-content\/uploads\/2020\/06\/4e421e163ac6762a3a1ec9876569d029.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nThe project is positioned as a full-fledged integrated development environment (IDE) for Kubernetes. Moreover, it is optimized for working with multiple clusters and a large number of pods running in them (tested on 25,000 pods).<\/p>\n<p>Main features\/capabilities of Lens:<\/p>\n<ul>\n<li> An autonomous application that does not require any installation within the cluster (specifically, to collect all metrics Prometheus is required, but an existing installation can be used). The 'main' installation is done on a personal computer running Linux, macOS, or Windows.<\/li>\n<li> Multicluster management (supports hundreds of clusters).<\/li>\n<li> Real-time visualization of cluster state.<\/li>\n<li> Resource usage graphs and trends with history based on the built-in Prometheus.<\/li>\n<li> Access to the command line of containers and nodes in the cluster.<\/li>\n<li> Full support for Kubernetes RBAC.<\/li>\n<\/ul>\n<p>\nCurrent release \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/lensapp\/lens\/releases\/tag\/v3.5.0\">3.5.0<\/a><\/noindex> from June 16, 2020. The original version was created by Kontena, and today all intellectual property has been transferred to a special organization <noindex><a rel=\"nofollow\" href=\"https:\/\/lakendlabs.com\/\">Lakend Labs<\/a><\/noindex>, called 'an association of cloud-native geeks and technologists', which is responsible for 'the preservation and availability of Open Source software and products from Kontena.'<\/p>\n<p>Lens is the second most popular project on GitHub in the GUI category for Kubernetes, 'losing out' only to the Kubernetes Dashboard itself. All other Open Source solutions outside the CLI category are significantly less popular.<\/p>\n<p><i>* See K9s in the bonus part of the review.<\/i><\/p>\n<h2>3. Kubernetic<\/h2>\n<p><\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetic.com\/\">Website<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetic.com\/assets\/images\/deployment-nginx.png\">Demo<\/a><\/noindex>;<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/harbur\/kubernetic\">Repository (documentation only)<\/a><\/noindex> (200+ GitHub stars);<\/li>\n<li> License: proprietary;<\/li>\n<li> In brief: 'Cluster management made simple.'<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Overview of graphical interfaces for Kubernetes\" src=\"\/wp-content\/uploads\/2020\/06\/24484cec37e11f8f2e279863eee20f2f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nThis is a proprietary application that installs on a personal computer (supporting Linux, macOS, Windows). Its authors promise a complete replacement for the command-line utility, along with eliminating the need to memorize commands and even a tenfold increase in work speed.<\/p>\n<p>One of the interesting features of the tool is the built-in support for Helm charts, while one of the disadvantages is the lack of application performance metrics.<\/p>\n<p>Key features of Kubernetic:<\/p>\n<ul>\n<li> Convenient display of cluster state. A single screen for viewing all related cluster objects and their dependencies; red\/green readiness status for all objects; a viewing mode for the cluster state with real-time status updates.<\/li>\n<li> Quick action buttons for deleting and scaling applications.<\/li>\n<li> Support for multicluster operation.<\/li>\n<li> Easy management of namespaces.<\/li>\n<li> Support for Helm charts and Helm repositories (including private ones). Installation and management of charts through the web interface.<\/li>\n<\/ul>\n<p>\nThe current product price is a one-time payment of 30 euros for use by one person across any number of namespaces and clusters.<\/p>\n<h2>4. Kubevious<\/h2>\n<p><\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/kubevious.io\/\">Website<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=YVBjt-9ugTg\">Presentation<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubevious\/kubevious\">Repository<\/a><\/noindex> (~500 stars on GitHub);<\/li>\n<li> License: Apache 2.0<\/li>\n<li> In brief: \"Kubevious makes Kubernetes clusters, application configurations, and monitoring their states safe and easy to understand.\"<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Overview of graphical interfaces for Kubernetes\" src=\"\/wp-content\/uploads\/2020\/06\/b8866c4baaac6b6b2da495034afd035e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nThe idea behind the project is to create a tool designed for analyzing and debugging application configurations deployed in a cluster. The authors focused primarily on implementing these features, leaving more general aspects for later. <\/p>\n<p>Key features and functions of Kubevious:<\/p>\n<ul>\n<li> Visualization of the cluster in an application-oriented way: related objects in the interface are grouped together, forming a hierarchy.<\/li>\n<li> Clear display of dependencies in configurations and the cascading effects of their changes.<\/li>\n<li> Display of cluster configuration errors: incorrect use of labels, missed ports, etc. <i>(By the way, if you are interested in this feature, pay attention to <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/FairwindsOps\/polaris\">Polaris<\/a><\/noindex>, which we <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/454706\/\">have already written about<\/a><\/noindex>.)<\/i><\/li>\n<li> In addition to the previous point \u2014 the detection of potentially dangerous containers is available, i.e., those with excessively large privileges (attributes <code>hostPID<\/code>, <code>hostNetwork<\/code>, <code>hostIPC<\/code>, mounting <code>docker.sock<\/code> , and similar).<\/li>\n<li> An advanced cluster search system (not only by object names but also by their properties).<\/li>\n<li> Tools for capacity planning and resource optimization.<\/li>\n<li> A built-in \"time machine\" (the ability to see previous changes in object configurations).<\/li>\n<li> RBAC management through a consolidated interrelated table of Roles, RoleBindings, and ServiceAccounts.<\/li>\n<li> Works with only one cluster.<\/li>\n<\/ul>\n<p>\nThe project has a very short history (the first release was on February 11, 2020) and seems to have entered a period of either stabilization or slowdown in growth. While previous versions were released frequently, the last release (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubevious\/kubevious\/releases\/tag\/v0.5\">v0.5<\/a><\/noindex> from April 15, 2020) lagged behind the initial development pace. This is likely due to the small number of contributors: there are only 4 in the repository history, and all actual work is done by one person.<\/p>\n<h2>5. Kubewise<\/h2>\n<p><\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/flings.vmware.com\/kubewise\">Project page<\/a><\/noindex>;<\/li>\n<li> License: proprietary (will become Open Source);<\/li>\n<li> In short: \"A simple multi-platform client for Kubernetes.\"<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Overview of graphical interfaces for Kubernetes\" src=\"\/wp-content\/uploads\/2020\/06\/01d283927bb586882275a933d9cbb439.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA new product from VMware, originally created during an internal hackathon (in June 2019). It installs on a personal computer and runs on <noindex><a rel=\"nofollow\" href=\"https:\/\/www.electronjs.org\/\">Electron<\/a><\/noindex> (supports Linux, macOS, and Windows) and requires kubectl version 1.14.0 or higher.<\/p>\n<p>Key features of Kubewise:<\/p>\n<ul>\n<li> Interaction within the interface with the most commonly used Kubernetes entities: nodes, namespaces, etc.<\/li>\n<li> Support for multiple kubeconfig files for different clusters.<\/li>\n<li> A terminal with the ability to set environment variables. <code>KUBECONFIG<\/code>.<\/li>\n<li> Generation of custom kubeconfig files for a specified namespace.<\/li>\n<li> Enhanced security features (RBAC, passwords, service accounts).<\/li>\n<\/ul>\n<p>\nSo far, the project has only one release \u2014 version <noindex><a rel=\"nofollow\" href=\"https:\/\/flings.vmware.com\/kubewise#changelog\">1.1.0<\/a><\/noindex> from November 26, 2019. The authors initially planned to release it as Open Source, but due to internal issues (unrelated to technical matters) they could not do so. As of May 2020, the authors are working on the next release and are also expected to initiate the process of opening the code.<\/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\">OpenShift documentation section<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/openshift\/console\">Repository<\/a><\/noindex> (~150 stars on GitHub);<\/li>\n<li> License: Apache 2.0;<\/li>\n<li> In short: \"UI for OpenShift clusters.\"<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Overview of graphical interfaces for Kubernetes\" src=\"\/wp-content\/uploads\/2020\/06\/fe1e708c9fe68eb4b57123a0d9eca8ff.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAlthough this web interface is part of the OpenShift distribution (where it is installed using a <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/openshift\/console-operator\/\">special operator<\/a><\/noindex>), the authors <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/openshift\/console#native-kubernetes\">provided<\/a><\/noindex> the option for installation\/use in standard (vanilla) Kubernetes installations.<\/p>\n<p>The OpenShift Console has been in development for a long time, thus incorporating many functions. Here are the main ones:<\/p>\n<ul>\n<li> A shared approach to the interface \u2014 two available \"perspectives\" in the Console: for administrators and for developers. The <i>Developer perspective<\/i> groups objects in a more understandable way for developers (by applications) and focuses the interface on solving typical tasks such as deploying applications, tracking build\/deploy status, and even editing code through Eclipse Che.<\/li>\n<li> Management of workloads, networks, storage, and access rights.<\/li>\n<li> Logical separation for workloads into projects and applications. In one of the latest releases \u2014 v4.3 \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.openshift.com\/blog\/openshift-4-3-dashboard-refinements-and-the-new-project-dashboard\">the<\/a><\/noindex> a special <i>Project dashboard<\/i>, displaying familiar data (the number and statuses of deployments, pods, etc.; resource consumption and other metrics) across projects.<\/li>\n<li> Real-time display of the cluster's status, including any changes (events) that occurred; log viewing.<\/li>\n<li> Monitoring data display based on Prometheus, Alertmanager, and Grafana.<\/li>\n<li> Managing operators presented in <noindex><a rel=\"nofollow\" href=\"https:\/\/operatorhub.io\/\">OperatorHub<\/a><\/noindex>.<\/li>\n<li> Managing builds executed through Docker (from the specified repository with Dockerfile), <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/openshift\/source-to-image\">S2I<\/a><\/noindex> or arbitrary external utilities.<\/li>\n<\/ul>\n<p>\n<i><b>NB<\/b>: We did not include other <b>Kubernetes distributions<\/b> (for example, the much lesser-known <noindex><a rel=\"nofollow\" href=\"https:\/\/kubesphere.io\/\">Kubesphere<\/a><\/noindex>): although the graphical interface in them can be very advanced, it usually comes as part of the integrated stack of a large system. However, if you believe that there are solutions that function well within a vanilla K8s installation and are lacking \u2014 let us know in the comments.<\/i><\/p>\n<h2>Bonus<\/h2>\n<p><\/p>\n<h3>1. Portainer on Kubernetes in beta<\/h3>\n<p><\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/www.portainer.io\/\">Website<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/portainer\/portainer-k8s\">Repository<\/a><\/noindex> (~100 stars on GitHub);<\/li>\n<li> License: Zlib(?) <i>(this is the license of the parent project)<\/i>.<\/li>\n<\/ul>\n<p>A project by the Portainer team that developed the popular interface for working with Docker. Since the project is still in its early development stages (the first and only beta version <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/portainer\/portainer-k8s\/releases\/tag\/portainer-beta-1.0.0\">was released<\/a><\/noindex> on April 16, 2020), we did not evaluate its features. However, it might interest many: if this is you \u2014 keep an eye on its development.<\/p>\n<h3>2. IcePanel<\/h3>\n<p><\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/icepanel.io\/\">Website<\/a><\/noindex>;<\/li>\n<li> License: proprietary;<\/li>\n<li> In brief: \"A visual editor for Kubernetes.\"<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Overview of graphical interfaces for Kubernetes\" src=\"\/wp-content\/uploads\/2020\/06\/e1dfd9853a4d159d746e6f466dcab851.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nThis young desktop application aims to visualize Kubernetes resources in real time and manage them with a simple drag &amp; drop interface. Currently, it supports Pod, Service, Deployment, StatefulSet, PersistentVolume, PersistentVolumeClaim, ConfigMap, and Secret. Support for Helm is promised soon. Major drawbacks include closed-source code (it is expected to be <noindex><a rel=\"nofollow\" href=\"https:\/\/www.reddit.com\/r\/kubernetes\/comments\/h88a64\/visualize_and_edit_your_kubernetes_cluster_in\/furytcx\/\">opened \"in some form\"<\/a><\/noindex>) and lack of Linux support (currently, only versions for Windows and macOS are available, though this is probably just a matter of time).<\/p>\n<h3>3. k9s<\/h3>\n<p><\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/k9scli.io\/\">Website<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=k7zseUhaXeU\">Demo<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/derailed\/k9s\">Repository<\/a><\/noindex> (~7700 stars on GitHub);<\/li>\n<li> License: Apache 2.0;<\/li>\n<li> In brief: \"A console interface for Kubernetes that allows stylish management of the cluster.\"<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Overview of graphical interfaces for Kubernetes\" src=\"\/wp-content\/uploads\/2020\/06\/b17ececa517ff0748c4a4ff7d46c8152.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nThe utility was only included in the bonus section of the review because it offers a console GUI. However, the authors have effectively maximized the terminal's potential, providing not only a convenient interface but also six predefined themes, an advanced keyboard shortcut system, and command aliases. Their thorough approach went beyond aesthetics: the capabilities of k9s are impressive, including resource management, cluster state visualization, hierarchical representation of resources with dependencies, log viewing, RBAC support, and extensibility through plugins. All of this has been well-received by the broad K8s community: the project's GitHub stars nearly rival those of the official Kubernetes Dashboard!<\/p>\n<h3>4. Application Control Panels<\/h3>\n<p>\nIn conclusion, there's a small mini-category. It comprises two web interfaces intended not for comprehensive management of Kubernetes clusters, but for managing what is deployed within them.<\/p>\n<p>As is known, one of the most mature and widely used tools for deploying complex applications in Kubernetes is Helm. Over its existence, many packages (Helm charts) have been accumulated for simple deployment <noindex><a rel=\"nofollow\" href=\"https:\/\/hub.helm.sh\/charts\">of many popular applications.<\/a><\/noindex>Thus, it is quite logical that corresponding visual tools have emerged to manage the lifecycle of charts.<\/p>\n<h4>4.1. Monocular<\/h4>\n<p><\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/monocular\">Repository<\/a><\/noindex> (1300+ GitHub stars);<\/li>\n<li> License: Apache 2.0;<\/li>\n<li>In brief: \"A web application for searching and discovering Helm charts across multiple repositories. It serves as the foundation for the Helm hub project.\"<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Overview of graphical interfaces for Kubernetes\" src=\"\/wp-content\/uploads\/2020\/06\/9208e0a43eb0e42e6daefd1e5e700ce2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nThis development by the authors of Helm is installed in Kubernetes and operates within a single cluster, fulfilling its intended purpose. However, currently, the project is hardly being developed. Its primary purpose is to support the existence of the Helm Hub. For other needs, the authors recommend Kubeapps (see below) or Red Hat Automation Broker (part of OpenShift, but also not being developed anymore).<\/p>\n<h4>4.2. Kubeapps<\/h4>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/kubeapps.com\/\">Website<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/G1IGLW4oDF0\">Presentation<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubeapps\/kubeapps\">Repository<\/a><\/noindex> (~2100 GitHub stars);<\/li>\n<li> License: Apache 2.0<\/li>\n<li> In brief: \"Your application dashboard for Kubernetes.\"<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Overview of graphical interfaces for Kubernetes\" src=\"\/wp-content\/uploads\/2020\/06\/45d9b995a93063e2a835cfcaf1fa65ff.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA product from Bitnami, which is also installed in a Kubernetes cluster but differs from Monocular in its initial focus on working with private repositories.<\/p>\n<p>Key features and characteristics of Kubeapps:<\/p>\n<ul>\n<li> Viewing and installing Helm charts from repositories.<\/li>\n<li> Checking, updating, and deleting Helm-based applications installed in the cluster.<\/li>\n<li> Support for working with custom and private chart repositories (supports ChartMuseum and JFrog Artifactory).<\/li>\n<li> Viewing and working with external services \u2014 from Service Catalog and Service Brokers.<\/li>\n<li> Publishing installed applications using the Service Catalog Bindings mechanism.<\/li>\n<li> Support for authentication and permissions separation through RBAC.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Summary table<\/h2>\n<p>\nBelow is a summary table where we have tried to summarize and aggregate the main features of existing visual interfaces to facilitate comparison:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/z2\/ey\/kj\/z2eykjznebd3ilw5xzf3ry34vlg.png\"><img decoding=\"async\" alt=\"Overview of graphical interfaces for Kubernetes\" src=\"\/wp-content\/uploads\/2020\/06\/f9c565f68e9d9ace5b66b8cc6b9e9ba7.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<i>(The online version of the table <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.google.com\/spreadsheets\/d\/1wEN6lvDqKy4MKCD_d-B5sIrGGLYp1suyI-vw8Yi7E0Q\/edit#gid=0\">is available in Google Docs<\/a><\/noindex>.)<\/i><\/p>\n<h2>Conclusion<\/h2>\n<p>\nGraphical interfaces for Kubernetes are quite a specific and young niche. However, it is developing quite actively: you can already find both fairly mature solutions and very young ones that still have room to grow. They cater to different application scenarios, offering features and appearances for almost every taste. We hope this review helps you choose the tool that best meets your current needs.<\/p>\n<h2>P.S.<\/h2>\n<p>\n<i>Thank you <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/kvaps\/\" class=\"user_link\">kvaps<\/a><\/noindex> for the data on OpenShift Console for the comparison table!<\/i><\/p>\n<p>Also read in our blog:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/468041\/\">Announcement of the Kubernetes Web View web interface (and a brief overview of other web UIs for Kubernetes)<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/468041\/\">Integration of Kubernetes Dashboard and GitLab users<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/454706\/\">Polaris has been introduced to keep Kubernetes clusters healthy<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/426985\/\">kubebox and other console shells for Kubernetes<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Source: <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.2 - 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\/en\/blog\/administrirovanie\/obzor-graficheskih-interfejsov-dlya-kubernetes\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\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\/en\/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\udd47Overview of graphical interfaces for Kubernetes | ProHoster","description":"Knowledge of the system is essential for full functionality.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/obzor-graficheskih-interfejsov-dlya-kubernetes","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","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\/en\/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\/en\/wp-json\/wp\/v2\/posts\/85863","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=85863"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/85863\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media\/85864"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=85863"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=85863"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=85863"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}