
Kubernetes පොකුරු සමඟ අන්තර් ක්රියා කිරීම සඳහා පර්යන්ත පරිශීලක අතුරු මුහුණතක් සපයයි. මෙම විවෘත මූලාශ්ර ව්යාපෘතියේ අරමුණ වන්නේ K8s හි යෙදුම් සැරිසැරීම, නිරීක්ෂණය කිරීම සහ කළමනාකරණය කිරීම පහසු කිරීමයි. K9s නිරන්තරයෙන් Kubernetes හි වෙනස්කම් නිරීක්ෂණය කරන අතර අධීක්ෂණය කරන ලද සම්පත් සමඟ වැඩ කිරීමට ඉක්මන් විධාන ලබා දෙයි.
ව්යාපෘතිය Go හි ලියා ඇති අතර එය වසර එකහමාරකට වැඩි කාලයක් පවතී: පළමු කැපවීම 1 පෙබරවාරි 2019 වන දින සිදු කරන ලදී. ලියන අවස්ථාව වන විට, තරු 9000+ ක් ඇත සහ දායකයින් 80 ක් පමණ. අපි බලමු k9s වලට මොනවද කරන්න පුලුවන් කියලා?
ස්ථාපනය සහ දියත් කිරීම
මෙය ඩොකර් රූපයක් ලෙස ධාවනය කිරීමට පහසුම සේවාදායක (කුබර්නෙටස් පොකුරු සම්බන්ධයෙන්) යෙදුමකි:
docker run --rm -it -v $KUBECONFIG:/root/.kube/config quay.io/derailed/k9sසමහර ලිනක්ස් බෙදාහැරීම් සහ අනෙකුත් මෙහෙයුම් පද්ධති සඳහා, ස්ථාපනය කිරීමට සූදානම්ව ඇත . සාමාන්යයෙන්, ලිනක්ස් පද්ධති සඳහා, ඔබට ද්විමය ගොනුවක් ස්ථාපනය කළ හැකිය:
sudo wget -qO- https://github.com/derailed/k9s/releases/download/v0.22.0/k9s_Linux_x86_64.tar.gz | tar zxvf - -C /tmp/
sudo mv /tmp/k9s /usr/local/binK8s පොකුර සඳහාම නිශ්චිත අවශ්යතා නොමැත. සමාලෝචන අනුව විනිශ්චය කිරීම, යෙදුම 1.12 වැනි Kubernetes හි පැරණි අනුවාද සමඟ ද ක්රියා කරයි.
යෙදුම සම්මත වින්යාසය භාවිතයෙන් දියත් කර ඇත .kube/config - එය කරන ආකාරය හා සමානයි kubectl.
සංචලනය
පෙරනිමියෙන්, සන්දර්භය සඳහා නිශ්චිතව දක්වා ඇති පෙරනිමි නාම අවකාශය සමඟ කවුළුවක් විවෘත වේ. එනම්, ඔබ ලිව්වා නම් kubectl config set-context --current --namespace=test, එවිට නාම අවකාශය විවෘත වේ test. (සන්දර්භ/නාම අවකාශ වෙනස් කිරීම සඳහා පහත බලන්න.)

යන්න විධාන මාදිලිය ":" එබීමෙන් සිදු කෙරේ. ඊට පසු, ඔබට විධාන භාවිතයෙන් k9s ක්රියාකාරිත්වය පාලනය කළ හැකිය - උදාහරණයක් ලෙස, StatefulSets ලැයිස්තුව බැලීමට (වත්මන් නාම අවකාශයේ), ඔබට ඇතුළු විය හැකිය. :sts.
![]()
තවත් සමහර Kubernetes සම්පත් සඳහා:
-
:ns- නාම අවකාශයන්; -
:deploy- යෙදවුම්; -
:ing- ඇතුල්වීම්; -
:svc- සේවා.
බැලීම සඳහා පවතින සම්පත් වර්ගවල සම්පූර්ණ ලැයිස්තුවක් ප්රදර්ශනය කිරීම සඳහා, විධානයක් ඇත :aliases.
වත්මන් කවුළුව තුළ උණුසුම් යතුරු සංයෝජන මගින් ලබා ගත හැකි විධාන ලැයිස්තුව බැලීම ද පහසුය: මෙය සිදු කිරීම සඳහා, "?" මත ක්ලික් කරන්න.

k9s වලත් තියෙනවා සෙවුම් මාදිලිය, යන්නට එය "/" ඇතුලත් කිරීමට ප්රමාණවත් වේ. එය සමඟ, වත්මන් "කවුළුවේ" අන්තර්ගතය මත සෙවුමක් සිදු කරනු ලැබේ. ඔබ කලින් ඇතුල් වූවා නම් කියමු :ns, ඔබට නාම අවකාශයන් ලැයිස්තුවක් විවෘතව ඇත. ඒවායින් බොහොමයක් තිබේ නම්, දිගු වේලාවක් පහළට අනුචලනය නොකිරීමට නම්, නාම අවකාශයන් සමඟ කවුළුව තුළට ඇතුල් කිරීම ප්රමාණවත්ය. /mynamespace.
ලේබල අනුව සෙවීමට, ඔබට අවශ්ය නාම අවකාශයේ ඇති සියලුම පොඩ් තෝරා ගත හැක, පසුව ඇතුළු කරන්න, උදාහරණයක් ලෙස, / -l app=whoami. මෙම ලේබලය සහිත කරල් ලැයිස්තුවක් අපට ලැබෙනු ඇත:
![]()
ලඝු-සටහන්, YAML මැනිෆෙස්ට බැලීම, සහ ඇතුළුව, සියලු වර්ගවල කවුළු වල සෙවුම ක්රියා කරයි describe සම්පත් සඳහා - මෙම විශේෂාංග පිළිබඳ වැඩි විස්තර සඳහා පහත බලන්න.
සමස්ත සංචාලන ප්රවාහය පෙනෙන්නේ කෙසේද?
විධානය සමඟ :ctx ඔබට සන්දර්භය තෝරාගත හැක:

නාම අවකාශයක් තෝරා ගැනීමට, දැනටමත් සඳහන් කර ඇති විධානය ඇත :ns, ඉන්පසු ඔබට අවශ්ය ඉඩ සඳහා සෙවීම භාවිතා කළ හැක: /test.
අපි දැන් අපි උනන්දුවක් දක්වන සම්පත තෝරන්නේ නම් (උදාහරණයක් ලෙස, එම StatefulSet), අනුරූප තොරතුරු ඒ සඳහා දිස්වනු ඇත: ඒවා පිළිබඳ කෙටි තොරතුරු සමඟ කොපමණ පොඩ්ස් ක්රියාත්මක වේ.
![]()
කරල් පමණක් උනන්දුවක් දැක්විය හැකිය - එවිට එය ඇතුල් වීමට ප්රමාණවත් වේ :pod. ConfigMaps සම්බන්ධයෙන් (:cm - මෙම සම්පත් ලැයිස්තුව සඳහා), ඔබට උනන්දුවක් දක්වන වස්තුව තෝරා "u" මත ක්ලික් කළ හැකිය, ඉන්පසු K9s එය විශේෂයෙන් භාවිතා කරන්නේ කවුරුන්ද යන්න ඔබට කියනු ඇත (මෙම CM).
සම්පත් බැලීම සඳහා තවත් පහසු අංගයක් වන්නේ ඒවායේ ය "x-ray" (Xray දර්ශනය). මෙම මාදිලිය විධානය මගින් හැඳින්වේ :xray RESOURCE සහ ... පැහැදිලි කිරීමට වඩා එය ක්රියා කරන ආකාරය පෙන්වීම පහසුය. StatefulSets සඳහා නිදර්ශනයක් මෙන්න:

(මෙම එක් එක් සම්පත් සංස්කරණය කිරීමට, වෙනස් කිරීමට, සෑදිය හැක describe.)
සහ ඇතුල්වීම සමඟ යෙදවීම මෙන්න:

සම්පත් සමඟ වැඩ කිරීම
ඔබට YAML හෝ එහි එක් එක් සම්පත පිළිබඳ තොරතුරු ලබා ගත හැක describe අනුරූප යතුරුපුවරු කෙටිමං එබීමෙන් (පිළිවෙලින් "y" සහ "d"). ඇත්ත වශයෙන්ම, ඊටත් වඩා මූලික මෙහෙයුම් තිබේ: අතුරුමුහුණතේ ඇති පහසු "ශීර්ෂකය" (Ctrl + e එබීමෙන් සඟවා ඇති) නිසා ඒවායේ ලැයිස්තුව සහ යතුරුපුවරු කෙටිමං සැමවිටම දෘශ්යමාන වේ.

කිසියම් සම්පතක් සංස්කරණය කරන විට (එය තේරීමෙන් පසු "ඊ"), පරිසර විචල්යවල අර්ථ දක්වා ඇති පෙළ සංස්කාරකය විවෘත වේ (export EDITOR=vim).
සම්පත් පිළිබඳ සවිස්තරාත්මක විස්තරය පෙනෙන්නේ කෙසේද යන්න මෙන්න (describe):

මෙම ප්රතිදානය (හෝ සම්පත් YAML මැනිෆෙස්ටය බැලීමේ ප්රතිදානය) හුරුපුරුදු Ctrl + s යතුරුපුවරු කෙටිමඟ භාවිතයෙන් සුරැකිය හැක. එය සුරැකෙන්නේ කොතැනද යන්න K9s පණිවිඩයෙන් දැනගත හැකිය:
Log /tmp/k9s-screens-root/kubernetes/Describe-1601244920104133900.yml saved successfully! පද්ධති ලේබල සහ විවරණ ඉවත් කිරීමෙන් පසු, සාදන ලද උපස්ථ ගොනු වලින් ඔබට සම්පත් ප්රතිසාධනය කළ හැක. මෙය සිදු කිරීම සඳහා, ඔබ ඔවුන් සමඟ නාමාවලිය වෙත යා යුතුය (:dir /tmp), පසුව අවශ්ය ගොනුව තෝරා අයදුම් කරන්න apply.
මාර්ගය වන විට, වත්මන් එක සමඟ ගැටළු තිබේ නම් ඔබට ඕනෑම වේලාවක පෙර ReplicaSet වෙත ආපසු යා හැක. මෙය සිදු කිරීම සඳහා, අපේක්ෂිත RS (:rs ඔවුන්ගේ ලැයිස්තුව සඳහා):

... සහ Ctrl + l සමඟ ආපසු හැරවීම. සියල්ල හොඳින් සිදු වූ බවට අපට දැනුම් දීමක් ලැබිය යුතුය:
k9s/whoami-5cfbdbb469 successfully rolled backඅනුරූ පරිමාණය කිරීමට, "s" (පරිමාණය) මත ක්ලික් කර අවශ්ය අවස්ථා ගණන තෝරන්න:

ඔබට කවචය භාවිතයෙන් ඕනෑම බහාලුමක් ඇතුළු කළ හැකිය: මෙය සිදු කිරීම සඳහා, අපේක්ෂිත පොඩ් වෙත ගොස්, "s" (ෂෙල්) මත ක්ලික් කර බහාලුම තෝරන්න.
වෙනත් විශේෂාංග
ඇත්ත වශයෙන්ම, ලඝු-සටහන් බැලීම ද සහය දක්වයි (තෝරාගත් සම්පත සඳහා "l"). නව ලඝු-සටහන් නැරඹීම සඳහා, නිරන්තරයෙන් Enter ඔබන්න අවශ්ය නොවේ: එය ("m") සලකුණු කිරීමට ප්රමාණවත් වේ, පසුව පමණක් නව පණිවිඩ නිරීක්ෂණය කරන්න.

එම කවුළුවේම, ඔබට ලඝු-සටහන් ප්රතිදානය සඳහා කාල පරාසය තෝරාගත හැක:
- යතුර "1" - විනාඩි 1 සඳහා;
- "2" - විනාඩි 5;
- "3" - විනාඩි 15;
- "4" - විනාඩි 30;
- "5" - පැය 1;
- "0" - කරල් මුළු ජීවිත කාලය සඳහා.
විශේෂ මෙහෙයුම් මාදිලියේ ස්පන්දනය (විධානය :pulse) Kubernetes පොකුර පිළිබඳ සාමාන්ය තොරතුරු පෙන්වයි:

එහි ඔබට සම්පත් ගණන සහ ඒවායේ තත්ත්වය (තත්ත්වය ඇති ඒවා කොළ පැහැයෙන් පෙන්වයි Running).
K9s හි තවත් සිසිල් අංගයක් ලෙස හැඳින්වේ පොපෙයි. එය නිවැරදි බව පිළිබඳ යම් නිර්ණායක සඳහා සියලු සම්පත් පරීක්ෂා කරන අතර පැහැදිලි කිරීම් සමඟින් ලැබෙන "ශ්රේණිගත කිරීම" පෙන්වයි. උදාහරණයක් ලෙස, ප්රමාණවත් සාම්පල හෝ සීමාවන් නොමැති බව ඔබට දැක ගත හැකි අතර සමහර බහාලුම් මූල ලෙස ක්රියා කළ හැකිය ...

හෙල්ම් සඳහා මූලික සහාය ඇත. උදාහරණයක් ලෙස, පොකුරේ යොදවා ඇති නිකුතු ඔබට දැකිය හැකි ආකාරය මෙයයි:
:helm all # все
:helm $namespace # в конкретном пространстве имен
ප්රමිතිය
K9s තුළ පවා ගොඩනගා ඇත සරල HTTP සේවාදායක පැටවුම් උත්පාදකයක් වන අතර, වඩාත් හොඳින් දන්නා ab (ApacheBench) සඳහා විකල්පයකි.
එය සක්රීය කිරීමට, ඔබ පොඩ් එකෙහි port-forward සක්රීය කළ යුතුය. මෙය සිදු කිරීම සඳහා, පොඩ් එක තෝරා Shift + f ඔබන්න, "pf" අන්වර්ථය භාවිතා කරමින් port-forward submenu වෙත යන්න.

වරාය තෝරා 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 - IP මගින්;
- Shift + a - බහාලුම් ආයු කාලය අනුව;
- Shift + t - නැවත ආරම්භ කිරීම් ගණන අනුව;
- Shift + r - සූදානම තත්ත්වය අනුව;
- Shift + c - CPU පරිභෝජනයෙන්;
- Shift + m - මතක පරිභෝජනයෙන්.
යමෙකු පෙරනිමි වර්ණ පටිපාටියට අකමැති නම්, K9s පවා සහාය දක්වයි . සූදානම් කළ උදාහරණ (කෑලි 7) ඇත . මෙන්න මේ හම්වලින් එකකට උදාහරණයක් (නාවික හමුදාවේ):

ප්ලගීන
අවසාන වශයෙන් K9s හි හැකියාවන් පුළුල් කිරීමට ඔබට ඉඩ සලසයි. මම මගේ කාර්යයේදී ඒවායින් එකක් පමණක් භාවිතා කර ඇත - 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 සමඟ ඒකාබද්ධ කිරීම් සහ ලඝු-සටහන් බැලීම සඳහා උපයෝගීතාවයක් ඇත. .
නිගමනය
මගේ රසය සඳහා, K9s සමඟ වැඩ කිරීමට ඉතා පහසු විය: ඔබට එය භාවිතා නොකර ඔබට අවශ්ය සියල්ල සෙවීමට ඉක්මනින් පුරුදු විය හැකිය. kubectl. ලඝු-සටහන් බැලීම සහ ඒවා ඉතිරි කිරීම, සම්පත් ඉක්මනින් සංස්කරණය කිරීම, පොදුවේ වැඩ කිරීමේ වේගය *, Popeye මාදිලිය ප්රයෝජනවත් විය. විශේෂ සඳහනක් වන්නේ ඔබේ අවශ්යතාවයට සරිලන පරිදි ප්ලගීන නිර්මාණය කිරීමට සහ යෙදුම වෙනස් කිරීමට ඇති හැකියාවයි.
* ලොග් විශාල ප්රමාණයක් තිබියදීත්, K9 වල මන්දගාමී ක්රියාකාරිත්වය ද මම දුටුවෙමි. එවැනි අවස්ථාවන්හිදී, උපයෝගීතාව Intel Xeon E2xx වෙතින් කෝර් 312 ක් "කෑ" අතර එය කැටි කිරීමට පවා ඉඩ ඇත.
මේ මොහොතේ අතුරුදහන් වී ඇත්තේ කුමක්ද? නාමාවලියට නොගොස් පෙර අනුවාදයට ඉක්මන් ආපසු හැරීම (අපි ආර්එස් ගැන කතා නොකරමු). ඊට අමතරව, ප්රකෘතිමත් වීම සිදු වන්නේ සඳහා පමණි එකතුව සම්පත්: ඔබ විවරණයක් හෝ ලේබලයක් මකා දැමුවහොත්, ඔබට සම්පූර්ණ සම්පත මකා දැමීමට සහ ප්රතිසාධනය කිරීමට සිදුවනු ඇත (ඔබට නාමාවලිය වෙත යා යුතු ස්ථානය මෙයයි). තවත් සුළු දෙයක් - එවැනි සුරකින ලද "බැකප්" සඳහා ප්රමාණවත් දිනයක් නොමැත.
ප්රාදේශීය සභා
අපගේ බ්ලොග් අඩවියේ ද කියවන්න:
- «»;
- «»;
- «".
මූලාශ්රය: www.habr.com
