Silakan merujuk ke situs dokumentasi K9S kami untuk instalasi, penggunaan, kustomisasi, dan tips.
Ingin mendiskusikan fitur K9S dengan sesama K9sers
Anda atau hanya menunjukkan dukungan Anda untuk alat ini?
K9S tersedia di platform Linux, MacOS dan Windows. Binari untuk Linux, Windows dan Mac tersedia sebagai tarball di halaman rilis.
Melalui homebrew untuk macOS atau linux
brew install derailed/k9s/k9s
Melalui MacPorts
sudo port install k9s
Via Snap untuk Linux
snap install k9s --devmode
Di Arch Linux
pacman -S k9s
Pada distribusi linux opensuse
zypper install k9s
Di Freebsd
pkg install k9s
Di 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
Melalui Winget untuk Windows
winget install k9s
Via scoop for windows
scoop install k9s
Melalui cokelat untuk windows
choco install k9s
Melalui pemasangan go
# NOTE: The dev version will be in effect!
go install github.com/derailed/k9s@latest
Via Webi untuk Linux dan MacOS
curl -sS https://webinstall.dev/k9s | bash
Via PKGX untuk Linux dan MacOS
pkgx k9s
Via Webi untuk Windows
curl.exe -A MS https://webinstall.dev/k9s | powershell
Sebagai ekstensi desktop Docker (untuk desktop Docker yang dibangun di server Kubernetes)
docker extension install spurin/k9s-dd-extension:latest
K9s saat ini menggunakan GO V1.23.x atau lebih tinggi. Untuk membangun K9 dari sumber, Anda harus:
Kloning repo
Bangun dan jalankan yang dapat dieksekusi
make build && ./execs/k9s
Anda dapat menjalankan K9S sebagai wadah Docker dengan memasang KUBECONFIG
Anda:
docker run --rm -it -v $KUBECONFIG :/root/.kube/config quay.io/derailed/k9s
Untuk jalur default itu akan:
docker run --rm -it -v ~ /.kube/config:/root/.kube/config quay.io/derailed/k9s
Anda dapat membangun gambar Docker Anda sendiri dari K9S dari Dockerfile dengan yang berikut:
docker build -t k9s-docker:v0.0.1 .
Anda bisa mendapatkan versi kubectl
stabil terbaru dan meneruskannya ke perintah docker build
dengan opsi --build-arg
. Anda dapat menggunakan opsi --build-arg
untuk lulus versi kubectl
yang valid (seperti v1.18.0
atau 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 .
Jalankan wadah Anda:
docker run --rm -it -v ~ /.kube/config:/root/.kube/config k9s-docker:0.1
K9S menggunakan mode terminal 256 warna. Pada `sistem NIX pastikan istilah diatur sesuai.
export TERM=xterm-256color
Untuk mengeluarkan perintah edit sumber daya, pastikan editor Anda dan Kube_editor Env Vars diatur.
# Kubectl edit command will use this env var.
export KUBE_EDITOR=my_fav_editor
K9S lebih suka versi Kubernetes baru -baru ini yaitu 1.28+
k9s | klien 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
Mengingat sifat UI K9S memang menghasilkan log ke lokasi tertentu. Untuk melihat log dan nyalakan mode debug, gunakan perintah berikut:
# 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
Anda dapat mengganti tujuan file log default baik dengan argumen --logFile
:
k9s --logFile /tmp/k9s.log
less /tmp/k9s.log
Atau melalui variabel lingkungan K9S_LOGS_DIR
:
K9S_LOGS_DIR=/var/log k9s
less /var/log/k9s.log
K9S menggunakan alias untuk menavigasi sebagian besar sumber daya K8.
Tindakan | Memerintah | Komentar |
---|---|---|
Tampilkan mnemonik keyboard aktif dan bantuan | ? | |
Tunjukkan semua alias sumber daya yang tersedia | ctrl-a | |
Untuk menyelamatkan K9 | :quit , :q , ctrl-c | |
Untuk naik/kembali ke tampilan sebelumnya | esc | Jika Anda memiliki remah -remah, ini akan masuk ke yang sebelumnya |
Lihat sumber daya Kubernetes menggunakan singular/jamak atau nama pendek | : pod⏎ | menerima pod atau pod tunggal, jamak, pendek atau alias |
Lihat sumber daya Kubernetes di namespace yang diberikan | : pod ns-x⏎ | |
Lihat pod yang difilter (v0.30.0 baru!) | : pod /fred⏎ | Lihat semua polong yang disaring oleh Fred |
Lihat Pod berlabel (v0.30.0 baru!) | : Aplikasi pod = fred, env = dev⏎ | Lihat semua pod dengan aplikasi pencocokan label = fred dan env = dev |
Lihat pod dalam konteks yang diberikan (v0.30.0 baru!) | : pod @ctx1⏎ | Lihat semua pod dalam konteks CTX1. Mengganti konteks K9S Anda saat ini! |
Memfilter tampilan sumber daya yang diberikan filter | / filter⏎ | Regex2 didukung IE `Fred |
Filter Regex terbalik | / ! filter⏎ | Simpan semua yang tidak cocok. |
Menyaring tampilan sumber daya berdasarkan label | / -L Label -Selector⏎ | |
Fuzzy temukan sumber daya yang diberikan filter | / -f filter⏎ | |
Bails Out of View/Command/Filter Mode | <esc> | |
Pemetaan kunci untuk menggambarkan, melihat, mengedit, melihat log, ... | d , v , e , l , ... | |
Untuk melihat dan beralih ke konteks Kubernetes lain (tampilan pod) | : ctx⏎ | |
Untuk melihat dan beralih langsung ke konteks Kubernetes lain (tampilan terakhir yang digunakan) | : CTX-Context-Name⏎ | |
Untuk melihat dan beralih ke namespace kubernetes lain | : ns⏎ | |
Untuk melihat semua sumber daya yang disimpan | : screendump atau sd⏎ | |
Untuk menghapus sumber daya (tab dan masukkan untuk mengonfirmasi) | ctrl-d | |
Untuk Membunuh Sumber Daya (Tidak Ada Dialog Konfirmasi, setara dengan Kubectl Delete - -NOW) | ctrl-k | |
Luncurkan tampilan pulsa | : pulsa atau pu⏎ | |
Luncurkan Xray View | : Xray Resource [namespace] ⏎ | Sumber daya bisa menjadi salah satu dari PO, SVC, DP, RS, STS, DS, Namespace adalah opsional |
Luncurkan Popeye View | : popeye atau pop⏎ | Lihat Popeye |
K9S menjaga konfigurasinya sebagai file YAML di dalam direktori k9s
dan lokasi tergantung pada sistem operasi Anda. K9S memanfaatkan XDG untuk memuat berbagai file konfigurasi. Untuk informasi di lokasi default untuk OS Anda, silakan lihat tautan ini. Jika Anda masih bingung k9s info
cepat akan mengungkapkan dari mana K9S memuat konfigurasinya. Atau, Anda dapat mengatur K9S_CONFIG_DIR
untuk memberi tahu K9S lokasi direktori untuk menarik konfigurasinya.
UNIX | MacOS | Windows |
---|---|---|
~/.config/k9s | ~/Library/Application Support/k9s | %LOCALAPPDATA%k9s |
Catatan: Ini masih berubah dan akan berubah saat dalam tahap pra-rilis!
Anda sekarang dapat mengganti konfigurasi alamat default portforward konteks dengan mengatur variabel env yang dapat mengganti semua cluster alamat lokal portforward menggunakan 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 memiliki integrasi dengan Popeye, yang merupakan pembersih kluster Kubernetes. Popeye sendiri menggunakan konfigurasi yang disebut spinach.yml
, tetapi ketika mengintegrasikan dengan k9s file spesifik cluster harus nama $XDG_CONFIG_HOME/share/k9s/clusters/clusterX/contextY/spinach.yml
. Ini memungkinkan Anda untuk memiliki konfigurasi bayam yang berbeda per cluster.
Dengan mengaktifkan gerbang fitur Nodeshell pada cluster yang diberikan, K9S memungkinkan Anda untuk melaju ke node cluster Anda. Setelah diaktifkan, Anda akan memiliki opsi menu s
shell
baru saat berada di Node View. K9s akan meluncurkan pod pada simpul yang dipilih menggunakan pod K9S_Shell khusus. Selain itu, Anda dapat memperbaiki pod shell Anda dengan menggunakan gambar Docker khusus yang dimuat dengan alat shell yang Anda sukai. Secara default, K9S menggunakan gambar BusyBox, tetapi Anda dapat mengonfigurasinya sebagai berikut:
Atau, Anda sekarang dapat mengganti konfigurasi konteks dengan mengatur variabel env yang dapat mengganti semua kelompok node shell gerbang menggunakan 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
Kemudian di file konfigurasi cluster Anda ...
# $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
Di K9S, Anda dapat mendefinisikan alias perintah Anda sendiri (nama pendek) untuk mengakses sumber daya Anda. Di $HOME/.config/k9s
Anda menentukan file yang disebut aliases.yaml
. A K9S Alias mendefinisikan pasangan alias: GVR. GVR (grup/versi/sumber daya) mewakili pengidentifikasi sumber daya Kubernetes yang memenuhi syarat. Berikut adalah contoh file 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
Menggunakan file alias ini, Anda sekarang dapat mengetik :pp
atau :crb
atau :fred
untuk mengaktifkan perintah masing -masing.
Memasuki mode perintah dan mengetik nama sumber daya atau alias, bisa rumit untuk menavigasi melalui sumber daya yang sering digunakan. Kami memperkenalkan hotkey yang memungkinkan pengguna untuk menentukan kombinasi kunci mereka sendiri untuk mengaktifkan tampilan sumber daya favorit mereka.
Selain itu, Anda dapat mendefinisikan hotkey spesifik konteks dengan menambahkan file konfigurasi level konteks dalam $XDG_DATA_HOME/k9s/clusters/clusterX/contextY/hotkeys.yaml
Untuk permukaan hotkey secara global silakan ikuti langkah -langkah ini:
Buat file bernama $XDG_CONFIG_HOME/k9s/hotkeys.yaml
Tambahkan yang berikut ke hotkeys.yaml
Anda. Anda dapat menggunakan nama sumber daya/nama pendek untuk menentukan perintah IE sama dengan mengetiknya saat dalam mode perintah.
# $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
Tidak merasa begitu panas? Hotkey kustom Anda akan terdaftar dalam tampilan bantuan ?
. Juga file hotkeys Anda akan secara otomatis dimuat ulang sehingga Anda dapat dengan mudah menggunakan hotkey Anda saat Anda mendefinisikannya.
Anda dapat memilih jalan pintas keyboard apa pun yang masuk akal bagi Anda, asalkan mereka bukan bagian dari daftar pintasan K9S standar.
Demikian pula, variabel lingkungan referensi di hotkey juga didukung. Variabel lingkungan yang tersedia dapat merujuk pada deskripsi di bagian plugin.
Catatan: Fitur/konfigurasi ini mungkin berubah dalam rilis di masa mendatang!
Pada v0.25.0, Anda dapat memanfaatkan fitur FastForwards
untuk memberi tahu K9s cara default port-forwards. Dalam situasi di mana Anda berurusan dengan beberapa wadah atau wadah yang memperlihatkan beberapa port, bisa rumit untuk menentukan port-forward yang diinginkan dari dialog seperti dalam kebanyakan kasus, Anda sudah tahu wadah/port tuple mana yang Anda inginkan. Untuk kasus penggunaan ini, Anda sekarang dapat membuat anotasi manifes Anda dengan anotasi berikut:
@ k9scli.io/auto-port-forwards
mengaktifkan satu atau lebih port-forwards secara langsung melewati dialog port-forward bersama-sama. @ k9scli.io/port-forwards
pra-seleksi satu atau lebih port-forwards saat meluncurkan dialog port-forward.
Nilai anotasi mengambil nama container-name::[local-port:]container-port
Catatan: Untuk salah satu kasus di atas, Anda dapat menentukan port kontainer dengan nama atau nomor dalam anotasi Anda!
# 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
...
Nilai anotasi harus menentukan wadah untuk meneruskan serta port lokal dan port kontainer. Port kontainer dapat ditentukan sebagai nomor port atau nama port. Jika port lokal dihilangkan maka port lokal akan default ke nomor port kontainer. Berikut beberapa contoh:
bozo
dengan nama port http. Jika HTTP menentukan nomor port 8080 maka port lokal akan menjadi 8080 juga.bozo
pemetaan port lokal 9090-> http (8080)bozo
Memetakan Port Lokal 9090-> 8080 Sneakcast v0.17.0 di pantai! - Yup! Suara mengisap tapi sungguh pengaturan!
Anda dapat mengubah kolom mana yang muncul untuk sumber daya yang diberikan melalui tampilan khusus. Untuk permukaan fitur ini, Anda perlu membuat file konfigurasi baru, yaitu $XDG_CONFIG_HOME/k9s/views.yaml
. File ini memanfaatkan GVR (grup/versi/sumber daya) untuk mengonfigurasi kolom Tabel Tabel yang terkait. Jika tidak ada GVR yang ditemukan untuk tampilan, rendering default akan mengambil alih (yaitu apa yang kita miliki sekarang). Melebar akan menambahkan semua kolom yang tersisa yang tersedia pada sumber daya yang diberikan setelah kolom khusus Anda. Untuk boot, Anda dapat mengedit file konfigurasi tampilan dan menyetel tampilan sumber daya Anda secara langsung!
Catatan: Ini adalah eksperimental dan kemungkinan besar akan berubah saat kami menyetrika ini!
Berikut adalah konfigurasi tampilan sampel yang menyesuaikan tampilan pod dan layanan.
# $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 memungkinkan Anda untuk memperluas baris perintah dan perkakas dengan mendefinisikan perintah cluster Anda sendiri melalui plugin. K9s akan melihat $XDG_CONFIG_HOME/k9s/plugins.yaml
untuk menemukan semua plugin yang tersedia.
Plugin didefinisikan sebagai berikut:
all
untuk memberikan jalan pintas ini untuk semua tampilan.K9 memang memberikan variabel lingkungan tambahan bagi Anda untuk menyesuaikan argumen plugin Anda. Saat ini, variabel lingkungan yang tersedia adalah sebagai berikut:
$RESOURCE_GROUP
- Grup Sumber Daya yang Dipilih$RESOURCE_VERSION
- Versi API Sumber Daya yang Dipilih$RESOURCE_NAME
- Nama sumber daya yang dipilih$NAMESPACE
- namespace sumber daya yang dipilih$NAME
- Nama Sumber Daya yang Dipilih$CONTAINER
- wadah saat ini jika berlaku$FILTER
- filter saat ini jika ada$KUBECONFIG
- Lokasi Kubeconfig.$CLUSTER
nama cluster aktif$CONTEXT
nama konteks aktif$USER
pengguna aktif$GROUPS
grup aktif$POD
saat berada di tampilan kontainer$COL-<RESOURCE_COLUMN_NAME>
Gunakan nama kolom yang diberikan untuk sumber daya yang dilihat. Harus diawali oleh COL-
! Kawat gigi keriting dapat digunakan untuk menanamkan variabel lingkungan di dalam string lain, atau jika nama kolom berisi karakter khusus. (misalnya ${NAME}-example
atau ${COL-%CPU/L}
)
Ini mendefinisikan plugin untuk melihat log pada pod yang dipilih menggunakan ctrl-l
sebagai pintasan.
# $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
Catatan: Ini adalah fitur eksperimental! Opsi dan tata letak dapat berubah dalam rilis K9 di masa depan karena fitur ini mengeras.
K9S mengintegrasikan Hey dari Jaana Dogan yang brilian dan sangat berbakat. Hey
adalah alat CLI untuk membandingkan titik akhir HTTP yang mirip dengan AB Bench. Fitur pendahuluan ini saat ini mendukung pembandingan port-forwards dan layanan (baca cat di ini adalah Way Fresh!).
Untuk mengatur port-forward, Anda harus menavigasi ke podview, pilih pod dan wadah yang memperlihatkan port yang diberikan. Menggunakan dialog SHIFT-F
A muncul untuk memungkinkan Anda menentukan port lokal untuk meneruskan. Setelah diakui, Anda dapat menavigasi ke Portforward View (Alias pf
) mencantumkan port-forwards aktif Anda. Memilih port-forward dan menggunakan CTRL-B
akan menjalankan tolok ukur pada titik akhir HTTP itu. Untuk melihat hasil dari tolok ukur Anda, buka tampilan tolok ukur (alias be
). Anda sekarang harus dapat memilih tolok ukur dan melihat detail Run Stats dengan menekan <ENTER>
. Catatan: Port-Forwards hanya bertahan selama durasi sesi K9S dan akan diakhiri saat keluar.
Awalnya, tolok ukur akan berjalan dengan default berikut:
Tampilan PortForward didukung oleh file konfigurasi K9S baru yaitu: $XDG_DATA_HOME/k9s/clusters/clusterX/contextY/benchmarks.yaml
. Setiap cluster yang Anda hubungkan akan memiliki file konfigurasi bangku sendiri, berisi nama konteks K8S untuk cluster. Perubahan pada file ini harus secara otomatis memperbarui tampilan PortForward untuk menunjukkan bagaimana Anda ingin menjalankan tolok ukur Anda.
Laporan hasil tolok ukur disimpan dalam $XDG_STATE_HOME/k9s/clusters/clusterX/contextY
Berikut ini adalah sampel tolok ukur.YAML Konfigurasi. Harap diingat bahwa file ini kemungkinan akan berubah dalam rilis berikutnya!
# 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!
Pada cluster yang diaktifkan RBAC, Anda perlu memberikan kemampuan pengguna/grup Anda sehingga mereka dapat menggunakan K9 untuk menjelajahi cluster Kubernetes mereka. K9s membutuhkan hak istimewa yang dibaca secara minimal baik di tingkat cluster dan namespace untuk menampilkan sumber daya dan metrik.
Aturan -aturan di bawah ini hanyalah saran. Anda perlu menyesuaikannya berdasarkan kebijakan lingkungan Anda. Jika Anda perlu mengedit/menghapus sumber daya tambahan akan diperlukan.
CATATAN! Akses cluster/namespace dapat berubah di masa depan saat K9S berkembang. CATATAN! Kami berharap K9s terus berjalan bahkan di kluster/nama yang mengalami atrofi. Harap ajukan masalah jika bukan itu masalahnya!
---
# 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
Jika pengguna Anda dibatasi pada ruang nama tertentu, K9s perlu mengikuti peran untuk memungkinkan akses baca ke sumber daya namespaced.
---
# 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
Contoh: Dracula Skin;)
Anda dapat menata K9 berdasarkan rasa dan gaya Anda sendiri. Kulit adalah file YAML, yang memungkinkan pengguna untuk mengubah lapisan presentasi K9S. Lihat Direktori skins
Repo ini untuk contoh. Anda dapat menguliti K9 secara default dengan menentukan atribut UI.skin. Anda juga dapat mengubah kulit K9S berdasarkan konteks yang Anda hubungkan juga. Dalam hal ini, Anda dapat menentukan bidang kulit pada cluster config config alias skin: dracula
(hanya nama file kulit tanpa ekstensi!) Dan salin repo skins/dracula.yaml
ini ke $XDG_CONFIG_HOME/k9s/skins/
direktori.
Dalam kasus di mana cluster Anda mencakup beberapa konteks, Anda dapat menambahkan konfigurasi konteks kulit ke konfigurasi konteks Anda. Ini adalah kumpulan {context_name, skin} tupel (silakan lihat contoh di bawah ini!)
Warna dapat didefinisikan dengan nama atau menggunakan representasi hex. Dari terbaru, kami telah menambahkan warna bernama default
untuk menunjukkan warna latar belakang transparan untuk mempertahankan pengaturan warna latar belakang terminal Anda jika diinginkan.
CATATAN: Ini adalah fitur eksperimental saat ini, lebih banyak lagi akan ditambahkan/dimodifikasi jika fitur ini memiliki kaki sehingga utasnya sesuai! Catatan: Silakan lihat K9s Skins untuk daftar warna yang tersedia.
Untuk menguliti konteks tertentu dan asalkan file in_the_navy.yaml
hadir di direktori kulit Anda.
# $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
Anda juga dapat menentukan kulit default untuk semua konteks dalam file konfigurasi root K9S seperti:
# $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
Tanpa kontribusi dari orang -orang baik ini, proyek ini akan sangat tidak berguna!
Ini masih bekerja dalam proses! Jika ada sesuatu yang rusak atau ada fitur yang Anda inginkan, silakan ajukan masalah dan jika cenderung mengirimkan PR!
K9 kemungkinan besar akan meledak jika ...
K9s berada di atas banyak proyek dan perpustakaan open source. Penghargaan kami yang tulus kepada semua kontributor OS yang bekerja malam dan akhir pekan untuk mewujudkan proyek ini!
Fernand Galiana
Aleksei Romanenko
Kami selalu menikmati mendengar dari orang -orang yang mendapat manfaat dari pekerjaan kami!
© 2023 Imhotep Software LLC. Semua bahan yang dilisensikan di bawah Apache v2.0