In unserer K9S -Dokumentationsseite finden Sie in der Installation, Verwendung, Anpassung und Tipps.
Möchten Sie K9S -Features mit Ihren K9sers
-Kollegen besprechen oder einfach Ihre Unterstützung für dieses Tool zeigen?
K9S ist unter Linux-, MacOS- und Windows -Plattformen verfügbar. Binärdateien für Linux, Windows und Mac sind auf der Release -Seite als Tarballs verfügbar.
Via Homebrew für macOS oder Linux
brew install derailed/k9s/k9s
Über Macports
sudo port install k9s
Via snap für Linux
snap install k9s --devmode
Auf Arch Linux
pacman -S k9s
Auf OpenSuse Linux -Verteilung
zypper install k9s
Auf FreeBSD
pkg install k9s
Auf Ubuntu
wget https://github.com/derailed/k9s/releases/download/v0.32.7/k9s_linux_amd64.deb && apt install ./k9s_linux_amd64.deb && rm k9s_linux_amd64.deb
Über Winget für Windows
winget install k9s
Über Scoop für Windows
scoop install k9s
Über schokoladig für Fenster
choco install k9s
VIA AS GO EINSTALIERUNG
# NOTE: The dev version will be in effect!
go install github.com/derailed/k9s@latest
Über Webi für Linux und macOS
curl -sS https://webinstall.dev/k9s | bash
Über PKGX für Linux und MacOS
pkgx k9s
Über Webi für Windows
curl.exe -A MS https://webinstall.dev/k9s | powershell
Als Docker -Desktop -Erweiterung (für den in Kubernetes -Server integrierten Docker -Desktop)
docker extension install spurin/k9s-dd-extension:latest
K9S verwendet derzeit Go v1.23.x oder höher. Um K9s aus Quelle zu bauen, müssen Sie:
Klonen Sie das Repo
Erstellen und führen Sie die ausführbare Datei aus
make build && ./execs/k9s
Sie können K9S als Docker -Container ausführen, indem Sie Ihre KUBECONFIG
an die Montage bringen:
docker run --rm -it -v $KUBECONFIG :/root/.kube/config quay.io/derailed/k9s
Für den Standardpfad wäre es:
docker run --rm -it -v ~ /.kube/config:/root/.kube/config quay.io/derailed/k9s
Sie können Ihr eigenes Docker -Bild von K9s aus der Dockerfile mit Folgendem erstellen:
docker build -t k9s-docker:v0.0.1 .
Sie können die neueste stabile kubectl
-Version erhalten und sie mit der Option --build-arg
an den docker build
-Befehl übergeben. Sie können die Option --build-arg
verwenden, um eine gültige kubectl
-Version zu übergeben (wie v1.18.0
oder v1.19.1
).
KUBECTL_VERSION= $( make kubectl-stable-version 2> /dev/null )
docker build --build-arg KUBECTL_VERSION= ${KUBECTL_VERSION} -t k9s-docker:0.1 .
Führen Sie Ihren Container aus:
docker run --rm -it -v ~ /.kube/config:/root/.kube/config k9s-docker:0.1
K9S verwendet 256 Farben -Terminalmodus. Auf `Nix -System stellen Sie sicher, dass die Begriff entsprechend festgelegt wird.
export TERM=xterm-256color
Um die Befehle bearbeiten zu können, stellen Sie sicher, dass Ihr Editor und der Kube_editor Env VARs festgelegt sind.
# Kubectl edit command will use this env var.
export KUBE_EDITOR=my_fav_editor
K9S bevorzugt die kürzlich durchgeführten Kubernetes -Versionen, dh 1.28+
K9S | K8S -Kunde |
---|---|
> = v0.27.0 | 1.26.1 |
v0.26.7 - v0.26.6 | 1.25.3 |
v0.26.5 - v0.26.4 | 1.25.1 |
v0.26.3 - v0.26.1 | 1.24.3 |
v0.26.0 - v0.25.19 | 1.24.2 |
v0.25.18 - v0.25.3 | 1.22.3 |
v0.25.2 - v0.25.0 | 1.22.0 |
<= v0.24 | 1.21.3 |
# List current version
k9s version
# To get info about K9s runtime (logs, configs, etc..)
k9s info
# List all available CLI options
k9s help
# To run K9s in a given namespace
k9s -n mycoolns
# Start K9s in an existing KubeConfig context
k9s --context coolCtx
# Start K9s in readonly mode - with all cluster modification commands disabled
k9s --readonly
Angesichts der Art der UI K9S produziert Protokolle an einem bestimmten Ort. Verwenden Sie die folgenden Befehle, um die Protokolle anzuzeigen und den Debug -Modus einzuschalten:
# Find out where the logs are stored
k9s info
____ __.________
| |/ _/ __ ______
| < ____ / ___/
| | / /___
|____|__ /____//____ >
/ /
Version: vX.Y.Z
Config: /Users/fernand/.config/k9s/config.yaml
Logs: /Users/fernand/.local/state/k9s/k9s.log
Dumps dir: /Users/fernand/.local/state/k9s/screen-dumps
Benchmarks dir: /Users/fernand/.local/state/k9s/benchmarks
Skins dir: /Users/fernand/.local/share/k9s/skins
Contexts dir: /Users/fernand/.local/share/k9s/clusters
Custom views file: /Users/fernand/.local/share/k9s/views.yaml
Plugins file: /Users/fernand/.local/share/k9s/plugins.yaml
Hotkeys file: /Users/fernand/.local/share/k9s/hotkeys.yaml
Alias file: /Users/fernand/.local/share/k9s/aliases.yaml
tail -f /Users/fernand/.local/data/k9s/k9s.log
k9s -l debug
Sie können das Ziel -Protokolldateiziel entweder mit dem Argument --logFile
überschreiben:
k9s --logFile /tmp/k9s.log
less /tmp/k9s.log
Oder durch die Umgebungsvariable K9S_LOGS_DIR
:
K9S_LOGS_DIR=/var/log k9s
less /var/log/k9s.log
K9S verwendet Aliase, um die meisten K8S -Ressourcen zu navigieren.
Aktion | Befehl | Kommentar |
---|---|---|
Anzeigen Sie aktive Tastaturmnemonik und helfen Sie | ? | |
Zeigen Sie alle verfügbaren Ressourcen -Alias an | ctrl-a | |
Aus K9s herauskettet werden | :quit , :q , ctrl-c | |
Um zur vorherigen Ansicht hinauf/zurückzugehen | esc | Wenn Sie Krümel haben, wird dies zum vorherigen gehen |
Sehen Sie sich eine Kubernetes-Ressource mit Singular/Plural oder Kurzname an | : Pod⏎ | akzeptiert einzelne, pluralische, Kurznamen oder Alias, dh Pod oder Pods |
Sehen Sie sich eine Kubernetes -Ressource in einem gegebenen Namespace an | : pod ns-x⏎ | |
Ansicht gefilterte Pods (neuer V0.30.0!) | : Pod /Fred⏎ | Alle von Fred gefilterten Schoten anzeigen |
Ansicht beschrifteten Pods (neuer V0.30.0!) | : pod app = fred, env = dev⏎ | Zeigen Sie alle Pods mit Etiketten an, die App = Fred und Env = Dev entspricht |
Pods in einem bestimmten Kontext anzeigen (neuer V0.30.0!) | : pod @ctx1⏎ | Zeigen Sie alle Pods im Kontext CTX1 an. Schaltet Ihren aktuellen K9S -Kontext aus! |
Filtern Sie eine Ressourcenansicht mit einem Filter heraus | / filter⏎ | Regex2 unterstützte dh Fred |
Inverse Regex -Filter | / ! filter⏎ | Behalten Sie alles, was nicht übereinstimmt. |
Filterressourcenansicht nach Etiketten | / -l label -selektor⏎ | |
Fuzzy Finden Sie eine Ressource mit einem Filter | / -f filter⏎ | |
Rettungsaktionen außerhalb der Ansicht/des Befehls/des Filtermodus | <esc> | |
Schlüsselzuordnung zum Beschreiben, Ansehen, Bearbeiten, Ansehen von Protokollen, ... | d , v , e , l , ... | |
So sehen und wechseln Sie zu einem anderen Kubernetes -Kontext (POD -Ansicht) | : ctx⏎ | |
Um direkt auf einen anderen Kubernetes -Kontext anzuzeigen und zu wechseln (zuletzt gebrauchte Ansicht) | : CTX-Kontextname⏎ | |
Um zu einem anderen Kubernetes -Namespace anzusehen und zu wechseln | : ns⏎ | |
Alle gespeicherten Ressourcen anzeigen | : Screendump oder SD⏎ | |
So löschen Sie eine Ressource (Registerkarte und Eingeben, um dies zu bestätigen) | ctrl-d | |
Um eine Ressource abzutöten (kein Bestätigungsdialog, entspricht Kubectl Delete -jetzt) | ctrl-k | |
Starten Sie Impulsesansicht | : Impulse oder Pu⏎ | |
Starten Sie die Xray -Ansicht | : Xray Resource [Namespace] ⏎ | Ressource kann einer von PO, SVC, DP, RS, STS, DS, Namespace sein, ist optional |
Starten Sie Popeye View | : Popeye oder Pop⏎ | Siehe Popeye |
K9S hält seine Konfigurationen als YAML -Dateien in einem k9s
-Verzeichnis und der Ort hängt von Ihrem Betriebssystem ab. K9S nutzt XDG, um seine verschiedenen Konfigurationsdateien zu laden. Informationen zu den Standardorten für Ihr Betriebssystem finden Sie in diesem Link. Wenn Sie immer noch verwirrt sind, werden k9s info
angezeigt, woher K9S seine Konfigurationen lädt. Alternativ können Sie K9S_CONFIG_DIR
festlegen, um K9S zu sagen, dass der Verzeichnisspeicherort seine Konfigurationen abrufen soll.
Unix | macos | Fenster |
---|---|---|
~/.config/k9s | ~/Library/Application Support/k9s | %LOCALAPPDATA%k9s |
Hinweis: Dies ist immer noch im Fluss und wird sich in der Stufe vor der Veröffentlichung ändern!
Sie können nun die Konfiguration der Kontext -Standardadressenkonfiguration überschreiben, indem Sie eine Env -Variable festlegen, mit der alle Cluster Portforward lokale Adresse unter Verwendung von K9S_DEFAULT_PF_ADDRESS=abcd
überschreiben können
# $XDG_CONFIG_HOME/k9s/config.yaml
k9s :
# Enable periodic refresh of resource browser windows. Default false
liveViewAutoRefresh : false
# The path to screen dump. Default: '%temp_dir%/k9s-screens-%username%' (k9s info)
screenDumpDir : /tmp/dumps
# Represents ui poll intervals. Default 2secs
refreshRate : 2
# Number of retries once the connection to the api-server is lost. Default 15.
maxConnRetry : 5
# Indicates whether modification commands like delete/kill/edit are disabled. Default is false
readOnly : false
# Toggles whether k9s should exit when CTRL-C is pressed. When set to true, you will need to exist k9s via the :quit command. Default is false.
noExitOnCtrlC : false
# UI settings
ui :
# Enable mouse support. Default false
enableMouse : false
# Set to true to hide K9s header. Default false
headless : false
# Set to true to hide the K9S logo Default false
logoless : false
# Set to true to hide K9s crumbs. Default false
crumbsless : false
noIcons : false
# Toggles reactive UI. This option provide for watching on disk artifacts changes and update the UI live Defaults to false.
reactive : false
# By default all contexts wil use the dracula skin unless explicitly overridden in the context config file.
skin : dracula # => assumes the file skins/dracula.yaml is present in the $XDG_DATA_HOME/k9s/skins directory
# Allows to set certain views default fullscreen mode. (yaml, helm history, describe, value_extender, details, logs) Default false
defaultsToFullScreen : false
# Toggles icons display as not all terminal support these chars.
noIcons : false
# Toggles whether k9s should check for the latest revision from the Github repository releases. Default is false.
skipLatestRevCheck : false
# When altering kubeconfig or using multiple kube configs, k9s will clean up clusters configurations that are no longer in use. Setting this flag to true will keep k9s from cleaning up inactive cluster configs. Defaults to false.
keepMissingClusters : false
# Logs configuration
logger :
# Defines the number of lines to return. Default 100
tail : 200
# Defines the total number of log lines to allow in the view. Default 1000
buffer : 500
# Represents how far to go back in the log timeline in seconds. Setting to -1 will tail logs. Default is -1.
sinceSeconds : 300 # => tail the last 5 mins.
# Toggles log line wrap. Default false
textWrap : false
# Toggles log line timestamp info. Default false
showTime : false
# Provide shell pod customization when nodeShell feature gate is enabled!
shellPod :
# The shell pod image to use.
image : killerAdmin
# The namespace to launch to shell pod into.
namespace : default
# The resource limit to set on the shell pod.
limits :
cpu : 100m
memory : 100Mi
# Enable TTY
tty : true
K9S hat eine Integration mit Popeye, einem Kubernetes -Cluster -Desinfektionsmittel. Popeye selbst verwendet eine Konfiguration namens spinach.yml
. Bei der Integration in K9S sollte die clusterspezifische Datei jedoch $XDG_CONFIG_HOME/share/k9s/clusters/clusterX/contextY/spinach.yml
sein. Auf diese Weise können Sie eine andere Spinat -Konfiguration pro Cluster haben.
Durch das Aktivieren des Nodeshell -Feature -Gate in einem bestimmten Cluster können Sie K9S in Ihren Clusterknoten einstellen. Sobald Sie aktiviert sind, haben Sie eine neue s
für shell
-Menüoption in der Knotenansicht. K9S wird mit einem speziellen K9S_SHELL -POD einen Pod auf den ausgewählten Knoten starten. Darüber hinaus können Sie Ihre Shell Pod mit einem benutzerdefinierten Docker -Bild mit den von Ihnen geliebten Shell -Werkzeugen verfeinern. Standardmäßig verwendet K9S ein Busybox -Bild, aber Sie können es wie folgt konfigurieren:
Alternativ können Sie nun die Kontextkonfiguration überschreiben, indem Sie eine Env -Variable einstellen, mit der alle Cluster -Knoten -Shell -Gate mit K9S_FEATURE_GATE_NODE_SHELL=true|false
überschreiben können
# $XDG_CONFIG_HOME/k9s/config.yaml
k9s :
# You can also further tune the shell pod specification
shellPod :
image : cool_kid_admin:42
namespace : blee
limits :
cpu : 100m
memory : 100Mi
Dann in Ihrer Cluster -Konfigurationsdatei ...
# $XDG_DATA_HOME/k9s/clusters/cluster-1/context-1
k9s :
cluster : cluster-1
readOnly : false
namespace :
active : default
lockFavorites : false
favorites :
- kube-system
- default
view :
active : po
featureGates :
nodeShell : true # => Enable this feature gate to make nodeShell available on this cluster
portForwardAddress : localhost
In K9S können Sie Ihre eigenen Befehls -Aliase (Shortnamen) definieren, um auf Ihre Ressourcen zuzugreifen. Definieren Sie in Ihrem $HOME/.config/k9s
eine Datei namens aliases.yaml
. Ein K9S -Alias definiert Alias -Paare: GVR. Ein GVR (Gruppenversion/Ressource) stellt eine voll qualifizierte Kubernetes -Ressourcenidentifizierung dar. Hier ist ein Beispiel für eine Alias -Datei:
# $XDG_DATA_HOME/k9s/aliases.yaml
aliases :
pp : v1/pods
crb : rbac.authorization.k8s.io/v1/clusterrolebindings
# As of v0.30.0 you can also refer to another command alias...
fred : pod fred app=blee # => view pods in namespace fred with labels matching app=blee
Mit dieser Aliases -Datei können Sie jetzt :pp
oder :crb
oder :fred
eingeben, um ihre jeweiligen Befehle zu aktivieren.
Das Eingeben des Befehlsmodus und das Eingeben eines Ressourcennamens oder eines Alias kann umständlich sein, um durch häufig verwendete Ressourcen zu navigieren. Wir stellen Hotkeys vor, mit denen Benutzer ihre eigene Schlüsselkombination definieren können, um ihre bevorzugten Ressourcenansichten zu aktivieren.
Zusätzlich können Sie kontextspezifische Hotkeys definieren, indem Sie eine Konfigurationsdatei auf Kontextebene in $XDG_DATA_HOME/k9s/clusters/clusterX/contextY/hotkeys.yaml
hinzufügen
Um Hotkeys weltweit zu ermitteln, befolgen Sie bitte die folgenden Schritte:
Erstellen Sie eine Datei namens $XDG_CONFIG_HOME/k9s/hotkeys.yaml
Fügen Sie Ihre hotkeys.yaml
Folgendes hinzu. Sie können den Ressourcennamen/der Kurzname verwenden, um einen Befehl anzugeben, dh das gleiche wie das Eingeben im Befehlsmodus.
# $XDG_CONFIG_HOME/k9s/hotkeys.yaml
hotKeys :
# Hitting Shift-0 navigates to your pod view
shift-0 :
shortCut : Shift-0
description : Viewing pods
command : pods
# Hitting Shift-1 navigates to your deployments
shift-1 :
shortCut : Shift-1
description : View deployments
command : dp
# Hitting Shift-2 navigates to your xray deployments
shift-2 :
shortCut : Shift-2
description : Xray Deployments
command : xray deploy
# Hitting Shift-S view the resources in the namespace of your current selection
shift-s :
shortCut : Shift-S
override : true # => will override the default shortcut related action if set to true (default to false)
description : Namespaced resources
command : " $RESOURCE_NAME $NAMESPACE "
keepHistory : true # whether you can return to the previous view
Fühlen Sie sich nicht so heiß? Ihre benutzerdefinierten Hotkeys werden in der Hilfeansicht aufgeführt ?
. Auch Ihre Hotkeys -Datei wird automatisch neu geladen, sodass Sie Ihre Hotkeys beim Definieren leicht verwenden können.
Sie können alle Tastaturverknüpfungen auswählen, die für Sie sinnvoll sind, vorausgesetzt, sie sind nicht Teil der Standard -K9 -Verknüpfungsliste.
In ähnlicher Weise wird auch Referenzierungsvariablen in Hotkeys unterstützt. Die verfügbaren Umgebungsvariablen können sich auf die Beschreibung im Abschnitt Plugins beziehen.
Hinweis: Diese Funktion/diese Konfiguration kann sich in zukünftigen Veröffentlichungen ändern!
Ab V0.25.0 können Sie die FastForwards
Funktion nutzen, um K9S zu sagen, wie die Port-Forwards ausfallen können. In Situationen, in denen Sie sich mit mehreren Containern oder Containern befassen, die mehrere Ports aussetzen, kann es umständlich sein, den gewünschten Port-Forward aus dem Dialog zu geben, wie in den meisten Fällen bereits wissen, welchen Container/Port-Tupel Sie wünschen. Für diese Anwendungsfälle können Sie jetzt Ihre Manifeste mit den folgenden Anmerkungen kommentieren:
@ k9scli.io/auto-port-forwards
aktiviert einen oder mehrere Port-Forwards, wobei das Dialogfeld Port-Forward alle gemeinsam umgeht. @ k9scli.io/port-forwards
wählt einen oder mehrere Port-Forwards vor, wenn das Dialogfeld Port-Forward gestartet wird.
Der Annotationswert übernimmt die Form container-name::[local-port:]container-port
Hinweis: In beiden Fällen können Sie den Containerport mit Namen oder Nummer in Ihrer Annotation angeben!
# Pod fred
apiVersion : v1
kind : Pod
metadata :
name : fred
annotations :
k9scli.io/auto-port-forwards : zorg::5556 # => will default to container zorg port 5556 and local port 5566. No port-forward dialog will be shown.
# Or...
k9scli.io/port-forwards : bozo::9090:p1 # => launches the port-forward dialog selecting default port-forward on container bozo port named p1(8081)
# mapping to local port 9090.
...
spec :
containers :
- name : zorg
ports :
- name : p1
containerPort : 5556
...
- name : bozo
ports :
- name : p1
containerPort : 8081
- name : p2
containerPort : 5555
...
Der Annotationswert muss einen Container angeben, an den sie sich an einen lokalen Port und einen Containerport weiterleiten müssen. Der Containerport kann entweder als Portnummer oder als Portnummer angegeben werden. Wenn der lokale Port weggelassen wird, stand der lokale Port standardmäßig an die Containerportnummer. Hier sind einige Beispiele:
bozo
mit Portnamen HTTP. Wenn HTTP die Portnummer 8080 angibt, beträgt der lokale Port ebenfalls 8080.bozo
Mapping Local Port 9090-> HTTP (8080)bozo
Mapping Local Port 9090-> 8080 Sneakcast v0.17.0 am Strand! - Jawohl! Sound saugt, aber was für eine Einstellung!
Sie können ändern, welche Spalten für eine bestimmte Ressource über benutzerdefinierte Ansichten angezeigt werden. Um diese Funktion zu ermitteln, müssen Sie eine neue Konfigurationsdatei erstellen, nämlich $XDG_CONFIG_HOME/k9s/views.yaml
. Diese Datei nutzt GVR (Gruppe/Version/Ressource), um die zugehörigen Spalten der Tabellenansicht zu konfigurieren. Wenn für eine Ansicht kein GVR gefunden wird, übernimmt das Standard -Rendering (dh das, was wir jetzt haben). Wenn Sie weit gehen, werden alle verbleibenden Spalten hinzugefügt, die nach Ihren benutzerdefinierten Spalten auf der angegebenen Ressource verfügbar sind. Um zu starten, können Sie Ihre Ansichten -Konfigurationsdateien bearbeiten und Ihre Ressourcenansichten live einstellen!
Hinweis: Dies ist experimentell und wird sich höchstwahrscheinlich ändern, wenn wir das ausbügeln!
Hier finden Sie eine Musteransichtenkonfiguration, mit der Pods und Diensteansichten angepasst werden.
# $XDG_CONFIG_HOME/k9s/views.yaml
views :
v1/pods :
columns :
- AGE
- NAMESPACE
- NAME
- IP
- NODE
- STATUS
- READY
v1/services :
columns :
- AGE
- NAMESPACE
- NAME
- TYPE
- CLUSTER-IP
Mit K9S können Sie Ihre Befehlszeile und Ihre Toolierung erweitern, indem Sie Ihre eigenen Cluster -Befehle über Plugins definieren. K9S wird sich $XDG_CONFIG_HOME/k9s/plugins.yaml
ansehen, um alle verfügbaren Plugins zu finden.
Ein Plugin wird wie folgt definiert:
all
angeben, um diese Verknüpfung für alle Ansichten bereitzustellen.K9S bietet zusätzliche Umgebungsvariablen, damit Sie Ihre Plugins -Argumente anpassen können. Derzeit sind die verfügbaren Umgebungsvariablen wie folgt:
$RESOURCE_GROUP
- die ausgewählte Ressourcengruppe$RESOURCE_VERSION
- Die ausgewählte Ressourcen -API -Version$RESOURCE_NAME
- der ausgewählte Ressourcenname$NAMESPACE
- Der ausgewählte Ressourcen -Namespace$NAME
- der ausgewählte Ressourcenname$CONTAINER
- Der aktuelle Container gegebenenfalls zutreffend$FILTER
- der aktuelle Filter, falls vorhanden$KUBECONFIG
- der kubeconfig -Standort.$CLUSTER
Der aktive Clustername$CONTEXT
Der aktive Kontextname$USER
der aktive Benutzer$GROUPS
die aktiven Gruppen$POD
in einer Containeransicht$COL-<RESOURCE_COLUMN_NAME>
Verwenden Sie einen bestimmten Spaltennamen für eine angezeigte Ressource. Muss von COL-
vorangestellt werden! Lockige Klammern können verwendet werden, um eine Umgebungsvariable in eine andere Zeichenfolge einzubetten, oder wenn der Spaltenname Sonderzeichen enthält. (zB ${NAME}-example
oder ${COL-%CPU/L}
)
Dadurch definiert ein Plugin zum Anzeigen von Protokollen auf einer ausgewählten POD unter Verwendung ctrl-l
als Verknüpfung.
# $XDG_DATA_HOME/k9s/plugins.yaml
plugins :
# Defines a plugin to provide a `ctrl-l` shortcut to tail the logs while in pod view.
fred :
shortCut : Ctrl-L
override : false
overwriteOutput : false
confirm : false
dangerous : false
description : Pod logs
scopes :
- pods
command : kubectl
background : false
args :
- logs
- -f
- $NAME
- -n
- $NAMESPACE
- --context
- $CONTEXT
Hinweis: Dies ist eine experimentelle Funktion! Optionen und Layout können sich in zukünftigen K9S -Veröffentlichungen ändern, da diese Funktion festigt.
K9S integriert Hey aus dem brillanten und super talentierten Jaana Dogan. Hey
ist ein CLI -Tool, um HTTP -Endpunkte ähnlich wie AB -Bench zu reduzieren. Diese vorläufige Funktion unterstützt derzeit Benchmarking-Port-Forwards und -dienste (Lesen Sie die Farbe auf dies ist viel frisch!).
Um einen Port-Forward einzurichten, müssen Sie zum Podview navigieren, einen Pod und einen Container auswählen, der einen bestimmten Port enthüllt. Mithilfe von SHIFT-F
erfolgt ein Dialog, damit Sie einen lokalen Port angeben können, um weiterzuleiten. Sobald Sie bestätigt wurden, können Sie zur Portforward View (Alias pf
) navigieren, in der Ihre aktiven Port-Forwards aufgeführt sind. Durch die Auswahl eines Port-Forward und die Verwendung CTRL-B
werden ein Benchmark für diesen HTTP-Endpunkt ausgeführt. Um die Ergebnisse Ihrer Benchmark -Läufe anzuzeigen, gehen Sie in die Benchmarks -Ansicht (alias be
). Sie sollten nun in der Lage sein, einen Benchmark auszuwählen und die Details der Ausführung der Statistiken durch Drücken von <ENTER>
anzeigen. HINWEIS: Port-Forwards dauern nur für die Dauer der K9S-Sitzung und wird nach dem Ausgang gekündigt.
Zunächst werden die Benchmarks mit den folgenden Standardeinstellungen ausgeführt:
Die Portforward -Ansicht wird durch eine neue K9S -Konfigurationsdatei gesichert, nämlich: $XDG_DATA_HOME/k9s/clusters/clusterX/contextY/benchmarks.yaml
. Jeder Cluster, mit dem Sie eine Verbindung herstellen, verfügt über eine eigene Bankkonfigurationsdatei, die den Namen des K8S -Kontextes für den Cluster enthält. Änderungen an dieser Datei sollten die Portforward -Ansicht automatisch aktualisieren, um anzugeben, wie Sie Ihre Benchmarks ausführen möchten.
Benchmarks -Ergebnisberichte werden in $XDG_STATE_HOME/k9s/clusters/clusterX/contextY
gespeichert
Hier finden Sie eine Probe -Benchmarks.YAML -Konfiguration. Bitte denken Sie daran, dass sich diese Datei wahrscheinlich in nachfolgenden Veröffentlichungen ändern wird!
# This file resides in $XDG_DATA_HOME/k9s/clusters/clusterX/contextY/benchmarks.yaml
benchmarks :
# Indicates the default concurrency and number of requests setting if a container or service rule does not match.
defaults :
# One concurrent connection
concurrency : 1
# Number of requests that will be sent to an endpoint
requests : 500
containers :
# Containers section allows you to configure your http container's endpoints and benchmarking settings.
# NOTE: the container ID syntax uses namespace/pod-name:container-name
default/nginx:nginx :
# Benchmark a container named nginx using POST HTTP verb using http://localhost:port/bozo URL and headers.
concurrency : 1
requests : 10000
http :
path : /bozo
method : POST
body :
{"fred":"blee"}
header :
Accept :
- text/html
Content-Type :
- application/json
services :
# Similarly you can Benchmark an HTTP service exposed either via NodePort, LoadBalancer types.
# Service ID is ns/svc-name
default/nginx :
# Set the concurrency level
concurrency : 5
# Number of requests to be sent
requests : 500
http :
method : GET
# This setting will depend on whether service is NodePort or LoadBalancer. NodePort may require vendor port tunneling setting.
# Set this to a node if NodePort or LB if applicable. IP or dns name.
host : A.B.C.D
path : /bumblebeetuna
auth :
user : jean-baptiste-emmanuel
password : Zorg!
Bei RBAC -fähigen Clustern müssen Sie Ihren Benutzern/Gruppen Funktionen geben, damit sie K9s verwenden können, um ihren Kubernetes -Cluster zu untersuchen. K9S benötigt sowohl auf Cluster- als auch auf Namespace -Ebene minimal minimal vorgelesene Berechtigungen, um Ressourcen und Metriken anzuzeigen.
Diese folgenden Regeln sind nur Vorschläge. Sie müssen sie anhand Ihrer Umgebungsrichtlinien anpassen. Wenn Sie Ressourcen bearbeiten/löschen müssen, ist zusätzliche FU erforderlich.
NOTIZ! Der Cluster/Namespace -Zugriff kann sich in Zukunft ändern, wenn sich K9S entwickelt. NOTIZ! Wir erwarten, dass K9S auch in atrophierten Clustern/Namespaces weiter läuft. Bitte stellen Sie Probleme ein, wenn dies nicht der Fall ist!
---
# K9s Reader ClusterRole
kind : ClusterRole
apiVersion : rbac.authorization.k8s.io/v1
metadata :
name : k9s
rules :
# Grants RO access to cluster resources node and namespace
- apiGroups : [""]
resources : ["nodes", "namespaces"]
verbs : ["get", "list", "watch"]
# Grants RO access to RBAC resources
- apiGroups : ["rbac.authorization.k8s.io"]
resources : ["clusterroles", "roles", "clusterrolebindings", "rolebindings"]
verbs : ["get", "list", "watch"]
# Grants RO access to CRD resources
- apiGroups : ["apiextensions.k8s.io"]
resources : ["customresourcedefinitions"]
verbs : ["get", "list", "watch"]
# Grants RO access to metric server (if present)
- apiGroups : ["metrics.k8s.io"]
resources : ["nodes", "pods"]
verbs : ["get", "list", "watch"]
---
# Sample K9s user ClusterRoleBinding
apiVersion : rbac.authorization.k8s.io/v1
kind : ClusterRoleBinding
metadata :
name : k9s
subjects :
- kind : User
name : fernand
apiGroup : rbac.authorization.k8s.io
roleRef :
kind : ClusterRole
name : k9s
apiGroup : rbac.authorization.k8s.io
Wenn Ihre Benutzer auf bestimmte Namespaces eingeschränkt sind, müssen K9S die Rolle befolgen, um den Lesezugriff auf Namespace -Ressourcen zu ermöglichen.
---
# K9s Reader Role (default namespace)
kind : Role
apiVersion : rbac.authorization.k8s.io/v1
metadata :
name : k9s
namespace : default
rules :
# Grants RO access to most namespaced resources
- apiGroups : ["", "apps", "autoscaling", "batch", "extensions"]
resources : ["*"]
verbs : ["get", "list", "watch"]
# Grants RO access to metric server
- apiGroups : ["metrics.k8s.io"]
resources : ["pods", "nodes"]
verbs :
- get
- list
- watch
---
# Sample K9s user RoleBinding
apiVersion : rbac.authorization.k8s.io/v1
kind : RoleBinding
metadata :
name : k9s
namespace : default
subjects :
- kind : User
name : fernand
apiGroup : rbac.authorization.k8s.io
roleRef :
kind : Role
name : k9s
apiGroup : rbac.authorization.k8s.io
Beispiel: Dracula Skin;)
Sie können K9s basierend auf Ihrem eigenen Gefühl für Look und Stil stylen. Skins sind YAML -Dateien, mit denen ein Benutzer die K9S -Präsentationsebene ändern kann. Beispiele finden Sie in diesem Repo skins
-Verzeichnis. Sie können k9s standardmäßig häuten, indem Sie ein UI.Skin -Attribut angeben. Sie können auch K9S -Skins basierend auf dem Kontext ändern, den Sie auch verbinden. In diesem Fall können Sie ein Hautfeld auf Ihrer Cluster -Konfiguration angeben, auch bekannt als skin: dracula
(nur der Name der Hautdatei ohne Erweiterung!) Und diese Repo skins/dracula.yaml
auf $XDG_CONFIG_HOME/k9s/skins/
Verzeichnis kopieren.
In dem Fall, in dem Ihr Cluster mehrere Kontexte umfasst, können Sie Ihrer Kontextkonfiguration eine Hautkontextkonfiguration hinzufügen. Dies ist eine Sammlung von {context_name, Skin} Tupeln (siehe Beispiel unten!)
Farben können mit Namen oder mit einer Hex -Darstellung definiert werden. In jüngster Zeit haben wir eine Farbe mit dem Namen default
hinzugefügt, um eine transparente Hintergrundfarbe anzuzeigen, um Ihre terminalen Hintergrundfarbeneinstellungen zu erhalten, falls dies gewünscht wurde.
Hinweis: Dies ist zu diesem Zeitpunkt eine experimentelle Funktion, mehr wird hinzugefügt/geändert, wenn diese Funktion Beine entsprechend den Faden enthält! Hinweis: Weitere Informationen finden Sie in K9S Skins für eine Liste der verfügbaren Farben.
Um einen bestimmten Kontext zu häuten, und die in_the_navy.yaml
in Ihrem Skins -Verzeichnis vorhanden ist.
# $XDG_DATA_HOME/k9s/clusters/clusterX/contextY/config.yaml
k9s :
cluster : clusterX
skin : in_the_navy
readOnly : false
namespace :
active : default
lockFavorites : false
favorites :
- kube-system
- default
view :
active : po
featureGates :
nodeShell : false
portForwardAddress : localhost
Sie können auch eine Standardhaut für alle Kontexte in der Root K9S -Konfigurationsdatei als SO angeben:
# $XDG_CONFIG_HOME/k9s/config.yaml
k9s :
liveViewAutoRefresh : false
screenDumpDir : /tmp/dumps
refreshRate : 2
maxConnRetry : 5
readOnly : false
noExitOnCtrlC : false
ui :
enableMouse : false
headless : false
logoless : false
crumbsless : false
noIcons : false
# Toggles reactive UI. This option provide for watching on disk artifacts changes and update the UI live Defaults to false.
reactive : false
# By default all contexts wil use the dracula skin unless explicitly overridden in the context config file.
skin : dracula # => assumes the file skins/dracula.yaml is present in the $XDG_DATA_HOME/k9s/skins directory
defaultsToFullScreen : false
skipLatestRevCheck : false
disablePodCounting : false
shellPod :
image : busybox
namespace : default
limits :
cpu : 100m
memory : 100Mi
imageScans :
enable : false
exclusions :
namespaces : []
labels : {}
logger :
tail : 100
buffer : 5000
sinceSeconds : -1
textWrap : false
showTime : false
thresholds :
cpu :
critical : 90
warn : 70
memory :
critical : 90
warn : 70
# $XDG_DATA_HOME/k9s/skins/in_the_navy.yaml
# Skin InTheNavy!
k9s :
# General K9s styles
body :
fgColor : dodgerblue
bgColor : ' #ffffff '
logoColor : ' #0000ff '
# ClusterInfoView styles.
info :
fgColor : lightskyblue
sectionColor : steelblue
# Help panel styles
help :
fgColor : white
bgColor : black
keyColor : cyan
numKeyColor : blue
sectionColor : gray
frame :
# Borders styles.
border :
fgColor : dodgerblue
focusColor : aliceblue
# MenuView attributes and styles.
menu :
fgColor : darkblue
keyColor : cornflowerblue
# Used for favorite namespaces
numKeyColor : cadetblue
# CrumbView attributes for history navigation.
crumbs :
fgColor : white
bgColor : steelblue
activeColor : skyblue
# Resource status and update styles
status :
newColor : ' #00ff00 '
modifyColor : powderblue
addColor : lightskyblue
errorColor : indianred
highlightcolor : royalblue
killColor : slategray
completedColor : gray
# Border title styles.
title :
fgColor : aqua
bgColor : white
highlightColor : skyblue
counterColor : slateblue
filterColor : slategray
views :
# TableView attributes.
table :
fgColor : blue
bgColor : darkblue
cursorColor : aqua
# Header row styles.
header :
fgColor : white
bgColor : darkblue
sorterColor : orange
# YAML info styles.
yaml :
keyColor : steelblue
colonColor : blue
valueColor : royalblue
# Logs styles.
logs :
fgColor : lightskyblue
bgColor : black
indicator :
fgColor : dodgerblue
bgColor : black
toggleOnColor : limegreen
toggleOffColor : gray
Ohne die Beiträge dieser schönen Leute wäre dieses Projekt ein totaler Typ!
Dies ist noch in Arbeit! Wenn etwas gebrochen ist oder eine Funktion gewünscht ist, stellen Sie bitte ein Problem ein und geben Sie einen PR ein!
K9s wird höchstwahrscheinlich in die Luft jagen, wenn ...
K9S sitzt auf vielen Open -Source -Projekten und Bibliotheken. Unsere aufrichtigen Wertschätzungen für alle OSS -Mitwirkenden, die Nächte und Wochenenden arbeiten, um dieses Projekt Wirklichkeit werden zu lassen!
Fernand Galiana
Aleksei Romanenko
Wir hören immer gerne von Leuten, die von unserer Arbeit profitieren!
© 2023 IMHOTEP Software LLC. Alle unter Apache v2.0 lizenzierten Materialien