k9s இன் மேலோட்டம் - குபெர்னெட்ஸிற்கான மேம்பட்ட முனைய இடைமுகம்
K9s குபெர்னெட்ஸ் கிளஸ்டர்களுடன் தொடர்புகொள்வதற்கான டெர்மினல் பயனர் இடைமுகத்தை வழங்குகிறது. இந்த ஓப்பன் சோர்ஸ் திட்டத்தின் குறிக்கோள், K8s இல் பயன்பாடுகளை வழிசெலுத்துவது, கண்காணிப்பது மற்றும் நிர்வகிப்பதை எளிதாக்குவதாகும். K9s தொடர்ந்து Kubernetes இல் ஏற்படும் மாற்றங்களை கண்காணிக்கிறது மற்றும் கண்காணிக்கப்பட்ட ஆதாரங்களுடன் பணிபுரிய விரைவான கட்டளைகளை வழங்குகிறது.
இந்த திட்டம் Go இல் எழுதப்பட்டுள்ளது மற்றும் ஒன்றரை ஆண்டுகளுக்கும் மேலாக உள்ளது: முதல் உறுதிமொழி பிப்ரவரி 1, 2019 அன்று செய்யப்பட்டது. எழுதும் நேரத்தில், 9000+ நட்சத்திரங்கள் உள்ளன மகிழ்ச்சியா மற்றும் சுமார் 80 பங்களிப்பாளர்கள். k9s என்ன செய்ய முடியும் என்று பார்ப்போம்?
நிறுவல் மற்றும் துவக்கம்
இது ஒரு கிளையன்ட் (குபெர்னெட்ஸ் கிளஸ்டருடன் தொடர்புடையது) பயன்பாடு ஆகும், இது டோக்கர் படமாக இயக்க எளிதானது:
docker run --rm -it -v $KUBECONFIG:/root/.kube/config quay.io/derailed/k9s
சில லினக்ஸ் விநியோகங்கள் மற்றும் பிற இயக்க முறைமைகள் நிறுவ தயாராக உள்ளன தொகுப்புகள். பொதுவாக, லினக்ஸ் கணினிகளுக்கு நீங்கள் பைனரி கோப்பை நிறுவலாம்:
K8s கிளஸ்டருக்கே குறிப்பிட்ட தேவைகள் எதுவும் இல்லை. மதிப்பாய்வுகளின் அடிப்படையில், 1.12 போன்ற குபெர்னெட்ஸின் பழைய பதிப்புகளிலும் பயன்பாடு செயல்படுகிறது.
பயன்பாடு நிலையான கட்டமைப்பைப் பயன்படுத்தத் தொடங்குகிறது .kube/config - அது எவ்வாறு செயல்படுகிறது என்பதைப் போன்றது kubectl.
ஊடுருவல்
முன்னிருப்பாக, சூழலுக்குக் குறிப்பிடப்பட்ட நிலையான பெயர்வெளியுடன் ஒரு சாளரம் திறக்கும். அதாவது, நீங்கள் எழுதியிருந்தால் kubectl config set-context --current --namespace=test, பின்னர் பெயர்வெளி திறக்கும் test. (சூழ்நிலைகள்/பெயர்வெளிகளை மாற்றுவது பற்றி கீழே காண்க.)
செல்க கட்டளை முறை ":" என்பதைக் கிளிக் செய்வதன் மூலம் மேற்கொள்ளப்படுகிறது. கட்டளைகளைப் பயன்படுத்தி k9s எவ்வாறு செயல்படுகிறது என்பதை நீங்கள் கட்டுப்படுத்தலாம் - எடுத்துக்காட்டாக, StatefulSets பட்டியலைப் பார்க்க (தற்போதைய பெயர்வெளியில்) நீங்கள் உள்ளிடலாம் :sts.
வேறு சில குபெர்னெட்ஸ் ஆதாரங்களுக்கு:
:ns - பெயர்வெளிகள்;
:deploy - வரிசைப்படுத்தல்கள்;
:ing - நுழைவு;
:svc - சேவைகள்.
பார்ப்பதற்குக் கிடைக்கும் வள வகைகளின் முழுமையான பட்டியலைக் காட்ட, ஒரு கட்டளை உள்ளது :aliases.
தற்போதைய சாளரத்தில் ஹாட்கி சேர்க்கைகள் மூலம் கிடைக்கும் கட்டளைகளின் பட்டியலைப் பார்ப்பதும் வசதியானது: இதைச் செய்ய, "?" என்பதைக் கிளிக் செய்யவும்.
k9s லும் உள்ளது தேடல் முறை, அதற்குச் செல்ல நீங்கள் "/" ஐ உள்ளிட வேண்டும். இது தற்போதைய "சாளரத்தின்" உள்ளடக்கங்களைத் தேடுகிறது. உதாரணமாக, நீங்கள் முன்பு நுழைந்திருந்தால் :ns, உங்களிடம் பெயர்வெளிகளின் பட்டியல் திறக்கப்பட்டுள்ளது. அவற்றில் பல இருந்தால், நீண்ட நேரம் கீழே உருட்டாமல் இருக்க, பெயர்வெளிகளுடன் சாளரத்தில் உள்ளிடவும். /mynamespace.
லேபிள்கள் மூலம் தேட, நீங்கள் விரும்பிய பெயர்வெளியில் உள்ள அனைத்து காய்களையும் தேர்ந்தெடுக்கலாம், பின்னர் உள்ளிடவும், எடுத்துக்காட்டாக, / -l app=whoami. இந்த லேபிளுடன் காய்களின் பட்டியலைப் பெறுவோம்:
பதிவுகள், YAML மேனிஃபெஸ்ட்களைப் பார்ப்பது மற்றும் அனைத்து வகையான சாளரங்களிலும் தேடல் வேலை செய்கிறது describe ஆதாரங்களுக்கு - இந்த திறன்கள் பற்றிய கூடுதல் தகவலுக்கு கீழே பார்க்கவும்.
ஒட்டுமொத்த வழிசெலுத்தல் ஓட்டம் எப்படி இருக்கும்?
С омощью команды :ctx நீங்கள் சூழலைத் தேர்ந்தெடுக்கலாம்:
பெயர்வெளியைத் தேர்ந்தெடுக்க ஏற்கனவே குறிப்பிடப்பட்ட கட்டளை உள்ளது :ns, பின்னர் நீங்கள் விரும்பிய இடத்திற்கான தேடலைப் பயன்படுத்தலாம்: /test.
இப்போது நாம் ஆர்வமுள்ள ஆதாரத்தைத் தேர்ந்தெடுத்தால் (எடுத்துக்காட்டாக, அதே ஸ்டேட்ஃபுல்செட்), அதற்கான தகவல் தோன்றும்: அவற்றைப் பற்றிய சுருக்கமான தகவலுடன் எத்தனை காய்கள் இயங்குகின்றன.
காய்கள் மட்டுமே ஆர்வமாக இருக்கலாம் - பின்னர் உள்ளிடவும் :pod. ConfigMaps விஷயத்தில் (:cm - இந்த ஆதாரங்களின் பட்டியலுக்கு) நீங்கள் ஆர்வமுள்ள பொருளைத் தேர்ந்தெடுத்து "u" என்பதைக் கிளிக் செய்யலாம், அதன் பிறகு K9s சரியாக (இந்த முதல்வர்) யார் பயன்படுத்துகிறார் என்பதை உங்களுக்குத் தெரிவிக்கும்.
ஆதாரங்களைப் பார்ப்பதற்கான மற்றொரு வசதியான அம்சம் அவற்றின் "எக்ஸ்ரே" (எக்ஸ்ரே காட்சி). இந்த முறை கட்டளையால் அழைக்கப்படுகிறது :xray RESOURCE மற்றும்... விளக்குவதை விட இது எவ்வாறு செயல்படுகிறது என்பதைக் காண்பிப்பது எளிது. ஸ்டேட்ஃபுல்செட்ஸிற்கான ஒரு எடுத்துக்காட்டு இங்கே:
(இந்த ஆதாரங்கள் ஒவ்வொன்றையும் திருத்தலாம், மாற்றலாம், உருவாக்கலாம் describe.)
மற்றும் இங்கே உள்ளிழுக்கத்துடன் வரிசைப்படுத்தல்:
வளங்களுடன் பணிபுரிதல்
ஒவ்வொரு வளத்தைப் பற்றிய தகவலையும் YAML அல்லது அதன் மூலம் பெறலாம் describe பொருத்தமான விசைப்பலகை குறுக்குவழிகளை அழுத்துவதன் மூலம் (முறையே "y" மற்றும் "d"). நிச்சயமாக, இன்னும் அடிப்படை செயல்பாடுகள் உள்ளன: இடைமுகத்தில் (Ctrl + e ஐ அழுத்துவதன் மூலம் மறைக்கப்பட்ட) வசதியான “தலைப்பு” காரணமாக அவற்றின் பட்டியல் மற்றும் விசைப்பலகை குறுக்குவழிகள் எப்போதும் தெரியும்.
எந்தவொரு ஆதாரத்தையும் திருத்தும் போது ("இ" அதைத் தேர்ந்தெடுத்த பிறகு), சூழல் மாறிகளில் வரையறுக்கப்பட்ட உரை திருத்தி (export EDITOR=vim).
வளத்தின் விரிவான விளக்கம் எப்படி இருக்கும் (describe):
வழக்கமான விசைப்பலகை குறுக்குவழி Ctrl + s ஐப் பயன்படுத்தி இந்த வெளியீடு (அல்லது YAML மேனிஃபெஸ்ட்டைப் பார்க்கும் வெளியீடு) சேமிக்கப்படும். அது எங்கே சேமிக்கப்படும் என்பதை K9s செய்தியிலிருந்து அறியலாம்:
முதலில் கணினி லேபிள்கள் மற்றும் சிறுகுறிப்புகளை அகற்றுவதன் மூலம் உருவாக்கப்பட்ட காப்பு கோப்புகளிலிருந்து ஆதாரங்களை மீட்டெடுக்கலாம். இதைச் செய்ய, நீங்கள் அவர்களுடன் கோப்பகத்திற்குச் செல்ல வேண்டும் (:dir /tmp), பின்னர் விரும்பிய கோப்பைத் தேர்ந்தெடுத்து விண்ணப்பிக்கவும் apply.
மூலம், தற்போதைய ReplicaSet இல் சிக்கல்கள் இருந்தால், எந்த நேரத்திலும் நீங்கள் முந்தைய ReplicaSet க்கு திரும்பலாம். இதைச் செய்ய, நீங்கள் விரும்பிய RS ஐத் தேர்ந்தெடுக்க வேண்டும் (:rs அவர்களின் பட்டியலுக்கு):
... மற்றும் Ctrl + l ஐப் பயன்படுத்தி திரும்பப் பெறவும். எல்லாம் வெற்றிகரமாக இருந்தது என்ற அறிவிப்பை நாங்கள் பெற வேண்டும்:
k9s/whoami-5cfbdbb469 successfully rolled back
பிரதிகளை அளவிட, “கள்” (அளவு) என்பதைக் கிளிக் செய்து, தேவையான எண்ணிக்கையிலான நகல்களைத் தேர்ந்தெடுக்கவும்:
ஷெல்லைப் பயன்படுத்தி நீங்கள் எந்த கொள்கலனையும் உள்ளிடலாம்: இதைச் செய்ய, விரும்பிய பாட்டுக்குச் சென்று, "s" (ஷெல்) என்பதைக் கிளிக் செய்து கொள்கலனைத் தேர்ந்தெடுக்கவும்.
பிற அம்சங்கள்
நிச்சயமாக, பதிவுகளைப் பார்ப்பதும் ஆதரிக்கப்படுகிறது (தேர்ந்தெடுக்கப்பட்ட ஆதாரத்திற்கான "எல்"). மேலும் புதிய பதிவுகளைப் பார்க்க, தொடர்ந்து Enter ஐ அழுத்த வேண்டிய அவசியமில்லை: ஒரு குறியை ("m") உருவாக்கவும், பின்னர் புதிய செய்திகளை மட்டும் கண்காணிக்கவும்.
அதே சாளரத்தில் பதிவுகளை வெளியிடுவதற்கான நேர வரம்பையும் நீங்கள் தேர்ந்தெடுக்கலாம்:
விசை "1" - 1 நிமிடத்தில்;
"2" - 5 நிமிடங்கள்;
"3" - 15 நிமிடங்கள்;
"4" - 30 நிமிடங்கள்;
"5" - 1 மணி நேரம்;
"0" - நெற்று முழு வாழ்க்கைக்கும்.
சிறப்பு இயக்க முறை துடிப்பு (கட்டளை :pulse) குபெர்னெட்ஸ் கிளஸ்டர் பற்றிய பொதுவான தகவல்களைக் காட்டுகிறது:
அதில் நீங்கள் வளங்களின் எண்ணிக்கையையும் அவற்றின் நிலையையும் பார்க்கலாம் (அந்தஸ்து உள்ளவை பச்சை நிறத்தில் காட்டப்பட்டுள்ளன Running).
K9s இன் மற்றொரு சுவாரஸ்யமான அம்சம் அழைக்கப்படுகிறது போபியே. இது சில சரியான அளவுகோல்களுக்கான அனைத்து ஆதாரங்களையும் சரிபார்த்து, அதன் விளைவாக வரும் "மதிப்பீட்டை" விளக்கங்களுடன் காண்பிக்கும். எடுத்துக்காட்டாக, போதுமான மாதிரிகள் அல்லது வரம்புகள் இல்லை என்பதை நீங்கள் பார்க்கலாம், மேலும் சில கொள்கலன்களை ரூட்டாக இயக்கலாம்...
அடிப்படை ஹெல்ம் ஆதரவு உள்ளது. எடுத்துக்காட்டாக, கிளஸ்டருக்கு அனுப்பப்பட்ட வெளியீடுகளை நீங்கள் இவ்வாறு பார்க்கலாம்:
:helm all # все
:helm $namespace # в конкретном пространстве имен
பெஞ்ச்மார்க்
அவர்கள் அதை K9 களில் கூட உருவாக்கினர் ஏய் HTTP சேவையகத்திற்கான எளிய சுமை ஜெனரேட்டராகும், இது மிகவும் பிரபலமான ab (ApacheBench) க்கு மாற்றாகும்.
அதை இயக்க, நீங்கள் பாடில் போர்ட்-ஃபார்வர்டை இயக்க வேண்டும். இதைச் செய்ய, Pod ஐத் தேர்ந்தெடுத்து Shift + f ஐ அழுத்தவும், "pf" என்ற மாற்றுப்பெயரைப் பயன்படுத்தி போர்ட்-ஃபார்வர்ட் துணைமெனுவிற்குச் செல்லவும்.
போர்ட்டைத் தேர்ந்தெடுத்து Ctrl + b ஐ அழுத்திய பிறகு, பெஞ்ச்மார்க் தொடங்கும். அவரது பணியின் முடிவுகள் சேமிக்கப்பட்டுள்ளன /tmp மற்றும் K9s இல் பின்னர் பார்க்க கிடைக்கும்.
பெஞ்ச்மார்க் உள்ளமைவை மாற்ற, நீங்கள் ஒரு கோப்பை உருவாக்க வேண்டும் $HOME/.k9s/bench-<my_context>.yml (ஒவ்வொரு கிளஸ்டருக்கும் வரையறுக்கப்பட்டுள்ளது).
குறிப்பு: கோப்பகத்தில் உள்ள அனைத்து YAML கோப்புகளின் நீட்டிப்பு முக்கியமானது .k9s அது சரியாக இருந்தது .yml (.yaml சரியாக வேலை செய்யாது).
கட்டமைப்பு உதாரணம்:
benchmarks:
defaults:
# Количество потоков
concurrency: 2
# Количество запросов
requests: 1000
containers:
# Настройки для контейнера с бенчмарком
# Контейнер определяется как namespace/pod-name:container-name
default/nginx:nginx:
concurrency: 2
requests: 10000
http:
path: /
method: POST
body:
{"foo":"bar"}
header:
Accept:
- text/html
Content-Type:
- application/json
services:
# Можно проводить бенчмарк на сервисах типа NodePort и LoadBalancer
# Синтаксис: namespace/service-name
default/nginx:
concurrency: 5
requests: 500
http:
method: GET
path: /auth
auth:
user: flant
password: s3cr3tp455w0rd
இடைமுகம்
ஒரு கோப்பை உருவாக்குவதன் மூலம் ஆதார பட்டியல்களுக்கான நெடுவரிசைகளின் தோற்றம் மாற்றியமைக்கப்படுகிறது $HOME/.k9s/views.yml. அதன் உள்ளடக்கத்தின் எடுத்துக்காட்டு:
k9s:
views:
v1/pods:
columns:
- AGE
- NAMESPACE
- NAME
- IP
- NODE
- STATUS
- READY
v1/services:
columns:
- AGE
- NAMESPACE
- NAME
- TYPE
- CLUSTER-IP
நெடுவரிசைகளின்படி வரிசைப்படுத்துதல் விசைப்பலகை குறுக்குவழிகளைப் பயன்படுத்தி மேற்கொள்ளப்படுகிறது:
Shift + n - பெயரால்;
Shift + o - முனைகளால்;
Shift + i - ஐபி மூலம்;
Shift + a - கொள்கலன் வாழ்நாள் மூலம்;
Shift + t - மறுதொடக்கங்களின் எண்ணிக்கையால்;
Shift + r - தயார் நிலை மூலம்;
Shift + c - CPU நுகர்வு மூலம்;
Shift + m - நினைவக நுகர்வு மூலம்.
இயல்புநிலை வண்ணத் திட்டத்தை யாராவது விரும்பவில்லை என்றால், K9s கூட ஆதரிக்கிறது தோல்கள். ஆயத்த எடுத்துக்காட்டுகள் (7 துண்டுகள்) கிடைக்கின்றன இங்கே. இந்த தோல்களில் ஒன்றின் உதாரணம் இங்கே (கடற்படையில்):
கூடுதல்
இறுதியாக, இணைப்பு K9களின் திறன்களை விரிவாக்க உங்களை அனுமதிக்கிறது. அவற்றில் ஒன்றை மட்டுமே நான் என் வேலையில் பயன்படுத்தினேன் - kubectl get all -n $namespace.
இது போல் தெரிகிறது. ஒரு கோப்பை உருவாக்கவும் $HOME/.k9s/plugin.yml இந்த உள்ளடக்கத்துடன்:
plugin:
get-all:
shortCut: g
confirm: false
description: get all
scopes:
- all
command: sh
background: false
args:
- -c
- "kubectl -n $NAMESPACE get all -o wide | less"
இப்போது நீங்கள் பெயர்வெளிக்குச் சென்று தொடர்புடைய கட்டளையை இயக்க "g" ஐ அழுத்தவும்:
செருகுநிரல்களில், எடுத்துக்காட்டாக, kubectl-jq உடனான ஒருங்கிணைப்புகள் மற்றும் பதிவுகளைப் பார்ப்பதற்கான பயன்பாடு ஆகியவை உள்ளன. கடுமையான.
முடிவுக்கு
எனது ரசனைக்கு, K9 கள் பயன்படுத்த மிகவும் வசதியாக மாறியது: அதைப் பயன்படுத்தாமல் உங்களுக்குத் தேவையான அனைத்தையும் விரைவாகக் கண்டுபிடிக்கப் பழகலாம். kubectl. பதிவுகளைப் பார்த்து அவற்றைச் சேமித்தல், வளங்களை விரைவாகத் திருத்துதல், பொதுவாக வேலை செய்யும் வேகம்*, போபியே பயன்முறை பயனுள்ளதாக இருந்தது. செருகுநிரல்களை உருவாக்கும் திறன் மற்றும் உங்கள் தேவைகளுக்கு ஏற்ப பயன்பாட்டைத் தனிப்பயனாக்கும் திறன் பற்றி குறிப்பாக குறிப்பிடப்பட வேண்டும்.
* இருப்பினும், பெரிய அளவிலான பதிவுகளுடன், K9 களின் மெதுவான செயல்பாட்டையும் நான் கவனித்தேன். அத்தகைய தருணங்களில், பயன்பாடு Intel Xeon E2xx இன் 312 கோர்களை "சாப்பிட்டது" மற்றும் உறைந்து போகலாம்.
இந்த நேரத்தில் என்ன காணவில்லை? கோப்பகத்திற்குச் செல்லாமல் முந்தைய பதிப்பிற்கு (நாங்கள் RS பற்றி பேசவில்லை) விரைவாக திரும்பவும். கூடுதலாக, மறுசீரமைப்பு நிகழ்கிறது மட்டுமே ஆதாரம்: நீங்கள் ஒரு சிறுகுறிப்பு அல்லது லேபிளை நீக்கியிருந்தால், முழு ஆதாரத்தையும் நீக்கி மீட்டெடுக்க வேண்டும் (இங்கே நீங்கள் கோப்பகத்திற்குச் செல்ல வேண்டும்). மற்றொரு சிறிய விஷயம் என்னவென்றால், அத்தகைய சேமிக்கப்பட்ட "காப்புப்பிரதிகளின்" தேதி காணவில்லை.