{"id":97736,"date":"2020-10-21T14:42:17","date_gmt":"2020-10-21T12:42:17","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/obzor-k9s-prodvinutogo-terminalnogo-interfejsa-dlya-kubernetes"},"modified":"2020-10-21T14:42:17","modified_gmt":"2020-10-21T12:42:17","slug":"obzor-k9s-prodvinutogo-terminalnogo-interfejsa-dlya-kubernetes","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/obzor-k9s-prodvinutogo-terminalnogo-interfejsa-dlya-kubernetes","title":{"rendered":"\u00dcberblick \u00fcber k9s \u2013 eine erweiterte Terminaloberfl\u00e4che f\u00fcr Kubernetes.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber k9s \u2013 eine erweiterte Terminaloberfl\u00e4che f\u00fcr Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/10\/11274841ee84b0e2c3ac74c9c738faba.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/k9scli.io\/\">K9s<\/a><\/noindex> bietet eine Benutzeroberfl\u00e4che f\u00fcr die Interaktion mit Kubernetes-Clustern. Ziel dieses Open-Source-Projekts ist es, eine benutzerfreundliche Navigation durch Anwendungen in K8s, deren \u00dcberwachung und Verwaltung zu erleichtern. K9s \u00fcberwacht kontinuierlich \u00c4nderungen in Kubernetes und bietet schnelle Befehle f\u00fcr die Arbeit mit den beobachteten Ressourcen.<\/p>\n<p>Das Projekt wurde in Go entwickelt und besteht seit \u00fcber anderthalb Jahren: Der erste Commit wurde am 1. Februar 2019 vorgenommen. Zum Zeitpunkt des Schreibens des Artikels hat es \u00fcber 9000 Sterne auf <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/derailed\/k9s\">GitHub<\/a><\/noindex> und etwa 80 Mitwirkende. Schauen wir uns an, was K9s kann.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Installation und Ausf\u00fchrung<\/h2>\n<p>\nEs handelt sich um eine Client-Anwendung (in Bezug auf das Kubernetes-Cluster), die am einfachsten als Docker-Image gestartet werden kann:<\/p>\n<pre><code class=\"bash\">docker run --rm -it -v $KUBECONFIG:\/root\/.kube\/config quay.io\/derailed\/k9s<\/code><\/pre>\n<p>\nF\u00fcr einige Linux-Distributionen und andere Betriebssysteme sind ebenfalls installierbare <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/derailed\/k9s#installation\">Pakete<\/a><\/noindex>. Im Allgemeinen kann f\u00fcr Linux-Systeme eine Bin\u00e4rdatei installiert werden:<\/p>\n<pre><code class=\"bash\">sudo wget -qO- https:\/\/github.com\/derailed\/k9s\/releases\/download\/v0.22.0\/k9s_Linux_x86_64.tar.gz | tar zxvf - -C \/tmp\/\nsudo mv \/tmp\/k9s \/usr\/local\/bin<\/code><\/pre>\n<p>\nEs gibt keine spezifischen Anforderungen an das K8s-Cluster selbst. Nach Berichten funktioniert die Anwendung auch mit \u00e4lteren Kubernetes-Versionen wie 1.12.<\/p>\n<p>Die Anwendung wird mit der Standardkonfiguration gestartet. <code>.kube\/config<\/code> \u2014 \u00e4hnlich wie es <code>kubectl<\/code>.<\/p>\n<h2>Navigation<\/h2>\n<p>\nStandardm\u00e4\u00dfig \u00f6ffnet sich ein Fenster mit dem Standard-Namespace, der f\u00fcr den Kontext festgelegt ist. Das hei\u00dft, wenn Sie <code>kubectl config set-context --current --namespace=test<\/code>eingeben, wird auch dieser Namespace ge\u00f6ffnet. <code>test<\/code>. <i>(Zur \u00c4nderung von Kontexten\/Namensr\u00e4umen siehe unten.) <\/i><\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber k9s \u2013 eine erweiterte Terminaloberfl\u00e4che f\u00fcr Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/10\/820fcbdd376abc95d67bf202f34c880c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWechseln zu <b>Befehlsmodus<\/b> erfolgt durch Dr\u00fccken von \u201e:\u201c. Danach k\u00f6nnen Sie die Funktion von k9s mit Befehlen steuern \u2014 zum Beispiel k\u00f6nnen Sie zur Anzeige der Liste von StatefulSets (im aktuellen Namespace) eingeben: <code>:sts<\/code>.<\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber k9s \u2013 eine erweiterte Terminaloberfl\u00e4che f\u00fcr Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/10\/840724fc656b22e67519c53983065862.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nF\u00fcr einige andere Kubernetes-Ressourcen:<\/p>\n<ul>\n<li> <code>:ns<\/code> \u2014 Namensr\u00e4ume;<\/li>\n<li> <code>:deploy<\/code> \u2014 Deployments;<\/li>\n<li> <code>:ing<\/code> \u2014 Ingresses;<\/li>\n<li> <code>:svc<\/code> \u2014 Dienste.<\/li>\n<\/ul>\n<p>\nUm eine vollst\u00e4ndige Liste der verf\u00fcgbaren Ressourcentypen anzuzeigen, gibt es den Befehl <code>:aliases<\/code>.<\/p>\n<p>Es ist auch praktisch, die Liste der Befehle zu sehen, die \u00fcber die aktuellen Tastenkombinationen im Fenster verf\u00fcgbar sind: daf\u00fcr reicht es, \u201e?\u201c zu dr\u00fccken.<\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber k9s \u2013 eine erweiterte Terminaloberfl\u00e4che f\u00fcr Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/10\/54d329f9eeda2424f457aef6b977ae63.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAu\u00dferdem gibt es in k9s einen <b>Suchmodus<\/b>, in den Sie wechseln k\u00f6nnen, indem Sie \u201e\/\u201c eingeben. Damit wird im Inhalt des aktuellen \u201eFensters\u201c gesucht. Angenommen, Sie haben zuvor eingegeben: <code>:ns<\/code>, Sie haben eine Liste von Namespaces ge\u00f6ffnet. Wenn es zu viele sind, k\u00f6nnen Sie im Fenster mit den Namespaces einfach eingeben, um das Scrollen nach unten zu vermeiden. <code>\/mynamespace<\/code>.<\/p>\n<p>Um nach Labels zu suchen, k\u00f6nnen Sie alle Pods im gew\u00fcnschten Namensraum ausw\u00e4hlen und anschlie\u00dfend beispielsweise eingeben, <code>\/ -l app=whoami<\/code>. Wir erhalten eine Liste der Pods mit diesem Label:<\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber k9s \u2013 eine erweiterte Terminaloberfl\u00e4che f\u00fcr Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/10\/88b8e09a5b7819bcf49334bf351b040b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDie Suche funktioniert in allen Fensterarten, einschlie\u00dflich Logs, Ansicht von YAML-Manifests und <code>describe<\/code> f\u00fcr Ressourcen \u2014 weitere Informationen zu diesen Funktionen finden Sie weiter unten.<\/p>\n<p>Wie sieht die allgemeine Abfolge der Schritte zur Navigation aus?<\/p>\n<p>Mit dem Befehl <code>:ctx<\/code> kann der Kontext ausgew\u00e4hlt werden:<\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber k9s \u2013 eine erweiterte Terminaloberfl\u00e4che f\u00fcr Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/10\/a5e780a3fc98961913c966222e167d51.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUm einen Namespace auszuw\u00e4hlen, gibt es den bereits erw\u00e4hnten Befehl <code>:ns<\/code>, danach kann die Suche f\u00fcr den gew\u00fcnschten Namespace genutzt werden: <code>\/test<\/code>.<\/p>\n<p>Wenn nun die betreffende Ressource (zum Beispiel derselbe StatefulSet) ausgew\u00e4hlt wird, erscheint entsprechende Informationen: wie viele Pods ausgef\u00fchrt werden, mit kurzen Informationen \u00fcber sie.<\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber k9s \u2013 eine erweiterte Terminaloberfl\u00e4che f\u00fcr Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/10\/8e0d8c41b8673b7c29f2605d3ae59503.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEs k\u00f6nnen nur die Pods von Interesse sein \u2014 dann gen\u00fcgt es, einzugeben <code>:pod<\/code>. Im Falle von ConfigMaps (<code>:cm<\/code> \u2014 f\u00fcr die Liste dieser Ressourcen) kann das gew\u00fcnschte Objekt ausgew\u00e4hlt und auf \u00abu\u00bb gedr\u00fcckt werden, woraufhin K9s anzeigt, wer genau diesen CM verwendet.<\/p>\n<p>Eine weitere praktische Funktion zur Anzeige von Ressourcen ist deren <b>\u201eR\u00f6ntgen\u201c (XRay-Ansicht)<\/b>. Dieser Modus wird durch den Befehl ausgel\u00f6st <code>:xray RESOURCE<\/code> und\u2026 ehrlich gesagt, es ist einfacher, zu zeigen, wie es funktioniert, als zu erkl\u00e4ren. Hier ist eine Illustration f\u00fcr StatefulSets:<\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber k9s \u2013 eine erweiterte Terminaloberfl\u00e4che f\u00fcr Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/10\/de40ebfe06ca935d2bc36323b3f16f3e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>(Jede dieser Ressourcen kann bearbeitet, ver\u00e4ndert und verwaltet werden) <code>describe<\/code>.)<\/i><\/p>\n<p>Hier ist ein Deployment mit Ingress:<\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber k9s \u2013 eine erweiterte Terminaloberfl\u00e4che f\u00fcr Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/10\/598c1b25b787dcb1cf9660fa730d74c5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Arbeiten mit Ressourcen<\/h2>\n<p>\n\u00dcber jede Ressource k\u00f6nnen Informationen im YAML-Format oder deren <code>describe<\/code> erhalten werden, indem die entsprechenden Tastenkombinationen gedr\u00fcckt werden (\u201ey\u201c f\u00fcr YAML und \u201ed\u201c f\u00fcr Details). Die Grundoperationen sind in der Tat noch zahlreicher: Ihre Liste und die Tastenkombinationen sind dank der praktischen \u201eKopfleiste\u201c im Interface stets sichtbar (versteckt durch Dr\u00fccken von Ctrl + e).<\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber k9s \u2013 eine erweiterte Terminaloberfl\u00e4che f\u00fcr Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/10\/6bbe4ca07442e1e14a462586d14ef98d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nBeim Bearbeiten einer Ressource (\u201ee\u201c nach der Auswahl) \u00f6ffnet sich der Texteditor, der in den Umgebungsvariablen definiert ist (<code>export EDITOR=vim<\/code>).<\/p>\n<p>So sieht die detaillierte Beschreibung der Ressource aus (<code>describe<\/code>):<\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber k9s \u2013 eine erweiterte Terminaloberfl\u00e4che f\u00fcr Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/10\/05fdb57e3b85d1b81c9bfc6414aca117.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSolche Ausgaben (oder die Anzeige des YAML-Manifests der Ressource) k\u00f6nnen mit der g\u00e4ngigen Tastenkombination Ctrl + s gespeichert werden. Wo genau es gespeichert wird, ist aus der Nachricht K9s bekannt:<\/p>\n<pre><code class=\"plaintext\">Log \/tmp\/k9s-screens-root\/kubernetes\/Describe-1601244920104133900.yml erfolgreich gespeichert!<\/code><\/pre>\n<p>\nAus den erstellten Backup-Dateien k\u00f6nnen Ressourcen wiederhergestellt werden, nachdem die systematischen Labels und Anmerkungen entfernt wurden. Dazu m\u00fcssen Sie ins Verzeichnis wechseln (<code>:dir \/tmp<\/code>), danach w\u00e4hlen Sie die ben\u00f6tigte Datei aus und wenden Sie <code>apply<\/code>.<\/p>\n<p>\u00dcbrigens k\u00f6nnen Sie jederzeit auf ein vorheriges ReplicaSet zur\u00fccksetzen, falls Probleme mit dem aktuellen auftreten. W\u00e4hlen Sie dazu das ben\u00f6tigte RS (<code>:rs<\/code> aus deren Liste):<\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber k9s \u2013 eine erweiterte Terminaloberfl\u00e4che f\u00fcr Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/10\/de0ea37d970c51514559288661bdc6f2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u2026 und f\u00fchren Sie das Rollback mit Ctrl + l aus. Wir sollten eine Benachrichtigung erhalten, dass alles erfolgreich war:<\/p>\n<pre><code class=\"plaintext\">k9s\/whoami-5cfbdbb469 erfolgreich zur\u00fcckgesetzt<\/code><\/pre>\n<p>\nUm die Replikate zu skalieren, gen\u00fcgt es, \u00abs\u00bb (scale) zu dr\u00fccken und die gew\u00fcnschte Anzahl an Instanzen auszuw\u00e4hlen:<\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber k9s \u2013 eine erweiterte Terminaloberfl\u00e4che f\u00fcr Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/10\/145093030db754c9ef85810cbba3ed5c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIn jeden der Container k\u00f6nnen Sie \u00fcber die Shell gelangen: wechseln Sie dazu zu dem gew\u00fcnschten Pod, dr\u00fccken Sie \u00abs\u00bb (shell) und w\u00e4hlen Sie den Container aus.<\/p>\n<h2>Weitere M\u00f6glichkeiten<\/h2>\n<p>\nNat\u00fcrlich wird auch die Anzeige von Logs unterst\u00fctzt (\u00abl\u00bb f\u00fcr die ausgew\u00e4hlte Ressource). Und um neue Logs zu sehen, m\u00fcssen Sie nicht st\u00e4ndig Enter dr\u00fccken: eine Markierung (\u00abm\u00bb) gen\u00fcgt, danach werden nur neue Nachrichten verfolgt.<\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber k9s \u2013 eine erweiterte Terminaloberfl\u00e4che f\u00fcr Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/10\/05aa9657f744b9e3d09034862e1befe7.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIn demselben Fenster k\u00f6nnen Sie auch den Zeitrahmen f\u00fcr die Ausgabe der Logs ausw\u00e4hlen:<\/p>\n<ul>\n<li> Taste \u00ab1\u00bb \u2014 f\u00fcr 1 Minute;<\/li>\n<li> \u00ab2\u00bb \u2014 5 Minuten;<\/li>\n<li> \u00ab3\u00bb \u2014 15 Minuten;<\/li>\n<li> \u00ab4\u00bb \u2014 30 Minuten;<\/li>\n<li> \u00ab5\u00bb \u2014 1 Stunde;<\/li>\n<li> \u201e0\u201c \u2014 f\u00fcr die gesamte Lebensdauer des Pods.<\/li>\n<\/ul>\n<p>\nDer spezielle Betriebsmodus von Pulse (Befehl <code>:pulse<\/code>) zeigt allgemeine Informationen \u00fcber das Kubernetes-Cluster an:<\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber k9s \u2013 eine erweiterte Terminaloberfl\u00e4che f\u00fcr Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/10\/413d241ad7518f49c523fa59f51702a6.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHier k\u00f6nnen Sie die Anzahl der Ressourcen und deren Zustand sehen (die gr\u00fcnen zeigen an, dass sie den Status <code>Running<\/code>).<\/p>\n<p>Eine weitere interessante Funktion von K9s hei\u00dft <b>Popeye<\/b>. Sie \u00fcberpr\u00fcft alle Ressourcen auf bestimmte Korrektheitskriterien und gibt das erreichte \u201eRating\u201c mit Erkl\u00e4rungen aus. So kann man zum Beispiel sehen, dass es an Proben oder Limitierungen fehlt oder dass ein bestimmter Container als Root ausgef\u00fchrt werden kann...<\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber k9s \u2013 eine erweiterte Terminaloberfl\u00e4che f\u00fcr Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/10\/a6bc5ea45b5749fb4e1038b82374b3c4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEs gibt grundlegende Unterst\u00fctzung f\u00fcr Helm. So kann man zum Beispiel die im Cluster bereitgestellten Releases einsehen:<\/p>\n<pre><code class=\"bash\">:helm all # alle\n:helm $namespace # im spezifischen Namensraum\n<\/code><\/pre>\n<p><\/p>\n<h2>Benchmark<\/h2>\n<p>\nIn K9s ist sogar <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/rakyll\/hey\">hey<\/a><\/noindex> \u2014 ein einfacher Lastgenerator f\u00fcr HTTP-Server, eine Alternative zum bekannteren ab (ApacheBench).<\/p>\n<p>Um ihn zu aktivieren, ist eine Aktivierung des Port-Forward in dem Pod erforderlich. W\u00e4hlen Sie dazu den Pod aus und dr\u00fccken Sie Shift + f, um in das Untermen\u00fc des Port-Forward mit dem Alias \u201epf\u201c zu gelangen.<\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber k9s \u2013 eine erweiterte Terminaloberfl\u00e4che f\u00fcr Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/10\/651f25269c0998c716ab9c0c4b5e0455.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNach der Auswahl des Ports und Dr\u00fccken von Ctrl + b wird der Benchmark selbst gestartet. Die Ergebnisse werden in <code>\/tmp<\/code> gespeichert und sind f\u00fcr eine sp\u00e4tere Ansicht in K9s verf\u00fcgbar. <\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber k9s \u2013 eine erweiterte Terminaloberfl\u00e4che f\u00fcr Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/10\/57b2fe1d078e9aca1c6afccd318094da.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<img decoding=\"async\" alt=\"\u00dcberblick \u00fcber k9s \u2013 eine erweiterte Terminaloberfl\u00e4che f\u00fcr Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/10\/3b2bf031e8442e47eb3482187ac5b64d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUm die Konfiguration des Benchmarks zu \u00e4ndern, m\u00fcssen Sie eine Datei erstellen. <code>$HOME\/.k9s\/bench-.yml<\/code> (dies wird f\u00fcr jeden Cluster festgelegt).<\/p>\n<p><i>NB: Es ist wichtig, dass die Erweiterung aller YAML-Dateien im Verzeichnis <code>.k9s<\/code> genau <code>.yml<\/code> (<code>.yaml<\/code> nicht korrekt funktioniert).<\/i><\/p>\n<p>Beispielkonfiguration:<\/p>\n<pre><code class=\"bash\">benchmarks:\n  defaults:\n    # Anzahl der Threads\n    concurrency: 2\n    # Anzahl der Anfragen\n    requests: 1000\n  containers:\n    # Einstellungen f\u00fcr den Benchmark-Container\n    # Container wird definiert als namespace\/pod-name:container-name\n    default\/nginx:nginx:\n      concurrency: 2\n      requests: 10000\n      http:\n        path: \/\n        method: POST\n        body:\n          {\"foo\":\"bar\"}\n        header:\n          Accept:\n            - text\/html\n          Content-Type:\n            - application\/json\n services:\n    # Benchmarks k\u00f6nnen bei Diensten vom Typ NodePort und LoadBalancer durchgef\u00fchrt werden\n    # Syntax: namespace\/service-name\n    default\/nginx:\n      concurrency: 5\n      requests: 500\n      http:\n        method: GET\n        path: \/auth\n      auth:\n        user: flant\n        password: s3cr3tp455w0rd\n<\/code><\/pre>\n<p><\/p>\n<h2>Benutzeroberfl\u00e4che<\/h2>\n<p>\nDie Sicht der Spalten f\u00fcr die Ressourcenlisten wird durch das Erstellen einer Datei modifiziert. <code>$HOME\/.k9s\/views.yml<\/code>. Ein Beispiel f\u00fcr ihren Inhalt:<\/p>\n<pre><code class=\"plaintext\">k9s:\n views:\n   v1\/pods:\n     columns:\n       - AGE\n       - NAMESPACE\n       - NAME\n       - IP\n       - NODE\n       - STATUS\n       - READY\n   v1\/services:\n     columns:\n       - AGE\n       - NAMESPACE\n       - NAME\n       - TYPE\n       - CLUSTER-IP\n<\/code><\/pre>\n<p>\n<i>Es fehlt jedoch eine Spalte f\u00fcr Labels, wof\u00fcr es eine <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/derailed\/k9s\/issues\/605\">Issue im Projekt gibt.<\/a><\/noindex>.<\/i><\/p>\n<p>Die Sortierung nach Spalten erfolgt mit Tastenkombinationen:<\/p>\n<ul>\n<li> Shift + n \u2014 nach Namen;<\/li>\n<li> Shift + o \u2014 nach Knoten;<\/li>\n<li> Shift + i \u2014 nach IP;<\/li>\n<li> Shift + a \u2014 nach Lebensdauer des Containers;<\/li>\n<li> Shift + t \u2014 nach Anzahl der Neustarts;<\/li>\n<li> Shift + r \u2014 nach Bereitschaftsstatus;<\/li>\n<li> Shift + c \u2014 nach CPU-Verbrauch;<\/li>\n<li> Shift + m \u2014 nach Speicherverbrauch.<\/li>\n<\/ul>\n<p>\nFalls jemand das standardm\u00e4\u00dfige Farbschema nicht mag, unterst\u00fctzt K9s sogar <noindex><a rel=\"nofollow\" href=\"https:\/\/k9scli.io\/topics\/skins\/\">Skins<\/a><\/noindex>. Fertige Beispiele (7 St\u00fcck) sind verf\u00fcgbar <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/derailed\/k9s\/tree\/master\/skins\">hier<\/a><\/noindex>. Hier ist ein Beispiel f\u00fcr eines dieser Skins <i>(in der Marine)<\/i>:<\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber k9s \u2013 eine erweiterte Terminaloberfl\u00e4che f\u00fcr Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/10\/4a4378f2c2d36eb3985e2b71d733c444.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Plugins<\/h2>\n<p>\nLetztendlich <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/derailed\/k9s\/tree\/master\/plugins\">Plugins<\/a><\/noindex> erlauben sie es, die M\u00f6glichkeiten von K9s zu erweitern. Ich habe in meiner Arbeit nur eines davon verwendet \u2014 <code>kubectl get all -n $namespace<\/code>.<\/p>\n<p>Das sieht folgenderma\u00dfen aus. Erstellen Sie eine Datei <code>$HOME\/.k9s\/plugin.yml<\/code> mit folgendem Inhalt:<\/p>\n<pre><code class=\"bash\">plugin:\n get-all:\n   shortCut: g    \n   confirm: false    \n   description: alle abrufen\n   scopes:\n   - all\n   command: sh\n   background: false\n   args:\n   - -c\n   - \"kubectl -n $NAMESPACE get all -o wide | less\"<\/code><\/pre>\n<p>\nJetzt k\u00f6nnen Sie in den Namespace wechseln und auf \u201eg\u201c dr\u00fccken, um die entsprechende Kommando auszuf\u00fchren:<\/p>\n<p><img decoding=\"async\" alt=\"\u00dcberblick \u00fcber k9s \u2013 eine erweiterte Terminaloberfl\u00e4che f\u00fcr Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/10\/c79bbf26b6c321a97cedabf22f1699b9.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUnter den Plugins gibt es beispielsweise Integrationen mit kubectl-jq und dem Log-Anzeige-Tool <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/wercker\/stern\">stern<\/a><\/noindex>.<\/p>\n<h2>Fazit<\/h2>\n<p>\nMeiner Meinung nach erwies sich K9s als sehr praktisch: Man gew\u00f6hnt sich schnell daran, alles N\u00f6tige ohne Verwendung zu suchen. <code>kubectl<\/code>. Ich war beeindruckt von der Protokollanzeige und deren Speicherung, der schnellen Bearbeitung von Ressourcen und der allgemeinen Geschwindigkeit*. Besonders n\u00fctzlich war der Popeye-Modus. Erw\u00e4hnenswert sind zudem die M\u00f6glichkeiten, Plugins zu erstellen und die Anwendung nach eigenen Bed\u00fcrfnissen anzupassen.<\/p>\n<p><i>* Obwohl ich bei gro\u00dfen Protokollmengen auch langsame Reaktionen von K9s bemerkt habe. In solchen Momenten ben\u00f6tigte das Tool 2 Kerne des Intel Xeon E312xx und konnte sogar einfrieren.<\/i><\/p>\n<p>Was fehlt momentan? Eine schnelle R\u00fcckkehr zur vorherigen Version (nicht die Rede von RS) ohne den Wechsel in das Verzeichnis. Zudem erfolgt die Wiederherstellung nur f\u00fcr <i>nur<\/i> die Ressource: Wenn Sie eine Annotation oder ein Label gel\u00f6scht haben, m\u00fcssen Sie die gesamte Ressource l\u00f6schen und wiederherstellen (hier ist ein Wechsel in das Verzeichnis erforderlich). Ein weiteres kleines Manko \u2013 es fehlen Datumsangaben f\u00fcr diese gespeicherten \u201eBackups\u201c.<\/p>\n<h2>P.S.<\/h2>\n<p>\nLesen Sie auch in unserem Blog:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/506948\/\">\u00dcberblick \u00fcber grafische Benutzeroberfl\u00e4chen f\u00fcr Kubernetes<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/468041\/\">Ank\u00fcndigung der Kubernetes Web View Benutzeroberfl\u00e4che (und ein kurzer \u00dcberblick \u00fcber andere Web-UI f\u00fcr Kubernetes)<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/426985\/\">kubebox und andere Konsolenoberfl\u00e4chen f\u00fcr Kubernetes<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/524196\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>K9s \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430 \u0434\u043b\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430\u043c\u0438 Kubernetes. \u0426\u0435\u043b\u044c \u044d\u0442\u043e\u0433\u043e Open Source-\u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u2014 \u043e\u0431\u043b\u0435\u0433\u0447\u0438\u0442\u044c \u0443\u0434\u043e\u0431\u043d\u0443\u044e \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044e \u043f\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c \u0432 K8s, \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u0437\u0430 \u043d\u0438\u043c\u0438 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u043c\u0438. K9s \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0441\u043b\u0435\u0434\u0438\u0442 \u0437\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c\u0438 \u0432 Kubernetes \u0438 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c\u044b\u043c\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438. \u041f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 Go, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0443\u0436\u0435 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043b\u0443\u0442\u043e\u0440\u0430 \u043b\u0435\u0442: \u043f\u0435\u0440\u0432\u044b\u0439 \u043a\u043e\u043c\u043c\u0438\u0442 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":97737,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-97736","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"K9s \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430 \u0434\u043b\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430\u043c\u0438 Kubernetes. \u0426\u0435\u043b\u044c \u044d\u0442\u043e\u0433\u043e Open Source-\u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u2014 \u043e\u0431\u043b\u0435\u0433\u0447\u0438\u0442\u044c \u0443\u0434\u043e\u0431\u043d\u0443\u044e \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044e \u043f\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c \u0432 K8s, \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u0437\u0430 \u043d\u0438\u043c\u0438 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u043c\u0438. K9s \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0441\u043b\u0435\u0434\u0438\u0442 \u0437\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c\u0438 \u0432 Kubernetes \u0438 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c\u044b\u043c\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438. \u041f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 Go, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0443\u0436\u0435 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043b\u0443\u0442\u043e\u0440\u0430 \u043b\u0435\u0442: \u043f\u0435\u0440\u0432\u044b\u0439 \u043a\u043e\u043c\u043c\u0438\u0442\" \/>\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\/de\/blog\/administrirovanie\/obzor-k9s-prodvinutogo-terminalnogo-interfejsa-dlya-kubernetes\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\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 k9s \u2014 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u043e\u0433\u043e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0434\u043b\u044f Kubernetes | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"K9s \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430 \u0434\u043b\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430\u043c\u0438 Kubernetes. \u0426\u0435\u043b\u044c \u044d\u0442\u043e\u0433\u043e Open Source-\u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u2014 \u043e\u0431\u043b\u0435\u0433\u0447\u0438\u0442\u044c \u0443\u0434\u043e\u0431\u043d\u0443\u044e \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044e \u043f\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c \u0432 K8s, \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u0437\u0430 \u043d\u0438\u043c\u0438 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u043c\u0438. K9s \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0441\u043b\u0435\u0434\u0438\u0442 \u0437\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c\u0438 \u0432 Kubernetes \u0438 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c\u044b\u043c\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438. \u041f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 Go, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0443\u0436\u0435 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043b\u0443\u0442\u043e\u0440\u0430 \u043b\u0435\u0442: \u043f\u0435\u0440\u0432\u044b\u0439 \u043a\u043e\u043c\u043c\u0438\u0442\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/obzor-k9s-prodvinutogo-terminalnogo-interfejsa-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-10-21T12:42:17+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-10-21T12:42:17+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\udd47\u00dcberblick \u00fcber k9s \u2013 fortschrittliche Terminaloberfl\u00e4che f\u00fcr Kubernetes | ProHoster","description":"K9s bietet eine Terminal-Benutzeroberfl\u00e4che zur Interaktion mit Kubernetes-Clustern. Ziel dieses Open-Source-Projekts ist es, die Navigation durch Anwendungen in K8s, deren \u00dcberwachung und Verwaltung zu erleichtern. K9s \u00fcberwacht kontinuierlich \u00c4nderungen in Kubernetes und bietet schnelle Befehle zum Arbeiten mit beobachteten Ressourcen. Das Projekt ist in Go geschrieben und besteht seit \u00fcber eineinhalb Jahren: der erste Commit.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/obzor-k9s-prodvinutogo-terminalnogo-interfejsa-dlya-kubernetes","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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 k9s \u2014 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u043e\u0433\u043e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0434\u043b\u044f Kubernetes | ProHoster","og:description":"K9s \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430 \u0434\u043b\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430\u043c\u0438 Kubernetes. \u0426\u0435\u043b\u044c \u044d\u0442\u043e\u0433\u043e Open Source-\u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u2014 \u043e\u0431\u043b\u0435\u0433\u0447\u0438\u0442\u044c \u0443\u0434\u043e\u0431\u043d\u0443\u044e \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044e \u043f\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c \u0432 K8s, \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u0437\u0430 \u043d\u0438\u043c\u0438 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u043c\u0438. K9s \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0441\u043b\u0435\u0434\u0438\u0442 \u0437\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c\u0438 \u0432 Kubernetes \u0438 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c\u044b\u043c\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438. \u041f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 Go, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0443\u0436\u0435 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043b\u0443\u0442\u043e\u0440\u0430 \u043b\u0435\u0442: \u043f\u0435\u0440\u0432\u044b\u0439 \u043a\u043e\u043c\u043c\u0438\u0442","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/obzor-k9s-prodvinutogo-terminalnogo-interfejsa-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-10-21T12:42:17+00:00","article:modified_time":"2020-10-21T12:42:17+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"97736","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 10:14:39","updated":"2022-10-03 07:12:05"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/97736","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=97736"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/97736\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/97737"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=97736"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=97736"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=97736"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}