โปรดดูเว็บไซต์เอกสาร K9S ของเราสำหรับการติดตั้งการใช้งานการปรับแต่งและเคล็ดลับ
ต้องการหารือเกี่ยวกับคุณสมบัติ K9s กับเพื่อน K9sers
ของคุณหรือเพียงแค่แสดงการสนับสนุนเครื่องมือนี้?
K9s มีอยู่บนแพลตฟอร์ม Linux, MacOS และ Windows ไบนารีสำหรับ Linux, Windows และ Mac มีให้บริการเป็น tarballs ในหน้าปล่อย
ผ่าน Homebrew สำหรับ macos หรือ linux
brew install derailed/k9s/k9s
ผ่าน MacPorts
sudo port install k9s
ผ่าน Snap สำหรับ Linux
snap install k9s --devmode
บน arch linux
pacman -S k9s
ในการแจกแจง OpenSuse Linux
zypper install k9s
บน freeBSD
pkg install k9s
บน 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
ผ่าน Winget สำหรับ Windows
winget install k9s
ผ่าน Scoop สำหรับ Windows
scoop install k9s
ผ่านช็อคโกแลตสำหรับหน้าต่าง
choco install k9s
ผ่านการติดตั้ง GO
# NOTE: The dev version will be in effect!
go install github.com/derailed/k9s@latest
ผ่าน webi สำหรับ linux และ macOS
curl -sS https://webinstall.dev/k9s | bash
ผ่าน PKGX สำหรับ Linux และ MacOS
pkgx k9s
ผ่าน webi สำหรับ windows
curl.exe -A MS https://webinstall.dev/k9s | powershell
เป็นส่วนขยายเดสก์ท็อป Docker (สำหรับ Docker Desktop ที่สร้างขึ้นในเซิร์ฟเวอร์ Kubernetes)
docker extension install spurin/k9s-dd-extension:latest
K9S กำลังใช้ GO V1.23.X หรือสูงกว่า ในการสร้าง K9s จากแหล่งที่มาคุณต้อง:
โคลน repo
สร้างและเรียกใช้ปฏิบัติการ
make build && ./execs/k9s
คุณสามารถเรียกใช้ K9S เป็นคอนเทนเนอร์ Docker โดยการติดตั้ง KUBECONFIG
ของคุณ:
docker run --rm -it -v $KUBECONFIG :/root/.kube/config quay.io/derailed/k9s
สำหรับเส้นทางเริ่มต้นมันจะเป็น:
docker run --rm -it -v ~ /.kube/config:/root/.kube/config quay.io/derailed/k9s
คุณสามารถสร้างภาพนักเทียบท่าของคุณเองจาก Dockerfile ด้วยสิ่งต่อไปนี้:
docker build -t k9s-docker:v0.0.1 .
คุณสามารถรับเวอร์ชัน kubectl
ที่มีเสถียรภาพล่าสุดและส่งผ่านไปยังคำสั่ง docker build
ด้วยตัวเลือก --build-arg
คุณสามารถใช้ตัวเลือก --build-arg
เพื่อส่งผ่าน kubectl
เวอร์ชันที่ถูกต้อง (เช่น v1.18.0
หรือ 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 .
เรียกใช้คอนเทนเนอร์ของคุณ:
docker run --rm -it -v ~ /.kube/config:/root/.kube/config k9s-docker:0.1
K9S ใช้โหมดเทอร์มินัล 256 สี ใน `ระบบห้ามตรวจสอบให้แน่ใจว่าคำศัพท์ถูกตั้งค่าตามนั้น
export TERM=xterm-256color
เพื่อออกคำสั่งแก้ไขทรัพยากรตรวจสอบให้แน่ใจว่าตัวแก้ไขและ kube_editor env vars ถูกตั้งค่า
# Kubectl edit command will use this env var.
export KUBE_EDITOR=my_fav_editor
K9S ชอบรุ่น Kubernetes ล่าสุดเช่น 1.28+
K9S | ลูกค้า 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
เมื่อพิจารณาถึงลักษณะของ UI K9s จะสร้างบันทึกไปยังตำแหน่งที่เฉพาะเจาะจง หากต้องการดูบันทึกและเปิดโหมดการดีบักให้ใช้คำสั่งต่อไปนี้:
# 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
คุณสามารถแทนที่ปลายทางไฟล์บันทึกเริ่มต้นได้ทั้งด้วยอาร์กิวเมนต์ --logFile
:
k9s --logFile /tmp/k9s.log
less /tmp/k9s.log
หรือผ่านตัวแปรสภาพแวดล้อม K9S_LOGS_DIR
:
K9S_LOGS_DIR=/var/log k9s
less /var/log/k9s.log
K9s ใช้นามแฝงเพื่อนำทางทรัพยากร K8S ส่วนใหญ่
การกระทำ | สั่งการ | การแสดงความคิดเห็น |
---|---|---|
แสดง mnemonics แป้นพิมพ์ที่ใช้งานอยู่และความช่วยเหลือ | ? | |
แสดงนามแฝงทรัพยากรที่มีอยู่ทั้งหมด | ctrl-a | |
เพื่อประกันตัวจาก K9s | :quit , :q , ctrl-c | |
เพื่อขึ้น/กลับไปที่มุมมองก่อนหน้า | esc | หากคุณมี crumbs บนสิ่งนี้จะไปที่อันก่อนหน้า |
ดูทรัพยากร Kubernetes โดยใช้เอกพจน์/พหูพจน์หรือชื่อสั้น ๆ | : pod⏎ | ยอมรับเอกพจน์พหูพจน์ชื่อสั้นหรือนามแฝงเช่นฝักหรือฝัก |
ดูทรัพยากร Kubernetes ในเนมสเปซที่กำหนด | : POD NS-X⏎ | |
ดูพ็อดที่ผ่านการกรอง (ใหม่ v0.30.0!) | : Pod /Fred⏎ | ดูฝักทั้งหมดที่กรองโดยเฟร็ด |
ดูพ็อดที่มีป้ายกำกับ (ใหม่ v0.30.0!) | : แอพ pod = fred, env = dev⏎ | ดูพ็อดทั้งหมดที่มีป้ายกำกับการจับคู่แอป = Fred และ Env = dev |
ดูพ็อดในบริบทที่กำหนด (ใหม่ v0.30.0!) | : pod @ctx1⏎ | ดูพ็อดทั้งหมดในบริบท CTX1 เปลี่ยนบริบท K9S ปัจจุบันของคุณ! |
กรองมุมมองทรัพยากรที่ได้รับตัวกรอง | / ตัวกรอง | regex2 รองรับเช่น `fred |
ตัวกรองผกผัน regex | / ! ตัวกรอง | เก็บทุกอย่างที่ ไม่ ตรงกัน |
มุมมองทรัพยากรตัวกรองโดยป้ายกำกับ | / -l label -selector⏎ | |
ฟัซซี่ค้นหาทรัพยากรที่ได้รับตัวกรอง | / -f ตัวกรอง⏎ | |
ออกจากโหมดมุมมอง/คำสั่ง/ตัวกรอง | <esc> | |
การแมปคีย์ที่จะอธิบายดูแก้ไข, ดูบันทึก, ... | d , v , e , l , ... | |
หากต้องการดูและเปลี่ยนไปใช้บริบท Kubernetes อื่น (มุมมอง POD) | : ctx⏎ | |
ในการดูและสลับโดยตรงไปยังบริบท Kubernetes อื่น (มุมมองที่ใช้ล่าสุด) | : ctx context-name⏎ | |
หากต้องการดูและเปลี่ยนไปใช้เนมสเปซ Kubernetes อื่น | : NS⏎ | |
เพื่อดูทรัพยากรที่บันทึกไว้ทั้งหมด | : Screenump หรือSD⏎ | |
เพื่อลบทรัพยากร (แท็บและป้อนเพื่อยืนยัน) | ctrl-d | |
ในการฆ่าทรัพยากร (ไม่มีกล่องโต้ตอบยืนยันเทียบเท่ากับ Kubectl Delete -Now) | ctrl-k | |
Launch Pulses View | : พัลส์หรือpu⏎ | |
เปิดตัว Xray View | : ทรัพยากร xray [เนมสเปซ] ⏎ | ทรัพยากรสามารถเป็นหนึ่งใน PO, SVC, DP, RS, STS, DS, เนมสเปซเป็นทางเลือก |
เปิดตัว Popeye View | : Popeye หรือPop⏎ | ดู Popeye |
K9s เก็บการกำหนดค่าเป็นไฟล์ YAML ภายในไดเรกทอรี k9s
และตำแหน่งขึ้นอยู่กับระบบปฏิบัติการของคุณ K9S ใช้ประโยชน์จาก XDG เพื่อโหลดไฟล์การกำหนดค่าต่างๆ สำหรับข้อมูลเกี่ยวกับตำแหน่งเริ่มต้นสำหรับระบบปฏิบัติการของคุณโปรดดูลิงค์นี้ หากคุณยังคงสับสน k9s info
ด่วนจะเปิดเผยว่า K9S กำลังโหลดการกำหนดค่าจากที่ใด หรือคุณสามารถตั้งค่า K9S_CONFIG_DIR
เพื่อบอก K9S ตำแหน่งไดเรกทอรีเพื่อดึงการกำหนดค่าจาก
Unix | แม็กอส | หน้าต่าง |
---|---|---|
~/.config/k9s | ~/Library/Application Support/k9s | %LOCALAPPDATA%k9s |
หมายเหตุ: สิ่งนี้ยังคงอยู่ในฟลักซ์และจะเปลี่ยนไปในขณะที่อยู่ในขั้นตอนก่อนปล่อย!
ตอนนี้คุณสามารถแทนที่บริบทของ Portforward ที่อยู่การกำหนดค่าที่อยู่เริ่มต้นได้โดยการตั้งค่าตัวแปร Env ที่สามารถแทนที่กลุ่มที่อยู่ในท้องถิ่นของ Portorward โดยใช้ 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 มีการรวมเข้ากับป๊อปอายซึ่งเป็นเครื่องฆ่าเชื้อแบบ Kubernetes คลัสเตอร์ Popeye ใช้การกำหนดค่าที่เรียกว่า spinach.yml
แต่เมื่อรวมเข้ากับ K9S ไฟล์เฉพาะคลัสเตอร์ควรเป็นชื่อ $XDG_CONFIG_HOME/share/k9s/clusters/clusterX/contextY/spinach.yml
สิ่งนี้ช่วยให้คุณมีการกำหนดค่าผักโขมต่อคลัสเตอร์ที่แตกต่างกัน
ด้วยการเปิดใช้งานประตูคุณสมบัติ Nodeshell บนคลัสเตอร์ที่กำหนด K9s ช่วยให้คุณสามารถเชลล์ลงในโหนดคลัสเตอร์ของคุณ เมื่อเปิดใช้งานแล้วคุณจะมีตัวเลือก shell
s
ในขณะที่อยู่ในมุมมองโหนด K9S จะเปิดตัวพ็อดบนโหนดที่เลือกโดยใช้พ็อด k9s_shell พิเศษ นอกจากนี้คุณสามารถปรับแต่งพ็อดเชลล์ของคุณได้โดยใช้อิมเมจนักเทียบท่าที่กำหนดเองล่วงหน้าด้วยเครื่องมือเชลล์ที่คุณรัก โดยค่าเริ่มต้น K9S ใช้อิมเมจ BusyBox แต่คุณสามารถกำหนดค่าได้ดังนี้:
หรือตอนนี้คุณสามารถแทนที่การกำหนดค่าบริบทได้โดยการตั้งค่าตัวแปร env ที่สามารถแทนที่เกตเชลล์โหนดคลัสเตอร์ทั้งหมดโดยใช้ 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
จากนั้นในไฟล์กำหนดค่าคลัสเตอร์ของคุณ ...
# $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
ใน K9S คุณสามารถกำหนดนามแฝงคำสั่งของคุณเอง (ชื่อสั้น ๆ ) เพื่อเข้าถึงทรัพยากรของคุณ ใน $HOME/.config/k9s
ของคุณกำหนดไฟล์ที่เรียกว่า aliases.yaml
นามแฝง K9S กำหนดคู่ของนามแฝง: GVR GVR (กลุ่ม/เวอร์ชัน/ทรัพยากร) แสดงถึงตัวระบุทรัพยากร Kubernetes ที่ผ่านการรับรองอย่างสมบูรณ์ นี่คือตัวอย่างของไฟล์นามแฝง:
# $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
การใช้ไฟล์นามแฝงนี้คุณสามารถพิมพ์ :pp
หรือ :crb
หรือ :fred
เพื่อเปิดใช้งานคำสั่งที่เกี่ยวข้อง
การเข้าสู่โหมดคำสั่งและการพิมพ์ชื่อทรัพยากรหรือนามแฝงอาจเป็นเรื่องยุ่งยากสำหรับการนำทางผ่านทรัพยากรที่ใช้บ่อยครั้ง เรากำลังแนะนำสายลัดที่อนุญาตให้ผู้ใช้กำหนดชุดค่าผสมคีย์ของตนเองเพื่อเปิดใช้งานมุมมองทรัพยากรที่ชื่นชอบ
นอกจากนี้คุณสามารถกำหนดคีย์เฉพาะบริบทโดยเพิ่มไฟล์การกำหนดค่าระดับบริบทใน $XDG_DATA_HOME/k9s/clusters/clusterX/contextY/hotkeys.yaml
เพื่อให้พื้นผิวลัดไปทั่วโลกโปรดทำตามขั้นตอนเหล่านี้:
สร้างไฟล์ชื่อ $XDG_CONFIG_HOME/k9s/hotkeys.yaml
เพิ่มสิ่งต่อไปนี้ลงใน hotkeys.yaml
ของคุณ คุณสามารถใช้ชื่อทรัพยากร/ชื่อสั้น ๆ เพื่อระบุคำสั่งเช่นเดียวกับการพิมพ์ขณะอยู่ในโหมดคำสั่ง
# $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
ไม่รู้สึกร้อนขนาดนี้? คีย์ลัดที่กำหนดเองของคุณจะอยู่ในมุมมองวิธีใช้ ?
- นอกจากนี้ไฟล์ Hotkeys ของคุณจะถูกโหลดใหม่โดยอัตโนมัติเพื่อให้คุณสามารถใช้สายลัดในขณะที่คุณกำหนด
คุณสามารถเลือกแป้นพิมพ์ลัดใด ๆ ที่เหมาะสมกับคุณหากพวกเขาไม่ได้เป็นส่วนหนึ่งของรายการทางลัด K9S มาตรฐาน
นอกจากนี้ยังรองรับตัวแปรสภาพแวดล้อมการอ้างอิงในคีย์ลัดด้วย ตัวแปรสภาพแวดล้อมที่มีอยู่สามารถอ้างถึงคำอธิบายในส่วนปลั๊กอิน
หมายเหตุ: คุณสมบัติ/การกำหนดค่านี้อาจเปลี่ยนแปลงในการเผยแพร่ในอนาคต!
ณ V0.25.0 คุณสามารถใช้ประโยชน์จากคุณสมบัติ FastForwards
เพื่อบอก K9S ว่าจะเริ่มต้นพอร์ตล่วงหน้าได้อย่างไร ในสถานการณ์ที่คุณจัดการกับคอนเทนเนอร์หรือคอนเทนเนอร์หลายรายการที่เปิดเผยหลายพอร์ตอาจเป็นเรื่องยุ่งยากในการระบุพอร์ตที่ต้องการไปข้างหน้าจากกล่องโต้ตอบเช่นเดียวกับในกรณีส่วนใหญ่คุณรู้อยู่แล้วว่าคอนเทนเนอร์/พอร์ตที่คุณต้องการ สำหรับกรณีการใช้งานเหล่านี้ตอนนี้คุณสามารถใส่คำอธิบายประกอบการแสดงของคุณด้วยคำอธิบายประกอบต่อไปนี้:
@ k9scli.io/auto-port-forwards
เปิดใช้งานหนึ่งพอร์ตไปข้างหน้าอย่างน้อยหนึ่งครั้งโดยผ่านกล่องโต้ตอบพอร์ตไปข้างหน้าทั้งหมดเข้าด้วยกัน @ k9scli.io/port-forwards
เลือกล่วงหน้าหนึ่งพอร์ตไปข้างหน้าอย่างน้อยหนึ่งพอร์ตเมื่อเปิดกล่องโต้ตอบพอร์ตไปข้างหน้า
ค่าคำอธิบายประกอบใช้งานในรูปแบบ container-name::[local-port:]container-port
หมายเหตุ: สำหรับทั้งสองกรณีข้างต้นคุณสามารถระบุพอร์ตคอนเทนเนอร์ตามชื่อหรือหมายเลขในคำอธิบายประกอบของคุณ!
# 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
...
ค่าคำอธิบายประกอบจะต้องระบุคอนเทนเนอร์เพื่อส่งต่อเช่นเดียวกับพอร์ตท้องถิ่นและพอร์ตคอนเทนเนอร์ พอร์ตคอนเทนเนอร์อาจระบุเป็นหมายเลขพอร์ตหรือชื่อพอร์ต หากพอร์ตโลคัลถูกละเว้นพอร์ตท้องถิ่นจะเริ่มต้นไปยังหมายเลขพอร์ตคอนเทนเนอร์ นี่คือตัวอย่างบางส่วน:
bozo
ด้วยชื่อพอร์ต http หาก HTTP ระบุหมายเลขพอร์ต 8080 พอร์ตท้องถิ่นจะเป็น 8080 เช่นกันbozo
Mapping พอร์ตท้องถิ่น 9090-> HTTP (8080)bozo
Mapping พอร์ตท้องถิ่น 9090-> 8080 Sneakcast v0.17.0 บนชายหาด! - ใช่! เสียงดูด แต่การตั้งค่าอะไร!
คุณสามารถเปลี่ยนคอลัมน์ที่แสดงสำหรับทรัพยากรที่กำหนดผ่านมุมมองที่กำหนดเอง ในการสร้างคุณสมบัตินี้คุณจะต้องสร้างไฟล์การกำหนดค่าใหม่คือ $XDG_CONFIG_HOME/k9s/views.yaml
ไฟล์นี้ใช้ประโยชน์จาก GVR (กลุ่ม/เวอร์ชัน/ทรัพยากร) เพื่อกำหนดค่าคอลัมน์มุมมองตารางที่เกี่ยวข้อง หากไม่พบ GVR สำหรับมุมมองการเรนเดอร์เริ่มต้นจะเข้าครอบครอง (เช่นสิ่งที่เรามีตอนนี้) การไปกว้างจะเพิ่มคอลัมน์ที่เหลือทั้งหมดที่มีอยู่ในทรัพยากรที่กำหนดหลังจากคอลัมน์ที่กำหนดเองของคุณ ในการบูตคุณสามารถแก้ไขไฟล์ config views ของคุณและปรับมุมมองแหล่งข้อมูลของคุณสด!
หมายเหตุ: นี่คือการทดลองและน่าจะเปลี่ยนแปลงได้มากที่สุดเมื่อเรารีดออกไป!
นี่คือการกำหนดค่ามุมมองตัวอย่างที่ปรับแต่งพ็อดและมุมมองบริการ
# $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 ช่วยให้คุณสามารถขยายบรรทัดคำสั่งและเครื่องมือของคุณโดยกำหนดคำสั่งคลัสเตอร์ของคุณเองผ่านปลั๊กอิน K9S จะดูที่ $XDG_CONFIG_HOME/k9s/plugins.yaml
เพื่อค้นหาปลั๊กอินที่มีอยู่ทั้งหมด
ปลั๊กอินถูกกำหนดดังนี้:
all
เพื่อให้ทางลัดนี้สำหรับทุกมุมมองK9s ให้ตัวแปรสภาพแวดล้อมเพิ่มเติมเพื่อให้คุณปรับแต่งอาร์กิวเมนต์ปลั๊กอินของคุณ ปัจจุบันตัวแปรสภาพแวดล้อมที่มีอยู่มีดังนี้:
$RESOURCE_GROUP
- กลุ่มทรัพยากรที่เลือก$RESOURCE_VERSION
- เวอร์ชัน API ทรัพยากรที่เลือก$RESOURCE_NAME
- ชื่อทรัพยากรที่เลือก$NAMESPACE
ซทรัพยากรที่เลือก$NAME
- ชื่อทรัพยากรที่เลือก$CONTAINER
- คอนเทนเนอร์ปัจจุบันหากมี$FILTER
- ตัวกรองปัจจุบันถ้ามี$KUBECONFIG
- ตำแหน่ง Kubeconfig$CLUSTER
ชื่อคลัสเตอร์ที่ใช้งานอยู่$CONTEXT
ชื่อบริบทที่ใช้งานอยู่$USER
ผู้ใช้ที่ใช้งานอยู่$GROUPS
กลุ่มที่ใช้งานอยู่$POD
ในขณะที่อยู่ในมุมมองคอนเทนเนอร์$COL-<RESOURCE_COLUMN_NAME>
ใช้ชื่อคอลัมน์ที่กำหนดสำหรับทรัพยากรที่ดู ต้องได้รับการรับรองโดย COL-
! วงเล็บปีกกาสามารถใช้ในการฝังตัวแปรสภาพแวดล้อมภายในสตริงอื่นหรือถ้าชื่อคอลัมน์มีอักขระพิเศษ (เช่น ${NAME}-example
หรือ ${COL-%CPU/L}
)
สิ่งนี้กำหนดปลั๊กอินสำหรับการดูบันทึกบน POD ที่เลือกโดยใช้ ctrl-l
เป็นทางลัด
# $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
หมายเหตุ: นี่เป็นคุณสมบัติการทดลอง! ตัวเลือกและเค้าโครงอาจเปลี่ยนแปลงในอนาคต K9S ที่วางจำหน่ายเนื่องจากคุณลักษณะนี้แข็งแกร่ง
K9s รวมเอาเฮ้จาก Jaana Dogan ที่ยอดเยี่ยมและมีความสามารถสุดยอด Hey
เป็นเครื่องมือ CLI สำหรับจุดสิ้นสุด HTTP มาตรฐานคล้ายกับ AB Bench ฟีเจอร์เบื้องต้นนี้รองรับการเปรียบเทียบพอร์ตไปข้างหน้าและบริการ (อ่านสีบนนี้เป็นวิธีที่สดใหม่!)
ในการตั้งค่าพอร์ตไปข้างหน้าคุณจะต้องนำทางไปยัง PodView เลือกฝักและคอนเทนเนอร์ที่แสดงพอร์ตที่กำหนด การใช้ไดอะล็อก SHIFT-F
ขึ้นมาเพื่อให้คุณสามารถระบุพอร์ตท้องถิ่นเพื่อส่งต่อ เมื่อได้รับการยอมรับคุณสามารถนำทางไปยัง Portforward View (นามแฝง pf
) ที่แสดงรายการพอร์ตที่ใช้งานอยู่ข้างหน้า การเลือกพอร์ตไปข้างหน้าและการใช้ CTRL-B
จะเรียกใช้เกณฑ์มาตรฐานบนจุดสิ้นสุด HTTP นั้น หากต้องการดูผลลัพธ์ของเกณฑ์มาตรฐานของคุณให้ไปที่มุมมองมาตรฐาน (นามแฝง be
) ตอนนี้คุณควรจะสามารถเลือกเกณฑ์มาตรฐานและดูรายละเอียดสถิติการเรียกใช้โดยกด <ENTER>
หมายเหตุ: Port-Forwards จะอยู่ในช่วงระยะเวลาของเซสชัน K9S เท่านั้นและจะถูกยกเลิกเมื่อออกจากทางออก
เริ่มแรกเกณฑ์มาตรฐานจะทำงานด้วยค่าเริ่มต้นต่อไปนี้:
มุมมอง PortForward ได้รับการสนับสนุนโดยไฟล์กำหนดค่า K9S ใหม่คือ: $XDG_DATA_HOME/k9s/clusters/clusterX/contextY/benchmarks.yaml
แต่ละคลัสเตอร์ที่คุณเชื่อมต่อจะมีไฟล์กำหนดค่าม้านั่งของตัวเองซึ่งมีชื่อของบริบท K8S สำหรับคลัสเตอร์ การเปลี่ยนแปลงไฟล์นี้ควรอัปเดตมุมมอง PortForward โดยอัตโนมัติเพื่อระบุวิธีที่คุณต้องการเรียกใช้มาตรฐานของคุณ
รายงานผลการวัดผลถูกเก็บไว้ใน $XDG_STATE_HOME/k9s/clusters/clusterX/contextY
นี่คือการกำหนดค่าตัวอย่างการกำหนดค่า YAML โปรดทราบว่าไฟล์นี้มีแนวโน้มที่จะเปลี่ยนแปลงในรุ่นต่อ ๆ ไป!
# 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!
ในกลุ่มที่เปิดใช้งาน RBAC คุณจะต้องให้ความสามารถของผู้ใช้/กลุ่มของคุณเพื่อให้พวกเขาสามารถใช้ K9s เพื่อสำรวจคลัสเตอร์ Kubernetes ของพวกเขา K9s ต้องการสิทธิ์อ่านเพียงเล็กน้อยทั้งในระดับคลัสเตอร์และระดับเนมสเปซเพื่อแสดงทรัพยากรและตัวชี้วัด
กฎเหล่านี้ด้านล่างเป็นเพียงคำแนะนำ คุณจะต้องปรับแต่งตามนโยบายสภาพแวดล้อมของคุณ หากคุณต้องการแก้ไข/ลบทรัพยากรเพิ่มเติม FU จะเป็นสิ่งจำเป็น
บันทึก! การเข้าถึงคลัสเตอร์/เนมสเปซอาจเปลี่ยนแปลงในอนาคตเมื่อ K9s วิวัฒนาการ บันทึก! เราคาดว่า K9 จะทำงานต่อไปแม้ในกลุ่ม/เนมสเปซ กรุณายื่นปัญหาหากไม่ใช่กรณี!
---
# 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
หากผู้ใช้ของคุณถูก จำกัด ให้กับเนมสเปซบางอย่าง K9s จะต้องทำตามบทบาทเพื่อเปิดใช้งานการเข้าถึงการเข้าถึงทรัพยากรที่ไม่ได้รับการอ่าน
---
# 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
ตัวอย่าง: Dracula Skin;)
คุณสามารถจัดสไตล์ K9s ตามความรู้สึกและสไตล์ของคุณเอง สกินเป็นไฟล์ YAML ที่ช่วยให้ผู้ใช้เปลี่ยนเลเยอร์การนำเสนอ K9S ดูไดเรกทอรี skins
repo นี้สำหรับตัวอย่าง คุณสามารถผิว K9s ได้โดยค่าเริ่มต้นโดยการระบุแอตทริบิวต์ UI.SKIN นอกจากนี้คุณยังสามารถเปลี่ยนสกิน K9S ตามบริบทที่คุณเชื่อมต่อได้เช่นกัน ในกรณีนี้คุณสามารถระบุฟิลด์ผิวบนคลัสเตอร์ของคุณ config aka skin: dracula
(เพียงชื่อของไฟล์ผิวโดยไม่ต้องขยาย!) และคัดลอก skins/dracula.yaml
ถึง $XDG_CONFIG_HOME/k9s/skins/
directory
ในกรณีที่คลัสเตอร์ของคุณครอบคลุมหลายบริบทคุณสามารถเพิ่มการกำหนดค่าบริบทผิวในการกำหนดค่าบริบทของคุณ นี่คือคอลเลกชันของ {context_name, skin} tuples (โปรดดูตัวอย่างด้านล่าง!)
สามารถกำหนดสีได้ด้วยชื่อหรือใช้การเป็นตัวแทน hex เมื่อเร็ว ๆ นี้เราได้เพิ่มสีที่มีชื่อ default
เพื่อระบุสีพื้นหลังที่โปร่งใสเพื่อรักษาการตั้งค่าสีพื้นหลังเทอร์มินัลของคุณหากต้องการ
หมายเหตุ: นี่เป็นคุณสมบัติการทดลองอย่างมากในเวลานี้จะมีการเพิ่ม/แก้ไขมากขึ้นหากคุณสมบัตินี้มีขาดังนั้นเธรดตามนั้น! หมายเหตุ: โปรดดูสกิน K9S สำหรับรายการสีที่มีอยู่
บริบทที่เฉพาะเจาะจงและให้ไฟล์ in_the_navy.yaml
อยู่ในไดเรกทอรีสกินของคุณ
# $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
นอกจากนี้คุณยังสามารถระบุผิวเริ่มต้นสำหรับบริบททั้งหมดในไฟล์กำหนดค่ารูท K9S ได้เช่น:
# $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
หากไม่มีการสนับสนุนจากคนที่ดีเหล่านี้โครงการนี้จะเป็น DUD ทั้งหมด!
นี่ยังคงทำงานอยู่! หากมีบางอย่างเสียหรือมีคุณสมบัติที่คุณต้องการโปรดยื่นปัญหาและหากมีความโน้มเอียงส่ง PR!
K9s มักจะระเบิดถ้า ...
K9s ตั้งอยู่บนยอดโครงการและห้องสมุดโอเพนซอร์สจำนวนมาก ความขอบคุณ อย่างจริงใจ ของเราต่อผู้มีส่วนร่วม OSS ทุกคนที่ทำงานกลางคืนและวันหยุดสุดสัปดาห์เพื่อทำให้โครงการนี้เป็นจริง!
Fernand Galiana
Aleksei Romanenko
เรามักจะสนุกกับการได้ยินจากคนที่ได้รับประโยชน์จากงานของเรา!
© 2023 Imhotep Software LLC วัสดุทั้งหมดได้รับใบอนุญาตภายใต้ Apache v2.0