Veuillez vous référer à notre site de documentation K9S pour l'installation, l'utilisation, la personnalisation et les conseils.
Vous voulez discuter des fonctionnalités K9s avec vos collègues K9sers
ou simplement montrer votre prise en charge de cet outil?
K9S est disponible sur les plates-formes Linux, MacOS et Windows. Les binaires pour Linux, Windows et Mac sont disponibles sous forme de tarball dans la page de version.
Via Homebrew pour macOS ou Linux
brew install derailed/k9s/k9s
Via macports
sudo port install k9s
Via Snap pour Linux
snap install k9s --devmode
Sur Arch Linux
pacman -S k9s
Sur OpenSuse Linux Distribution
zypper install k9s
Sur FreeBSD
pkg install k9s
Sur 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
Via winget pour les fenêtres
winget install k9s
Via Scoop pour Windows
scoop install k9s
Via Chocolatey pour les fenêtres
choco install k9s
Via une installation GO
# NOTE: The dev version will be in effect!
go install github.com/derailed/k9s@latest
Via webi pour Linux et macOS
curl -sS https://webinstall.dev/k9s | bash
Via pkgx pour Linux et macOS
pkgx k9s
Via webi pour Windows
curl.exe -A MS https://webinstall.dev/k9s | powershell
Comme extension Docker Desktop (pour le bureau docker intégré dans le serveur Kubernetes)
docker extension install spurin/k9s-dd-extension:latest
K9S utilise actuellement Go v1.23.x ou supérieur. Afin de construire des K9 à partir de la source, vous devez:
Cloner le repo
Construire et exécuter l'exécutable
make build && ./execs/k9s
Vous pouvez exécuter des K9 en tant que conteneur Docker en montant votre KUBECONFIG
:
docker run --rm -it -v $KUBECONFIG :/root/.kube/config quay.io/derailed/k9s
Pour le chemin par défaut, ce serait:
docker run --rm -it -v ~ /.kube/config:/root/.kube/config quay.io/derailed/k9s
Vous pouvez créer votre propre image Docker de K9 à partir du dockerfile avec les suivants:
docker build -t k9s-docker:v0.0.1 .
Vous pouvez obtenir la dernière version kubectl
stable et la transmettre à la commande docker build
avec l'option --build-arg
. Vous pouvez utiliser l'option --build-arg
pour passer n'importe quelle version kubectl
valide (comme v1.18.0
ou 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 .
Exécutez votre conteneur:
docker run --rm -it -v ~ /.kube/config:/root/.kube/config k9s-docker:0.1
K9S utilise le mode terminal de 256 couleurs. Sur le système NIX, assurez-vous que le terme est défini en conséquence.
export TERM=xterm-256color
Afin de publier des commandes d'édition de ressources, assurez-vous que votre éditeur et Kube_Editor Env Vars sont définis.
# Kubectl edit command will use this env var.
export KUBE_EDITOR=my_fav_editor
K9S préfère les versions Kubernetes récentes, c'est-à-dire 1.28+
K9 | Client K8S |
---|---|
> = 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
Étant donné la nature de l'interface utilisateur, les K9 produisent des journaux à un emplacement spécifique. Pour afficher les journaux et activer le mode de débogage, utilisez les commandes suivantes:
# 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
Vous pouvez ou remplacer la destination du fichier journal par défaut avec l'argument --logFile
:
k9s --logFile /tmp/k9s.log
less /tmp/k9s.log
Ou via la variable d'environnement K9S_LOGS_DIR
:
K9S_LOGS_DIR=/var/log k9s
less /var/log/k9s.log
K9S utilise des alias pour naviguer dans la plupart des ressources K8S.
Action | Commande | Commentaire |
---|---|---|
Afficher les mnémoniques du clavier actif et l'aide | ? | |
Afficher tous les alias de ressources disponibles | ctrl-a | |
Faire sauter de K9S | :quit , :q , ctrl-c | |
Pour monter / revenir à la vue précédente | esc | Si vous avez des miettes, cela ira au précédent |
Voir une ressource Kubernetes en utilisant le singulier / pluriel ou le nom court | : pod⏎ | Accepte le singulier, le pluriel, le nom court ou le lias, c'est-à-dire des pods ou des gousses |
Afficher une ressource Kubernetes dans un espace de noms donné | : pod ns-x⏎ | |
Voir les gousses filtrées (nouveau V0.30.0!) | : Pod / Fred⏎ | Afficher toutes les gousses filtrées par Fred |
Voir les pods étiquetés (nouveau V0.30.0!) | : Pod App = Fred, Env = Dev⏎ | Afficher toutes les pods avec des étiquettes correspondant à APP = Fred et Env = Dev |
Voir les pods dans un contexte donné (nouveau V0.30.0!) | : pod @ ctx1⏎ | Affichez tous les pods dans le contexte CTX1. Éteint votre contexte K9S actuel! |
Filtrez une vue de ressources étant donné un filtre | / filtre⏎ | Regex2 pris en charge IE 'Fred |
Filtre regex inverse | / ! filtre⏎ | Gardez tout ce qui ne correspond pas. |
Vue de ressources filtrantes par étiquettes | / -L-Label-Selector⏎ | |
Fuzzy Trouver une ressource donnée un filtre | / -f filtre⏎ | |
Bails hors de vue / mode de commande / filtre | <esc> | |
Mappage clé pour décrire, afficher, modifier, afficher les journaux, ... | d , v , e , l , ... | |
Pour afficher et passer à un autre contexte de Kubernetes (vue de pod) | : ctx⏎ | |
Pour afficher et basculer directement vers un autre contexte Kubernetes (dernière vue utilisée) | : CTX Context-Name⏎ | |
Pour afficher et passer à un autre espace de noms Kubernetes | : NS⏎ | |
Pour voir toutes les ressources enregistrées | : ScreenDump ou SD⏎ | |
Pour supprimer une ressource (onglet et entrez pour confirmer) | ctrl-d | |
Pour tuer une ressource (sans boîte de dialogue de confirmation, équivalent à Kubectl Delete --now) | ctrl-k | |
Lancement de la vue des impulsions | : des impulsions ou du pu⏎ | |
Lancez Xray View | : Ressource Xray [Espace de noms] ⏎ | La ressource peut être l'une des PO, SVC, DP, RS, STS, DS, l'espace de noms est facultatif |
Lancez la vue Popeye | : Popeye ou Pop⏎ | Voir Popeye |
K9S conserve ses configurations en tant que fichiers YAML dans un répertoire k9s
et l'emplacement dépend de votre système d'exploitation. K9S exploite XDG pour charger ses différents fichiers de configuration. Pour plus d'informations sur les emplacements par défaut de votre système d'exploitation, veuillez consulter ce lien. Si vous êtes toujours confus, une k9s info
rapide révélera d'où K9S charge ses configurations. Alternativement, vous pouvez définir K9S_CONFIG_DIR
pour dire à K9S l'emplacement du répertoire pour extraire ses configurations.
Unix | macos | Fenêtre |
---|---|---|
~/.config/k9s | ~/Library/Application Support/k9s | %LOCALAPPDATA%k9s |
Remarque: Ceci est toujours en train et changera en phase de pré-libération!
Vous pouvez désormais remplacer la configuration de l'adresse par défaut du contexte de contexte en définissant une variable Env qui peut remplacer toutes les clusters port pour l'adresse locale de PortForward à l'aide de K9S_DEFAULT_PF_ADDRESS=abcd
# $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 a une intégration avec Popeye, qui est un désinfectant en cluster Kubernetes. Popeye lui-même utilise une configuration appelée spinach.yml
, mais lors de l'intégration avec K9S, le fichier spécifique au cluster doit être le nom $XDG_CONFIG_HOME/share/k9s/clusters/clusterX/contextY/spinach.yml
. Cela vous permet d'avoir une configuration d'épinards différente par cluster.
En activant la porte de fonctionnalité NodeheShell sur un cluster donné, K9 vous permet de coller dans vos nœuds de cluster. Une fois activé, vous aurez une nouvelle option de menu shell
s
dans la vue du nœud. K9S lancera un pod sur le nœud sélectionné à l'aide d'un pod K9S_Shell spécial. De plus, vous pouvez affiner votre pod shell en utilisant une image Docker personnalisée préchargée avec les outils de shell que vous aimez. Par défaut, K9 utilise une image busybox, mais vous pouvez la configurer comme suit:
Alternativement, vous pouvez désormais remplacer la configuration du contexte en définissant une variable K9S_FEATURE_GATE_NODE_SHELL=true|false
# $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
Ensuite, dans votre fichier de configuration de cluster ...
# $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
Dans K9S, vous pouvez définir vos propres alias de commande (noms courts) pour accéder à vos ressources. Dans votre $HOME/.config/k9s
définissez un fichier appelé aliases.yaml
. Un alias K9S définit les paires d'alias: GVR. Un GVR (groupe / version / ressource) représente un identifiant de ressources Kubernetes entièrement qualifié. Voici un exemple de fichier d'alias:
# $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
En utilisant ce fichier d'alias, vous pouvez maintenant taper :pp
ou :crb
ou :fred
pour activer leurs commandes respectives.
La saisie du mode de commande et la saisie d'un nom de ressource ou d'un alias pourrait être lourde pour naviguer à travers des ressources souvent utilisées. Nous introduisons des raccourcis clavier qui permettent aux utilisateurs de définir leur propre combinaison de clés pour activer leurs vues de ressources préférées.
De plus, vous pouvez définir des raccourcis clavier spécifiques au contexte en ajoutant un fichier de configuration de niveau de contexte dans $XDG_DATA_HOME/k9s/clusters/clusterX/contextY/hotkeys.yaml
Afin de faire surface sur les raccourcis de laits globaux, veuillez suivre ces étapes:
Créez un fichier nommé $XDG_CONFIG_HOME/k9s/hotkeys.yaml
Ajoutez ce qui suit à vos hotkeys.yaml
. Vous pouvez utiliser le nom de la ressource / le nom court pour spécifier une commande, c'est-à-dire le taper en mode commande.
# $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
Vous ne vous sentez pas si chaud? Vos raccourcis clavier personnalisés seront répertoriés dans la vue d'aide ?
. De plus, votre fichier de raccourcis clavier sera automatiquement rechargé afin que vous puissiez facilement utiliser vos raccourcis clavier lorsque vous les définissez.
Vous pouvez choisir tous les raccourcis clavier qui vous ont un sens, à condition qu'ils ne fassent pas partie de la liste des raccourcis K9S standard.
De même, la référence à l'environnement des variables dans les raccourcis clavier est également prise en charge. Les variables d'environnement disponibles peuvent se référer à la description de la section Plugins.
Remarque: Cette fonctionnalité / configuration pourrait changer dans les versions futures!
À partir de V0.25.0, vous pouvez tirer parti de la fonction FastForwards
pour dire à K9 comment les ports par défaut. Dans les situations où vous avez affaire à plusieurs conteneurs ou conteneurs exposant plusieurs ports, il peut être lourd de spécifier le port de port souhaité à partir de la boîte de dialogue comme dans la plupart des cas, vous savez déjà quel conteneur / tuple de port que vous désirez. Pour ces cas d'utilisation, vous pouvez maintenant annoter vos manifestes avec les annotations suivantes:
@ k9scli.io/auto-port-forwards
active un ou plusieurs ports-Forward en contournant directement la boîte de dialogue Port-Forward. @ k9scli.io/port-forwards
présélectionne un ou plusieurs ports-forward lors du lancement de la boîte de dialogue port-forward.
La valeur d'annotation prend le container-name::[local-port:]container-port
Remarque: Pour les deux cas ci-dessus, vous pouvez spécifier le port de conteneur par nom ou numéro dans votre annotation!
# 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
...
La valeur d'annotation doit spécifier un conteneur à transmettre ainsi qu'un port local et un port de conteneur. Le port de conteneur peut être spécifié comme un numéro de port ou un nom de port. Si le port local est omis, le port local sera par défaut au numéro de port de conteneur. Voici quelques exemples:
bozo
avec le nom de port http. Si HTTP spécifie le numéro de port 8080, le port local sera également 8080.bozo
Mapping Port local 9090-> HTTP (8080)bozo
Mapping local Port 9090-> 8080 Sneakcast v0.17.0 sur la plage! - Ouais! Le son suce mais quel cadre!
Vous pouvez modifier les colonnes apparaissant pour une ressource donnée via des vues personnalisées. Pour faire surface cette fonctionnalité, vous devrez créer un nouveau fichier de configuration, à savoir $XDG_CONFIG_HOME/k9s/views.yaml
. Ce fichier exploite GVR (groupe / version / ressource) pour configurer les colonnes de vue de table associées. Si aucun GVR n'est trouvé pour une vue, le rendu par défaut prendra le relais (c'est-à-dire ce que nous avons maintenant). Garder largement ajoutera toutes les colonnes restantes disponibles sur la ressource donnée après vos colonnes personnalisées. Pour démarrer, vous pouvez modifier votre fichier de configuration de vues et régler vos vues de ressources en direct!
Remarque: Ceci est expérimental et changera très probablement à mesure que nous verrouillons cela!
Voici une configuration de vues d'échantillons qui personnalise les vues de pods et de services.
# $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
K9S vous permet d'étendre votre ligne de commande et votre outillage en définissant vos propres commandes de cluster via des plugins. K9S examinera $XDG_CONFIG_HOME/k9s/plugins.yaml
pour localiser tous les plugins disponibles.
Un plugin est défini comme suit:
all
pour fournir ce raccourci pour toutes les vues.K9S vous fournit des variables d'environnement supplémentaires pour personnaliser vos arguments de plugins. Actuellement, les variables d'environnement disponibles sont les suivantes:
$RESOURCE_GROUP
- le groupe de ressources sélectionné$RESOURCE_VERSION
- la version API de ressource sélectionnée$RESOURCE_NAME
- le nom de ressource sélectionné$NAMESPACE
- l'espace de noms de ressources sélectionné$NAME
- le nom de ressource sélectionné$CONTAINER
- le conteneur actuel le cas échéant$FILTER
- le filtre actuel le cas échéant$KUBECONFIG
- L'emplacement de KubEconfig.$CLUSTER
le nom du cluster actif$CONTEXT
Le nom de contexte actif$USER
l'utilisateur actif$GROUPS
les groupes actifs$POD
pendant une vue de conteneur$COL-<RESOURCE_COLUMN_NAME>
Utilisez un nom de colonne donné pour une ressource affichée. Doit être préfixé par COL-
! Les accolades bouclées peuvent être utilisées pour intégrer une variable d'environnement dans une autre chaîne, ou si le nom de la colonne contient des caractères spéciaux. (par exemple ${NAME}-example
ou ${COL-%CPU/L}
)
Cela définit un plugin pour afficher les journaux sur un pod sélectionné à l'aide de ctrl-l
comme raccourci.
# $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
Remarque: Ceci est une fonctionnalité expérimentale! Les options et la mise en page peuvent changer dans les futures versions K9S car cette fonctionnalité se solidifie.
K9S intègre HEY du brillant et super talentueux Jaana Dogan. Hey
est un outil CLI pour comparer les points de terminaison HTTP similaires au banc AB. Cette fonctionnalité préliminaire prend actuellement en charge l'analyse comparative des ports et des services (lire la peinture à ce sujet est bien fraîche!).
Pour configurer un port-Forward, vous devrez naviguer vers le podview, sélectionner un pod et un conteneur qui expose un port donné. L'utilisation SHIFT-F
une boîte de dialogue apparaît pour vous permettre de spécifier un port local à transmettre. Une fois reconnu, vous pouvez accéder à la vue PortForward (Alias pf
) répertoriant vos ports actifs. La sélection d'un port-avant et l'utilisation CTRL-B
exécuteront une référence sur ce point de terminaison HTTP. Pour voir les résultats de vos courses de référence, accédez à la vue de repères (Alias be
). Vous devriez maintenant pouvoir sélectionner une référence et afficher les détails des statistiques d'exécution en appuyant sur <ENTER>
. Remarque: les ports de port ne durent que la durée de la session K9S et seront terminés à la sortie.
Initialement, les repères fonctionneront avec les défauts suivants:
La vue PortForward est soutenue par un nouveau fichier de configuration K9S à savoir: $XDG_DATA_HOME/k9s/clusters/clusterX/contextY/benchmarks.yaml
. Chaque cluster auquel vous vous connectez aura son propre fichier de configuration de banc, contenant le nom du contexte K8S pour le cluster. Les modifications de ce fichier doivent mettre à jour automatiquement la vue PortForward pour indiquer comment vous souhaitez exécuter vos repères.
Les rapports de résultats de référence sont stockés dans $XDG_STATE_HOME/k9s/clusters/clusterX/contextY
Voici un exemple de configuration de référence. Veuillez garder à l'esprit que ce fichier changera probablement dans les versions suivantes!
# 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!
Sur les clusters compatibles RBAC, vous devrez donner à vos utilisateurs / groupes des capacités afin qu'ils puissent utiliser K9S pour explorer leur cluster Kubernetes. K9S a besoin de privilèges de lecture minimale au niveau du cluster et de l'espace de noms pour afficher les ressources et les mesures.
Ces règles ci-dessous ne sont que des suggestions. Vous devrez les personnaliser en fonction de vos politiques environnementales. Si vous devez modifier / supprimer des ressources, plus FU sera nécessaire.
NOTE! L'accès aux cluster / espace de noms peut changer à l'avenir à mesure que K9S évolue. NOTE! Nous nous attendons à ce que les K9 continuent de fonctionner même dans des clusters / espaces de noms atrophiés. Veuillez déposer des problèmes si ce n'est pas le cas!
---
# 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
Si vos utilisateurs sont limités à certains espaces de noms, K9 devra suivre le rôle pour permettre l'accès à la lecture aux ressources dans les noms de noms.
---
# 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
Exemple: Dracula Skin;)
Vous pouvez styliser des K9 en fonction de votre propre sens de l'apparence et du style. Les skins sont des fichiers YAML, qui permettent à un utilisateur de modifier la couche de présentation K9S. Voir ce répertoire skins
Repo pour des exemples. Vous pouvez peaufiner K9 par défaut en spécifiant un attribut ui.skin. Vous pouvez également modifier les skins K9 en fonction du contexte que vous connectez également. Dans ce cas, vous pouvez spécifier un champ de peau sur votre configuration de cluster AKA skin: dracula
(juste le nom du fichier de peau sans extension!) Et copier ce repo skins/dracula.yaml
à $XDG_CONFIG_HOME/k9s/skins/
répertoire.
Dans le cas où votre cluster couvre plusieurs contextes, vous pouvez ajouter une configuration de contexte cutané à la configuration de votre contexte. Ceci est une collection de tuples {context_name, peau} (veuillez voir l'exemple ci-dessous!)
Les couleurs peuvent être définies par nom ou en utilisant une représentation hexadécimale. De récemment, nous avons ajouté une couleur nommée default
pour indiquer une couleur d'arrière-plan transparente pour préserver les paramètres de couleur d'arrière-plan terminal si vous le souhaitez.
Remarque: Il s'agit d'une fonctionnalité expérimentale pour le moment, plus sera ajouté / modifié si cette fonction a des jambes, donc en conséquence! Remarque: veuillez consulter les skins K9S pour une liste des couleurs disponibles.
Pour peau un contexte spécifique et fourni le fichier in_the_navy.yaml
est présent dans votre répertoire Skins.
# $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
Vous pouvez également spécifier une peau par défaut pour tous les contextes du fichier de configuration K9S Root:
# $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
Sans les contributions de ces beaux gens, ce projet serait un raté total!
C'est toujours en cours! Si quelque chose est cassé ou qu'il y a une fonctionnalité que vous souhaitez, veuillez déposer un problème et si c'est le cas, soumettez un PR!
K9S va très probablement exploser si ...
K9S se trouve au-dessus de nombreux projets et bibliothèques open source. Nos sincères appréciations à tous les contributeurs de l'OSS qui travaillent les soirs et les week-ends pour faire de ce projet une réalité!
Fernand Galiana
Aleksei Romanenko
Nous aimons toujours entendre des gens qui bénéficient de notre travail!
© 2023 Imhotep Software LLC. Tous les documents sous licence sous Apache v2.0