يرجى الرجوع إلى موقع توثيق 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 for Linux
snap install k9s --devmode
على قوس لينكس
pacman -S k9s
ON OPENSUSE LINUX توزيع
zypper install k9s
على FreeBsd
pkg install k9s
على أوبونتو
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 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 من المصدر ، يجب عليك:
استنساخ الريبو
بناء وتشغيل القابل للتنفيذ
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
يمكنك بناء صورة Docker الخاصة بك من 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 لونًا. على `نظام nix تأكد من تعيين المصطلح وفقًا لذلك.
export TERM=xterm-256color
لإصدار أوامر تحرير الموارد ، تأكد من تعيين محررك و kube_editor env.
# 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
بالنظر إلى طبيعة واجهة المستخدم 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 | إذا كان لديك فتات ، فسيذهب هذا إلى السابق |
عرض مورد Kubernetes باستخدام المفرد/الجمع أو الاسم القصير | : pod⏎ | يقبل المفرد أو الجمع أو الاسم القصير أو الاسم المستعار IE أو قرون |
عرض مورد Kubernetes في مساحة اسم معينة | : POD NS-X⏎ | |
عرض القرون المصفاة (V0.30.0 جديدة!) | : Pod /Fred⏎ | عرض جميع القرون التي تمت تصفيتها بواسطة فريد |
عرض القرون المسمى (V0.30.0 جديد!) | : POD App = Fred ، Env = Dev⏎ | عرض جميع القرون مع تطبيقات مطابقة التسميات = فريد و ENV = DEV |
عرض القرون في سياق معين (V0.30.0 جديد!) | : POD @CTX1⏎ | عرض جميع القرون في السياق CTX1. تبديل سياق K9S الحالي الخاص بك! |
قم بتصفية طريقة عرض مورد مع مرشح | / مرشح | regex2 دعم أي `فريد |
عكسية مرشح regex | / ! مرشح | احتفظ بكل ما لا يتطابق. |
مرشح مورد عرض التسميات | / -L Label -Selector⏎ | |
Fuzzy ابحث عن مورد أعطى مرشحًا | / -f filter⏎ | |
تنبؤات عن وضع الرؤية/الأوامر/التصفية | <esc> | |
رسم الخرائط المفتاح لوصف السجلات ، عرض ، تحرير ، عرض ، ... | d ، v ، e ، l ، ... | |
للعرض والتبديل إلى سياق Kubernetes آخر (عرض POD) | : CTX⏎ | |
لعرض والتبديل مباشرة إلى سياق Kubernetes آخر (العرض الأخير المستخدم) | : CTX Context-Name⏎ | |
للعرض والتبديل إلى مساحة اسم Kubernetes أخرى | : NS⏎ | |
لعرض جميع الموارد المحفوظة | : screendump أو sd⏎ | |
لحذف مورد (علامة تبويب ودخل للتأكيد) | ctrl-d | |
لقتل مورد (لا يوجد حوار تأكيد ، أي ما يعادل Kubectl Delete -الآن) | ctrl-k | |
إطلاق نبضات عرض | : نبضات أو pu⏎ | |
إطلاق XRAY VIEW | : مورد Xray [مساحة الاسم] ⏎ | يمكن أن يكون المورد واحدًا من PO و SVC و DP و RS و STS و DS ومساحة الاسم اختيارية |
إطلاق Popeye عرض | : popeye أو pop⏎ | انظر بوب |
تحتفظ K9S بتكويناتها كملفات YAML داخل دليل k9s
ويعتمد الموقع على نظام التشغيل الخاص بك. تقوم K9S بتعزيز XDG لتحميل ملفات التكوينات المختلفة. للحصول على معلومات حول المواقع الافتراضية لنظام التشغيل الخاص بك ، يرجى الاطلاع على هذا الرابط. إذا كنت لا تزال مرتبكًا ، فستكشف k9s info
السريعة عن المكان الذي تقوم فيه K9s بتحميل تكويناتها. بدلاً من ذلك ، يمكنك تعيين K9S_CONFIG_DIR
لإخبار K9S موقع الدليل لسحب تكويناته منه.
يونيكس | ماكوس | النوافذ |
---|---|---|
~/.config/k9s | ~/Library/Application Support/k9s | %LOCALAPPDATA%k9s |
ملاحظة: لا يزال هذا في حالة تدفق وسيتغير أثناء مرحلة ما قبل الإصدار!
يمكنك الآن تجاوز تكوين العنوان الافتراضي للسياق عن طريق تعيين متغير ENV يمكنه تجاوز جميع المجموعات المحلية PortForward باستخدام 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 لديه تكامل مع Popeye ، وهو معقم الكتلة Kubernetes. يستخدم Popeye نفسه تكوينًا يسمى spinach.yml
، ولكن عند الاندماج مع K9S ، يجب أن يكون الملف الخاص الكتلة هو اسم $XDG_CONFIG_HOME/share/k9s/clusters/clusterX/contextY/spinach.yml
. يتيح لك ذلك الحصول على تكوين سبانخ مختلف لكل مجموعة.
من خلال تمكين بوابة ميزة NodeShell على مجموعة معينة ، يتيح لك K9S أن تقلق العقد العنقودية. بمجرد تمكينك ، سيكون لديك خيار s
shell
Menu جديد أثناء عرض العقدة. ستطلق K9S جرابًا على العقدة المحددة باستخدام قرنة K9S_Shell خاصة. علاوة على ذلك ، يمكنك تحسين جراب Shell الخاص بك باستخدام صورة Docker مخصصة تم تحميلها مسبقًا باستخدام أدوات 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
لتفعيل أوامر كل منها.
يمكن أن يكون إدخال وضع الأوامر وكتابة اسم المورد أو الاسم المستعار ، مرهقًا للتنقل من خلال الموارد المستخدمة في كثير من الأحيان. نحن نقدم مفاتيح hotkeys التي تسمح للمستخدمين بتحديد مجموعة المفاتيح الخاصة بهم لتفعيل طرق عرض الموارد المفضلة لديهم.
بالإضافة إلى ذلك ، يمكنك تحديد مفاتيح hotkeys الخاصة بالسياق عن طريق إضافة ملف تكوين مستوى السياق في $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 القياسية.
وبالمثل ، يتم دعم متغيرات البيئة المرجعية في مفاتيح hotkeys. يمكن أن تشير متغيرات البيئة المتاحة إلى الوصف في قسم الإضافات.
ملاحظة: قد تتغير هذه الميزة/التكوين في الإصدارات المستقبلية!
اعتبارًا من V0.25.0 ، يمكنك الاستفادة من ميزة FastForwards
لإخبار K9s كيفية الافتراضية للمنفذ. في المواقف التي تتعامل فيها مع حاويات أو حاويات متعددة تكشف عن منافذ متعددة ، قد يكون من المرهق تحديد المنفذ المطلوب إلى الأمام من مربع الحوار كما في معظم الحالات ، أنت تعرف بالفعل أي حاوية/منفذ تريد. بالنسبة لحالات الاستخدام هذه ، يمكنك الآن التعليق على مظاهرك مع التعليقات التوضيحية التالية:
@ k9scli.io/auto-port-forwards
ينشط واحد أو أكثر من المنفذ إلى الأمام متجاوزًا مباشرة حوار المنفذ إلى الأمام معًا. @ k9scli.io/port-forwards
يسبق تحديد ميناء أو أكثر عند إطلاق مربع الحوار port-forward.
تأخذ قيمة التعليقات التوضيحية 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
رسم المنفذ المحلي 9090-> http (8080)bozo
Mapping Port 9090-> 8080 Sneakcast v0.17.0 على الشاطئ! - نعم! الصوت مص ولكن يا له من إعداد!
يمكنك تغيير الأعمدة التي تظهر لمورد معين عبر طرق عرض مخصصة. لتسطح هذه الميزة ، ستحتاج إلى إنشاء ملف تكوين جديد ، أي $XDG_CONFIG_HOME/k9s/views.yaml
. يعمل هذا الملف على الاستفادة من GVR (المجموعة/الإصدار/المورد) لتكوين أعمدة عرض الجدول المرتبطة. إذا لم يتم العثور على GVR لعرض ، فسيتولى العرض الافتراضي (أي ما لدينا الآن). سيؤدي الانتقال على نطاق واسع إلى إضافة جميع الأعمدة المتبقية المتوفرة على المورد المحدد بعد الأعمدة المخصصة. للتمهيد ، يمكنك تحرير ملف Config Config وضبط مواردك على الهواء مباشرة!
ملاحظة: هذا تجريبي وسيتغير على الأرجح مع تسديد هذا!
فيما يلي تكوين عرض عينة يقوم بتخصيص وجهات نظر القرون والخدمات.
# $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}
)
يحدد هذا البرنامج المساعد لعرض سجلات على جراب محدد باستخدام 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 مهلا من جانا دوغان الرائع والموهوب. Hey
، أداة CLI لترويج نقاط نهاية HTTP مماثلة لمقعد AB. تدعم هذه الميزة الأولية حاليًا تقسيمات الموانئ والخدمات (اقرأ الطلاء على هذا الطريق جديد!).
لإعداد المنفذ إلى الأمام ، ستحتاج إلى الانتقال إلى PodView ، واختيار جراب وحاوية تعرض منفذًا معينًا. باستخدام حوار SHIFT-F
يأتي للسماح لك بتحديد منفذ محلي إلى التوجيه. بمجرد الاعتراف بها ، يمكنك الانتقال إلى PortForward View (alias pf
) لإدراج المنفذ النشط الخاص بك. سيقوم اختيار المنفذ إلى الأمام واستخدام CTRL-B
بتشغيل معيار حول نقطة نهاية HTTP هذه. لعرض نتائج تشغيل القياس الخاص بك ، انتقل إلى عرض المعايير (الاسم be
). يجب أن تكون قادرًا الآن على تحديد معيار وعرض تفاصيل Run Stats عن طريق الضغط على <ENTER>
. ملاحظة: يدوم المنفذ إلى الأمام فقط طوال مدة جلسة 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 إلى قراءة الامتيازات على حد سواء في كل من مستوى المجموعة ومساحة الاسم لعرض الموارد والمقاييس.
هذه القواعد أدناه هي مجرد اقتراحات. ستحتاج إلى تخصيصها بناءً على سياسات البيئة الخاصة بك. إذا كنت بحاجة إلى تحرير/حذف الموارد الإضافية ، فسيكون ذلك ضروريًا.
ملحوظة! قد يتغير الوصول إلى مساحة المجموعة/المساحة في المستقبل مع تطور K9s. ملحوظة! نتوقع أن تستمر K9s في الركض حتى في مجموعات/مساحات أسماء ضملة. يرجى تقديم مشكلات إذا لم يكن هذا هو الحال!
---
# 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
مثال: جلد دراكولا ؛)
يمكنك نمط K9s بناءً على إحساسك الخاص بالمظهر والأناقة. الجلود هي ملفات YAML ، والتي تمكن المستخدم من تغيير طبقة عرض K9S. شاهد دليل skins
الريبو هذا للحصول على أمثلة. يمكنك Skin K9s افتراضيًا عن طريق تحديد سمة ui.skin. يمكنك أيضًا تغيير جلود K9S بناءً على السياق الذي تتصل به أيضًا. في هذه الحالة ، يمكنك تحديد حقل الجلد على تكوين الكتلة الخاص بك ويعرف أيضًا باسم skin: dracula
(فقط اسم ملف الجلد بدون امتداد!) ونسخ skins/dracula.yaml
إلى $XDG_CONFIG_HOME/k9s/skins/
directory.
في الحالة التي تمتد فيها المجموعة الخاصة بك بعدة سياقات ، يمكنك إضافة تكوين سياق الجلد إلى تكوين السياق الخاص بك. هذه مجموعة من {context_name ، skin} tuples (يرجى الاطلاع على مثال أدناه!)
يمكن تعريف الألوان بالاسم أو باستخدام تمثيل سداسي عشرية. في الآونة الأخيرة ، أضفنا لونًا يسمى 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
بدون المساهمات من هؤلاء الأشخاص الجيدين ، سيكون هذا المشروع دودًا تمامًا!
هذا لا يزال يعمل قيد التقدم! إذا تم كسر شيء ما أو كانت هناك ميزة تريدها ، فيرجى تقديم مشكلة وإذا كان يميل إلى إرسال العلاقات العامة!
من المرجح أن تنفجر K9s إذا ...
يجلس K9S على رأس العديد من المشاريع والمكتبات مفتوحة المصدر. إن تقديرنا الصادق لجميع المساهمين الذين يعملون في OSS الذين يعملون ليالي وعطلات نهاية الأسبوع لجعل هذا المشروع حقيقة واقعة!
فرناند غاليانا
أليكسي رومانينكو
نستمتع دائمًا بالسماع من الأشخاص الذين يستفيدون من عملنا!
© 2023 IMHOTEP Software LLC. جميع المواد المرخصة بموجب Apache v2.0