{"id":38369,"date":"2019-10-31T22:23:18","date_gmt":"2019-10-31T19:23:18","guid":{"rendered":"https:\/\/prohoster.info\/blog\/anons-veb-interfejsa-kubernetes-web-view-i-kratkij-obzor-drugih-web-ui-dlya-kubernetes\/"},"modified":"2019-10-31T22:23:18","modified_gmt":"2019-10-31T19:23:18","slug":"anons-veb-interfejsa-kubernetes-web-view-i-kratkij-obzor-drugih-web-ui-dlya-kubernetes","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/anons-veb-interfejsa-kubernetes-web-view-i-kratkij-obzor-drugih-web-ui-dlya-kubernetes","title":{"rendered":"Announcement of the Kubernetes Web View web interface (and a brief overview of other web UIs for Kubernetes)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>Note: translation.<\/b>: The author of the original material is Henning Jacobs from Zalando. He created a new web interface for working with Kubernetes, which is marketed as \"kubectl for the web.\" Read his article to find out why this new Open Source project emerged and what shortcomings existing solutions failed to address.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Announcement of the Kubernetes Web View web interface (and a brief overview of other web UIs for Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/82abbfbfaeb30adb000b749cc97809e3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIn this publication, I explore various open-source web interfaces for Kubernetes, present my requirements for a universal UI, and explain why I developed <noindex><a rel=\"nofollow\" href=\"https:\/\/codeberg.org\/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> \u2014 an interface designed to simplify support and troubleshooting across multiple clusters.<\/p>\n<h2>Use Cases<\/h2>\n<p>\nAt Zalando, we serve a large number of Kubernetes users (900+) and clusters (100+). There are a couple of typical use cases where a specialized web tool would be very helpful:<\/p>\n<ol>\n<li> communicating with colleagues during support;<\/li>\n<li> responding to incidents and investigating their causes.<\/li>\n<\/ol>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Support<\/h3>\n<p>\nIn my experience, communication during support often goes like this:<\/p>\n<p><i>\u2014 Help, our XYZ service is down!<br \/>\n\u2014 What do you see when you run <code>kubectl describe ingress ...<\/code>?<\/i><\/p>\n<p>Or something similar for CRD:<\/p>\n<p><i>\u2014 I have an issue with the identity service\u2026<br \/>\n\u2014 What does the command return <code>kubectl describe platformcredentialsset ...<\/code>?<\/i><\/p>\n<p>Such communication usually involves entering various command variations <code>kubectl<\/code> to determine the issue. As a result, both parties are forced to constantly switch between the terminal and web chat, plus they experience different contexts.<\/p>\n<p>Therefore, I want the web frontend for Kubernetes to allow the following:<\/p>\n<ul>\n<li> users to <b>share links<\/b> and observe the same things;<\/li>\n<li> it should help <b>avoid human errors<\/b> during support: for example, logging into the wrong cluster in the command line, typos in CLI commands, etc.;<\/li>\n<li> it should allow <b>to generate custom views<\/b> to send to colleagues, such as adding label columns, displaying multiple resource types on one page;<\/li>\n<li> ideally, this web tool should enable placing <b>\"deep\" links to specific sections of YAML<\/b> (e.g., pointing to a wrong parameter causing failures).<\/li>\n<\/ul>\n<p><\/p>\n<h3>Incident response and analysis<\/h3>\n<p>\nIncident response in infrastructure requires situational awareness, the ability to assess impact, and the search for patterns across clusters. Here are some real-life examples:<\/p>\n<ul>\n<li> a critical production service has issues and you need to <b>find all Kubernetes resources by name across all clusters<\/b>, to troubleshoot;<\/li>\n<li> nodes start to fall during scaling, and you need to <b>find all pods with status \"Pending\" in all clusters<\/b>, to gauge the scope of the problem;<\/li>\n<li> individual users report a problem with a DaemonSet deployed across all clusters, and it's necessary to determine <b>whether the issue is widespread.<\/b>.<\/li>\n<\/ul>\n<p>\nMy standard solution in such cases is something like <code>for i in $clusters; do kubectl ...; done<\/code>. Obviously, one could develop a tool providing similar capabilities.<\/p>\n<h2>Existing Kubernetes web interfaces<\/h2>\n<p>\nThe Open Source world of web interfaces for Kubernetes is not very large*, so I tried to gather additional information using <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/try_except_\/status\/1153543128365850625\">Twitter<\/a><\/noindex>:<\/p>\n<p><img decoding=\"async\" alt=\"Announcement of the Kubernetes Web View web interface (and a brief overview of other web UIs for Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/75c26a70ec886700db2a81b57d672538.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>* My explanation for the limited number of web interfaces for Kubernetes: cloud services and Kubernetes vendors typically offer their own frontends, making the market for 'good' free Kubernetes UIs relatively small.<\/i><\/p>\n<p>I learned about <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/herbrandson\/k8dash\">K8Dash<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/smpio\/kubernator\">Kubernator<\/a><\/noindex> and <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/vmware\/octant\">Octant<\/a><\/noindex>. Let's take a look at them and other existing Open Source solutions, and try to understand what they are about.<\/p>\n<h2>K8Dash<\/h2>\n<p>\n<i>'K8Dash is the simplest way to manage a Kubernetes cluster.'<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Announcement of the Kubernetes Web View web interface (and a brief overview of other web UIs for Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/112e362486a294a1a39706fc32124889.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/herbrandson\/k8dash\">K8Dash<\/a><\/noindex> It looks decent and feels fast, but has several shortcomings for the aforementioned use cases:<\/p>\n<ul>\n<li> It works only within a single cluster.<\/li>\n<li> Sorting and filtering are possible, but they don't have permanent links.<\/li>\n<li> There is no support for Custom Resource Definitions (CRDs).<\/li>\n<\/ul>\n<p><\/p>\n<h2>Kubernator<\/h2>\n<p>\n<i>'Kubernator is an alternative UI for Kubernetes. Unlike the high-level Kubernetes Dashboard, it provides low-level control and a great overview of all objects in the cluster, allowing for new creations, editing, and conflict resolution. Being entirely a client application (like kubectl), it requires no backend other than the Kubernetes API server, and also respects cluster access rules.'<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Announcement of the Kubernetes Web View web interface (and a brief overview of other web UIs for Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/230115c88206d57443067a5b44ee9f31.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nThat's a pretty accurate description of <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/smpio\/kubernator\">Kubernetes<\/a><\/noindex>Unfortunately, it lacks some features:<\/p>\n<ul>\n<li> It only serves a single cluster.<\/li>\n<li> There is no list view mode (i.e., it is impossible to display all pods with status \"Pending\").<\/li>\n<\/ul>\n<p><\/p>\n<h2>Kubernetes Dashboard<\/h2>\n<p>\n<i>\"Kubernetes Dashboard is 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.\"<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Announcement of the Kubernetes Web View web interface (and a brief overview of other web UIs for Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/10b37d00ed4c6cbb05a0eb9069a4371f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUnfortunately, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/dashboard\">Kubernetes Dashboard<\/a><\/noindex> it doesn't particularly help in my support and incident response efforts because it:<\/p>\n<ul>\n<li> lacks permanent links, for example, when I filter resources or change the sorting order;<\/li>\n<li> there is no simple way to filter by status \u2014 for example, to see all pods with status \"Pending\";<\/li>\n<li> only one cluster is supported;<\/li>\n<li> CRDs are not supported (this feature is in development);<\/li>\n<li> there are no custom columns (for example, columns with labels like <code>kubectl -L<\/code>).<\/li>\n<\/ul>\n<p><\/p>\n<h2>Kubernetes Operational View (kube-ops-view)<\/h2>\n<p>\n<i>\"A system dashboard for monitoring Kubernetes cluster spaces.\"<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Announcement of the Kubernetes Web View web interface (and a brief overview of other web UIs for Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/0d63fcce4d54fbf5b40b15ad195e8ba7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nThe <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/hjacobs\/kube-ops-view\">Kubernetes Operational View<\/a><\/noindex> a completely different approach: this tool only shows cluster nodes and pods using WebGL, without any textual details of the objects. It is great for a quick overview of the cluster state (\"Are pods crashing?\")*, but not suitable for the aforementioned use cases in support and incident response.<\/p>\n<p><i>* <b>Note: translation.<\/b>: In this context, you might also be interested in our plugin <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/grafana-statusmap\">grafana-statusmap<\/a><\/noindex>, which we discussed in more detail in <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/423851\/\">from one of the authors.<\/a><\/noindex>.<\/i><\/p>\n<h2>Kubernetes Resource Report (kube-resource-report)<\/h2>\n<p>\n<i>\"Collect resource request information for pods and the Kubernetes cluster, compare it with resource consumption, and generate static HTML.\"<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Announcement of the Kubernetes Web View web interface (and a brief overview of other web UIs for Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/11e64094ca3fb317959ab03ec7c07e0d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/hjacobs\/kube-resource-report\/\">Kubernetes Resource Report<\/a><\/noindex> generates static HTML reports on resource usage and cost distribution among teams\/applications in clusters. The report is somewhat useful for support and incident response, as it helps to quickly identify which cluster has the deployed application.<\/p>\n<p><i><b>Note: translation.<\/b>: In the view of resource distribution information and its costs for cloud providers, the service and tool <noindex><a rel=\"nofollow\" href=\"https:\/\/kubecost.com\/\">Kubecost<\/a><\/noindex>, which we <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/466659\/\">recently published<\/a><\/noindex>.<\/i><\/p>\n<h2>Octant<\/h2>\n<p>\n<i>\"An extensible web platform for developers aimed at providing a better understanding of the complexities of Kubernetes clusters.\"<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Announcement of the Kubernetes Web View web interface (and a brief overview of other web UIs for Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/0f949ec05a6b403e7093ee38648eb493.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/vmware\/octant\">Octant<\/a><\/noindex>, created in VMware, is a new product that I learned about relatively recently. It allows for convenient exploration of the cluster on a local machine (it even has visualizations), but it only slightly addresses the issues of support and incident response. Disadvantages of Octant:<\/p>\n<ul>\n<li> No search across clusters.<\/li>\n<li> Works only on a local machine (not deployable in a cluster).<\/li>\n<li> Cannot sort\/filter objects (only label selectors are supported).<\/li>\n<li> Custom columns cannot be set.<\/li>\n<li> Cannot list objects by namespaces.<\/li>\n<\/ul>\n<p>\nI also had issues with the stability of Octant with Zalando clusters: on some CRDs <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/vmware\/octant\/issues\/72\">it crashed.<\/a><\/noindex>.<\/p>\n<h2>I present Kubernetes Web View<\/h2>\n<p>\n<i>the 'kubectl for the web.'<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Announcement of the Kubernetes Web View web interface (and a brief overview of other web UIs for Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/e7b0eb0650de76516bbe05305b9dea9b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAfter analyzing the available interfaces for Kubernetes, I decided to create a new one: <noindex><a rel=\"nofollow\" href=\"https:\/\/codeberg.org\/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>Because essentially, I just need all the power <code>kubectl<\/code> on the web, namely:<\/p>\n<ul>\n<li> availability of all (read-only) operations that users prefer to do with kubectl;<\/li>\n<li> all URLs must be permanent and present the page in its original form so that colleagues can share them and use them in other tools;<\/li>\n<li> support for all Kubernetes objects, allowing for solving any type of issue;<\/li>\n<li> resource lists should be downloadable for further work (in spreadsheets, CLI tools like <code>grep<\/code>) and storage (for example, for postmortems);<\/li>\n<li> support for resource selection by labels (similar to <code>kubectl get .. -l<\/code>);<\/li>\n<li> the ability to create combined lists of different types of resources (similar to <code>kubectl get all<\/code>) to get a comprehensive operational picture among colleagues (for instance, during incident response);<\/li>\n<li> the ability to add customizable 'smart' deep links to other tools, such as dashboards, loggers, application registries, etc., to facilitate searching\/troubleshooting and incident response;<\/li>\n<li> the frontend should be as simple as possible (clean HTML) to avoid accidental issues, such as hanging JavaScript;<\/li>\n<li> support for multiple clusters to simplify interaction during remote consulting (for example, remembering just one URL);<\/li>\n<li> situational analysis should be made easier when possible (for example, with links to download resources across all clusters\/namespaces);<\/li>\n<li> additional capabilities for generating flexible links and extracting textual information, for example, to allow colleagues to refer to a specific section in the resource description (line in YAML);<\/li>\n<li> customization options tailored to specific client requirements, such as creating special display templates for CRD, custom table views, or modifying CSS styles;<\/li>\n<li> tools for further exploration in the command line (for instance, showing complete commands <code>kubectl<\/code>, ready for copying);<\/li>\n<\/ul>\n<p>\nOutside the tasks addressed by Kubernetes Web View <i>(non-goals)<\/i> remain:<\/p>\n<ul>\n<li> abstraction of Kubernetes objects;<\/li>\n<li> application management (e.g., managing deployments, Helm charts, etc.);<\/li>\n<li> write operations (should be carried out through secure CI\/CD tooling and\/or GitOps);<\/li>\n<li> a beautiful interface (JavaScript, themes, etc.);<\/li>\n<li> visualizations (see <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/hjacobs\/kube-ops-view\">kube-ops-view<\/a><\/noindex>);<\/li>\n<li> cost analysis (see <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/hjacobs\/kube-resource-report\/\">kube-resource-report<\/a><\/noindex>).<\/li>\n<\/ul>\n<p>\nHow does Kubernetes Web View assist in incident support and response?<\/p>\n<h3>Support<\/h3>\n<p><\/p>\n<ul>\n<li> <b>All links are permanent<\/b>, making it easier to share information with colleagues.<\/li>\n<li> You can create <b>your own views<\/b>, for example, display all Deployments and Pods with a specific label in two particular clusters (multiple cluster names and resource types can be specified in the link, separated by commas).<\/li>\n<li> You can refer to <b>specific lines in the YAML file<\/b> of the object, pointing out potential issues in the object's specification.<\/li>\n<\/ul>\n<p><img decoding=\"async\" alt=\"Announcement of the Kubernetes Web View web interface (and a brief overview of other web UIs for Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/9e0b3ab31181f8d93323c413d9185888.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Searching across clusters in Kubernetes Web View<\/i><\/p>\n<h3>Incident response<\/h3>\n<p><\/p>\n<ul>\n<li> <b>Global search<\/b> <i>(global search)<\/i> allows searching for objects across all clusters.<\/li>\n<li> <b>List views<\/b> can display all objects with a specific status\/column in all clusters (for example, we need to find all pods with status \"Pending\").<\/li>\n<li> <b>Object lists can be downloaded<\/b> in tab-separated values (TSV) format for further analysis.<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/kube-web-view.readthedocs.io\/en\/latest\/customization.html#external-links\">Custom external links<\/a><\/noindex> allow switching to corresponding dashboards and other tools.<\/li>\n<\/ul>\n<p><img decoding=\"async\" alt=\"Announcement of the Kubernetes Web View web interface (and a brief overview of other web UIs for Kubernetes)\" src=\"\/wp-content\/uploads\/2019\/09\/ac275aa6b234988f40a2d0cde2ac4870.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Kubernetes Web View: a list of pods with status \"Pending\" in all clusters<\/i><\/p>\n<p>If you wish to try Kubernetes Web View, I recommend checking out <noindex><a rel=\"nofollow\" href=\"https:\/\/kube-web-view.readthedocs.io\/\">documentation<\/a><\/noindex> or taking a look at <noindex><a rel=\"nofollow\" href=\"https:\/\/kube-web-view.demo.j-serv.de\/\">the live demo version<\/a><\/noindex>.<\/p>\n<p>Certainly, the interface could use some improvement, but for now, Kubernetes Web View serves as a tool for 'advanced users' who are not averse to manually manipulating URL paths if necessary. If you have any comments\/suggestions\/wishes, please reach out <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/try_except_\">to me on Twitter<\/a><\/noindex>!<\/p>\n<p>This article provides a brief account of the background that led to the creation of Kubernetes Web View. More will follow! <i>(<b>Note: translation.<\/b>: You can expect them in <noindex><a rel=\"nofollow\" href=\"https:\/\/srcco.de\/\">the author's blog<\/a><\/noindex>.)<\/i><\/p>\n<h2>P.S. from the translator<\/h2>\n<p>\nAlso read in our blog:<\/p>\n<ul>\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<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/462707\/\">Tools for application developers running in Kubernetes<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/news\/t\/467433\/\">A new console utility, kubelive, has emerged for interactive work with Kubernetes<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/330198\/\">Useful utilities for working with Kubernetes<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/468041\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u0410\u0432\u0442\u043e\u0440 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430 \u2014 Henning Jacobs \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Zalando. \u041e\u043d \u0441\u043e\u0437\u0434\u0430\u043b \u043d\u043e\u0432\u044b\u0439 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Kubernetes, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u00abkubectl \u0434\u043b\u044f \u0432\u0435\u0431\u0430\u00bb. \u041f\u043e\u0447\u0435\u043c\u0443 \u043d\u043e\u0432\u044b\u0439 Open Source-\u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0438 \u043a\u0430\u043a\u0438\u043c \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u044f\u043c \u043d\u0435 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u0438\u043b\u0438 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u2014 \u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0432 \u0435\u0433\u043e \u0441\u0442\u0430\u0442\u044c\u0435. \u0412 \u044d\u0442\u043e\u0439 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u044f \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b Kubernetes \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28800,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-38369","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=\"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u0410\u0432\u0442\u043e\u0440 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430 \u2014 Henning Jacobs \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Zalando. \u041e\u043d \u0441\u043e\u0437\u0434\u0430\u043b \u043d\u043e\u0432\u044b\u0439 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Kubernetes, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u00abkubectl \u0434\u043b\u044f \u0432\u0435\u0431\u0430\u00bb.\" \/>\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\/anons-veb-interfejsa-kubernetes-web-view-i-kratkij-obzor-drugih-web-ui-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\u0410\u043d\u043e\u043d\u0441 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 Kubernetes Web View (\u0438 \u043a\u0440\u0430\u0442\u043a\u0438\u0439 \u043e\u0431\u0437\u043e\u0440 \u0434\u0440\u0443\u0433\u0438\u0445 web UI \u0434\u043b\u044f Kubernetes) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u0410\u0432\u0442\u043e\u0440 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430 \u2014 Henning Jacobs \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Zalando. \u041e\u043d \u0441\u043e\u0437\u0434\u0430\u043b \u043d\u043e\u0432\u044b\u0439 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Kubernetes, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u00abkubectl \u0434\u043b\u044f \u0432\u0435\u0431\u0430\u00bb.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/anons-veb-interfejsa-kubernetes-web-view-i-kratkij-obzor-drugih-web-ui-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=\"2019-10-31T19:23:18+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:23:18+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\udd47Announcement of the Kubernetes Web View web interface (and a brief overview of other web UIs for Kubernetes) | ProHoster","description":"Note from the translator: The author of the original material is Henning Jacobs from Zalando. He created a new web interface for working with Kubernetes, which is marketed as 'kubectl for the web'.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/anons-veb-interfejsa-kubernetes-web-view-i-kratkij-obzor-drugih-web-ui-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\u0410\u043d\u043e\u043d\u0441 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 Kubernetes Web View (\u0438 \u043a\u0440\u0430\u0442\u043a\u0438\u0439 \u043e\u0431\u0437\u043e\u0440 \u0434\u0440\u0443\u0433\u0438\u0445 web UI \u0434\u043b\u044f Kubernetes) | ProHoster","og:description":"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u0410\u0432\u0442\u043e\u0440 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430 \u2014 Henning Jacobs \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Zalando. \u041e\u043d \u0441\u043e\u0437\u0434\u0430\u043b \u043d\u043e\u0432\u044b\u0439 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Kubernetes, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u00abkubectl \u0434\u043b\u044f \u0432\u0435\u0431\u0430\u00bb.","og:url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/anons-veb-interfejsa-kubernetes-web-view-i-kratkij-obzor-drugih-web-ui-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":"2019-10-31T19:23:18+00:00","article:modified_time":"2019-10-31T19:23:18+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"38369","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":"2026-01-23 21:44:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:10:24","updated":"2026-01-23 21:44:19","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\/38369","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=38369"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/38369\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media\/28800"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=38369"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=38369"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=38369"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}