k9s හි දළ විශ්ලේෂණය - Kubernetes සඳහා උසස් පර්යන්ත අතුරු මුහුණතක්

k9s හි දළ විශ්ලේෂණය - Kubernetes සඳහා උසස් පර්යන්ත අතුරු මුහුණතක්

K9s Kubernetes පොකුරු සමඟ අන්තර් ක්‍රියා කිරීම සඳහා පර්යන්ත පරිශීලක අතුරු මුහුණතක් සපයයි. මෙම විවෘත මූලාශ්‍ර ව්‍යාපෘතියේ අරමුණ වන්නේ K8s හි යෙදුම් සැරිසැරීම, නිරීක්ෂණය කිරීම සහ කළමනාකරණය කිරීම පහසු කිරීමයි. K9s නිරන්තරයෙන් Kubernetes හි වෙනස්කම් නිරීක්ෂණය කරන අතර අධීක්ෂණය කරන ලද සම්පත් සමඟ වැඩ කිරීමට ඉක්මන් විධාන ලබා දෙයි.

ව්‍යාපෘතිය Go හි ලියා ඇති අතර එය වසර එකහමාරකට වැඩි කාලයක් පවතී: පළමු කැපවීම 1 පෙබරවාරි 2019 වන දින සිදු කරන ලදී. ලියන අවස්ථාව වන විට, තරු 9000+ ක් ඇත GitHub සහ දායකයින් 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/bin

K8s පොකුර සඳහාම නිශ්චිත අවශ්‍යතා නොමැත. සමාලෝචන අනුව විනිශ්චය කිරීම, යෙදුම 1.12 වැනි Kubernetes හි පැරණි අනුවාද සමඟ ද ක්‍රියා කරයි.

යෙදුම සම්මත වින්‍යාසය භාවිතයෙන් දියත් කර ඇත .kube/config - එය කරන ආකාරය හා සමානයි kubectl.

සංචලනය

පෙරනිමියෙන්, සන්දර්භය සඳහා නිශ්චිතව දක්වා ඇති පෙරනිමි නාම අවකාශය සමඟ කවුළුවක් විවෘත වේ. එනම්, ඔබ ලිව්වා නම් kubectl config set-context --current --namespace=test, එවිට නාම අවකාශය විවෘත වේ test. (සන්දර්භ/නාම අවකාශ වෙනස් කිරීම සඳහා පහත බලන්න.)

k9s හි දළ විශ්ලේෂණය - Kubernetes සඳහා උසස් පර්යන්ත අතුරු මුහුණතක්

යන්න විධාන මාදිලිය ":" එබීමෙන් සිදු කෙරේ. ඊට පසු, ඔබට විධාන භාවිතයෙන් k9s ක්‍රියාකාරිත්වය පාලනය කළ හැකිය - උදාහරණයක් ලෙස, StatefulSets ලැයිස්තුව බැලීමට (වත්මන් නාම අවකාශයේ), ඔබට ඇතුළු විය හැකිය. :sts.

k9s හි දළ විශ්ලේෂණය - Kubernetes සඳහා උසස් පර්යන්ත අතුරු මුහුණතක්

තවත් සමහර Kubernetes සම්පත් සඳහා:

  • :ns - නාම අවකාශයන්;
  • :deploy - යෙදවුම්;
  • :ing - ඇතුල්වීම්;
  • :svc - සේවා.

බැලීම සඳහා පවතින සම්පත් වර්ගවල සම්පූර්ණ ලැයිස්තුවක් ප්රදර්ශනය කිරීම සඳහා, විධානයක් ඇත :aliases.

වත්මන් කවුළුව තුළ උණුසුම් යතුරු සංයෝජන මගින් ලබා ගත හැකි විධාන ලැයිස්තුව බැලීම ද පහසුය: මෙය සිදු කිරීම සඳහා, "?" මත ක්ලික් කරන්න.

k9s හි දළ විශ්ලේෂණය - Kubernetes සඳහා උසස් පර්යන්ත අතුරු මුහුණතක්

k9s වලත් තියෙනවා සෙවුම් මාදිලිය, යන්නට එය "/" ඇතුලත් කිරීමට ප්‍රමාණවත් වේ. එය සමඟ, වත්මන් "කවුළුවේ" අන්තර්ගතය මත සෙවුමක් සිදු කරනු ලැබේ. ඔබ කලින් ඇතුල් වූවා නම් කියමු :ns, ඔබට නාම අවකාශයන් ලැයිස්තුවක් විවෘතව ඇත. ඒවායින් බොහොමයක් තිබේ නම්, දිගු වේලාවක් පහළට අනුචලනය නොකිරීමට නම්, නාම අවකාශයන් සමඟ කවුළුව තුළට ඇතුල් කිරීම ප්රමාණවත්ය. /mynamespace.

ලේබල අනුව සෙවීමට, ඔබට අවශ්‍ය නාම අවකාශයේ ඇති සියලුම පොඩ් තෝරා ගත හැක, පසුව ඇතුළු කරන්න, උදාහරණයක් ලෙස, / -l app=whoami. මෙම ලේබලය සහිත කරල් ලැයිස්තුවක් අපට ලැබෙනු ඇත:

k9s හි දළ විශ්ලේෂණය - Kubernetes සඳහා උසස් පර්යන්ත අතුරු මුහුණතක්

ලඝු-සටහන්, YAML මැනිෆෙස්ට බැලීම, සහ ඇතුළුව, සියලු වර්ගවල කවුළු වල සෙවුම ක්‍රියා කරයි describe සම්පත් සඳහා - මෙම විශේෂාංග පිළිබඳ වැඩි විස්තර සඳහා පහත බලන්න.

සමස්ත සංචාලන ප්‍රවාහය පෙනෙන්නේ කෙසේද?

විධානය සමඟ :ctx ඔබට සන්දර්භය තෝරාගත හැක:

k9s හි දළ විශ්ලේෂණය - Kubernetes සඳහා උසස් පර්යන්ත අතුරු මුහුණතක්

නාම අවකාශයක් තෝරා ගැනීමට, දැනටමත් සඳහන් කර ඇති විධානය ඇත :ns, ඉන්පසු ඔබට අවශ්‍ය ඉඩ සඳහා සෙවීම භාවිතා කළ හැක: /test.

අපි දැන් අපි උනන්දුවක් දක්වන සම්පත තෝරන්නේ නම් (උදාහරණයක් ලෙස, එම StatefulSet), අනුරූප තොරතුරු ඒ සඳහා දිස්වනු ඇත: ඒවා පිළිබඳ කෙටි තොරතුරු සමඟ කොපමණ පොඩ්ස් ක්රියාත්මක වේ.

k9s හි දළ විශ්ලේෂණය - Kubernetes සඳහා උසස් පර්යන්ත අතුරු මුහුණතක්

කරල් පමණක් උනන්දුවක් දැක්විය හැකිය - එවිට එය ඇතුල් වීමට ප්රමාණවත් වේ :pod. ConfigMaps සම්බන්ධයෙන් (:cm - මෙම සම්පත් ලැයිස්තුව සඳහා), ඔබට උනන්දුවක් දක්වන වස්තුව තෝරා "u" මත ක්ලික් කළ හැකිය, ඉන්පසු K9s එය විශේෂයෙන් භාවිතා කරන්නේ කවුරුන්ද යන්න ඔබට කියනු ඇත (මෙම CM).

සම්පත් බැලීම සඳහා තවත් පහසු අංගයක් වන්නේ ඒවායේ ය "x-ray" (Xray දර්ශනය). මෙම මාදිලිය විධානය මගින් හැඳින්වේ :xray RESOURCE සහ ... පැහැදිලි කිරීමට වඩා එය ක්‍රියා කරන ආකාරය පෙන්වීම පහසුය. StatefulSets සඳහා නිදර්ශනයක් මෙන්න:

k9s හි දළ විශ්ලේෂණය - Kubernetes සඳහා උසස් පර්යන්ත අතුරු මුහුණතක්
(මෙම එක් එක් සම්පත් සංස්කරණය කිරීමට, වෙනස් කිරීමට, සෑදිය හැක describe.)

සහ ඇතුල්වීම සමඟ යෙදවීම මෙන්න:

k9s හි දළ විශ්ලේෂණය - Kubernetes සඳහා උසස් පර්යන්ත අතුරු මුහුණතක්

සම්පත් සමඟ වැඩ කිරීම

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

k9s හි දළ විශ්ලේෂණය - Kubernetes සඳහා උසස් පර්යන්ත අතුරු මුහුණතක්

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

සම්පත් පිළිබඳ සවිස්තරාත්මක විස්තරය පෙනෙන්නේ කෙසේද යන්න මෙන්න (describe):

k9s හි දළ විශ්ලේෂණය - Kubernetes සඳහා උසස් පර්යන්ත අතුරු මුහුණතක්

මෙම ප්‍රතිදානය (හෝ සම්පත් YAML මැනිෆෙස්ටය බැලීමේ ප්‍රතිදානය) හුරුපුරුදු Ctrl + s යතුරුපුවරු කෙටිමඟ භාවිතයෙන් සුරැකිය හැක. එය සුරැකෙන්නේ කොතැනද යන්න K9s පණිවිඩයෙන් දැනගත හැකිය:

Log /tmp/k9s-screens-root/kubernetes/Describe-1601244920104133900.yml saved successfully!

පද්ධති ලේබල සහ විවරණ ඉවත් කිරීමෙන් පසු, සාදන ලද උපස්ථ ගොනු වලින් ඔබට සම්පත් ප්‍රතිසාධනය කළ හැක. මෙය සිදු කිරීම සඳහා, ඔබ ඔවුන් සමඟ නාමාවලිය වෙත යා යුතුය (:dir /tmp), පසුව අවශ්ය ගොනුව තෝරා අයදුම් කරන්න apply.

මාර්ගය වන විට, වත්මන් එක සමඟ ගැටළු තිබේ නම් ඔබට ඕනෑම වේලාවක පෙර ReplicaSet වෙත ආපසු යා හැක. මෙය සිදු කිරීම සඳහා, අපේක්ෂිත RS (:rs ඔවුන්ගේ ලැයිස්තුව සඳහා):

k9s හි දළ විශ්ලේෂණය - Kubernetes සඳහා උසස් පර්යන්ත අතුරු මුහුණතක්

... සහ Ctrl + l සමඟ ආපසු හැරවීම. සියල්ල හොඳින් සිදු වූ බවට අපට දැනුම් දීමක් ලැබිය යුතුය:

k9s/whoami-5cfbdbb469 successfully rolled back

අනුරූ පරිමාණය කිරීමට, "s" (පරිමාණය) මත ක්ලික් කර අවශ්‍ය අවස්ථා ගණන තෝරන්න:

k9s හි දළ විශ්ලේෂණය - Kubernetes සඳහා උසස් පර්යන්ත අතුරු මුහුණතක්

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

වෙනත් විශේෂාංග

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

k9s හි දළ විශ්ලේෂණය - Kubernetes සඳහා උසස් පර්යන්ත අතුරු මුහුණතක්

එම කවුළුවේම, ඔබට ලඝු-සටහන් ප්‍රතිදානය සඳහා කාල පරාසය තෝරාගත හැක:

  • යතුර "1" - විනාඩි 1 සඳහා;
  • "2" - විනාඩි 5;
  • "3" - විනාඩි 15;
  • "4" - විනාඩි 30;
  • "5" - පැය 1;
  • "0" - කරල් මුළු ජීවිත කාලය සඳහා.

විශේෂ මෙහෙයුම් මාදිලියේ ස්පන්දනය (විධානය :pulse) Kubernetes පොකුර පිළිබඳ සාමාන්ය තොරතුරු පෙන්වයි:

k9s හි දළ විශ්ලේෂණය - Kubernetes සඳහා උසස් පර්යන්ත අතුරු මුහුණතක්

එහි ඔබට සම්පත් ගණන සහ ඒවායේ තත්ත්‍වය (තත්ත්වය ඇති ඒවා කොළ පැහැයෙන් පෙන්වයි Running).

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

k9s හි දළ විශ්ලේෂණය - Kubernetes සඳහා උසස් පර්යන්ත අතුරු මුහුණතක්

හෙල්ම් සඳහා මූලික සහාය ඇත. උදාහරණයක් ලෙස, පොකුරේ යොදවා ඇති නිකුතු ඔබට දැකිය හැකි ආකාරය මෙයයි:

:helm all # все
:helm $namespace # в конкретном пространстве имен

ප්රමිතිය

K9s තුළ පවා ගොඩනගා ඇත ඒයි සරල HTTP සේවාදායක පැටවුම් උත්පාදකයක් වන අතර, වඩාත් හොඳින් දන්නා ab (ApacheBench) සඳහා විකල්පයකි.

එය සක්‍රීය කිරීමට, ඔබ පොඩ් එකෙහි port-forward සක්‍රීය කළ යුතුය. මෙය සිදු කිරීම සඳහා, පොඩ් එක තෝරා Shift + f ඔබන්න, "pf" අන්වර්ථය භාවිතා කරමින් port-forward submenu වෙත යන්න.

k9s හි දළ විශ්ලේෂණය - Kubernetes සඳහා උසස් පර්යන්ත අතුරු මුහුණතක්

වරාය තෝරා Ctrl + b එබීමෙන් පසු, මිණුම් ලකුණ ආරම්භ වේ. ඔහුගේ කාර්යයේ ප්රතිඵල ගබඩා කර ඇත /tmp සහ K9s හි පසුව බැලීම සඳහා ලබා ගත හැකිය.

k9s හි දළ විශ්ලේෂණය - Kubernetes සඳහා උසස් පර්යන්ත අතුරු මුහුණතක්
k9s හි දළ විශ්ලේෂණය - Kubernetes සඳහා උසස් පර්යන්ත අතුරු මුහුණතක්

මිණුම් ලකුණෙහි වින්‍යාසය වෙනස් කිරීමට, ඔබ ගොනුවක් සෑදිය යුතුය $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 හි දළ විශ්ලේෂණය - Kubernetes සඳහා උසස් පර්යන්ත අතුරු මුහුණතක්

ප්ලගීන

අවසාන වශයෙන් ප්ලගින 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" ඔබන්න:

k9s හි දළ විශ්ලේෂණය - Kubernetes සඳහා උසස් පර්යන්ත අතුරු මුහුණතක්

ප්ලගීන අතර, උදාහරණයක් ලෙස, kubectl-jq සමඟ ඒකාබද්ධ කිරීම් සහ ලඝු-සටහන් බැලීම සඳහා උපයෝගීතාවයක් ඇත. නරකයි.

නිගමනය

මගේ රසය සඳහා, K9s සමඟ වැඩ කිරීමට ඉතා පහසු විය: ඔබට එය භාවිතා නොකර ඔබට අවශ්‍ය සියල්ල සෙවීමට ඉක්මනින් පුරුදු විය හැකිය. kubectl. ලඝු-සටහන් බැලීම සහ ඒවා ඉතිරි කිරීම, සම්පත් ඉක්මනින් සංස්කරණය කිරීම, පොදුවේ වැඩ කිරීමේ වේගය *, Popeye මාදිලිය ප්රයෝජනවත් විය. විශේෂ සඳහනක් වන්නේ ඔබේ අවශ්‍යතාවයට සරිලන පරිදි ප්ලගීන නිර්මාණය කිරීමට සහ යෙදුම වෙනස් කිරීමට ඇති හැකියාවයි.

* ලොග් විශාල ප්‍රමාණයක් තිබියදීත්, K9 වල මන්දගාමී ක්‍රියාකාරිත්වය ද මම දුටුවෙමි. එවැනි අවස්ථාවන්හිදී, උපයෝගීතාව Intel Xeon E2xx වෙතින් කෝර් 312 ක් "කෑ" අතර එය කැටි කිරීමට පවා ඉඩ ඇත.

මේ මොහොතේ අතුරුදහන් වී ඇත්තේ කුමක්ද? නාමාවලියට නොගොස් පෙර අනුවාදයට ඉක්මන් ආපසු හැරීම (අපි ආර්එස් ගැන කතා නොකරමු). ඊට අමතරව, ප්රකෘතිමත් වීම සිදු වන්නේ සඳහා පමණි එකතුව සම්පත්: ඔබ විවරණයක් හෝ ලේබලයක් මකා දැමුවහොත්, ඔබට සම්පූර්ණ සම්පත මකා දැමීමට සහ ප්‍රතිසාධනය කිරීමට සිදුවනු ඇත (ඔබට නාමාවලිය වෙත යා යුතු ස්ථානය මෙයයි). තවත් සුළු දෙයක් - එවැනි සුරකින ලද "බැකප්" සඳහා ප්රමාණවත් දිනයක් නොමැත.

ප්රාදේශීය සභා

අපගේ බ්ලොග් අඩවියේ ද කියවන්න:

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න