د 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 کلستر لپاره هیڅ ځانګړي اړتیاوې شتون نلري. د بیاکتنې په واسطه قضاوت کول، غوښتنلیک د Kubernetes پخوانیو نسخو لکه 1.12 سره هم کار کوي.

غوښتنلیک د معیاري ترتیب په کارولو سره پیل کوي .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 لپاره پرمختللی ترمینل انٹرفیس

کله چې کومې سرچینې ترمیم کړئ ("e" د غوره کولو وروسته)، د متن مدیر د چاپیریال متغیرونو کې تعریف شوی (export EDITOR=vim).

او دلته هغه څه دي چې د سرچینې تفصیلي توضیح ورته ښکاري (describe):

د k9s عمومي کتنه - د Kubernetes لپاره پرمختللی ترمینل انٹرفیس

دا محصول (یا د سرچینې د YAML څرګند لید لید) د معمول کیبورډ شارټ کټ Ctrl + s په کارولو سره خوندي کیدی شي. چیرته چې دا به خوندي شي د K9s پیغام څخه به معلومه شي:

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

تاسو کولی شئ لومړی د سیسټم لیبلونو او تشریحاتو لرې کولو سره د رامینځته شوي بیک اپ فایلونو څخه سرچینې هم بحال کړئ. د دې کولو لپاره تاسو اړتیا لرئ د دوی سره لارښود ته لاړشئ (:dir /tmp)، بیا مطلوب فایل غوره کړئ او درخواست وکړئ apply.

په هرصورت، په هر وخت کې تاسو کولی شئ بیرته مخکینۍ ریپلیکا سیټ ته لاړ شئ که چیرې د اوسني سره ستونزې شتون ولري. د دې کولو لپاره ، تاسو اړتیا لرئ مطلوب 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 بل په زړه پورې ځانګړتیا بلل کیږي Popeye. دا ټولې سرچینې د ځینې درستیت معیارونو لپاره چک کوي او پایله یې د توضیحاتو سره "درجه" ښیې. د مثال په توګه، تاسو لیدلی شئ چې کافي نمونې یا محدودیتونه شتون نلري، او ځینې کانټینر د ریښې په توګه چلول کیدی شي ...

د k9s عمومي کتنه - د Kubernetes لپاره پرمختللی ترمینل انٹرفیس

د هیلم بنسټیز ملاتړ شتون لري. د مثال په توګه، دا څنګه تاسو کولی شئ کلستر ته ګمارل شوي ریلیزونه وګورئ:

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

بنچمارک

دوی حتی دا په K9s کې جوړ کړی تر زواله پورې د HTTP سرور لپاره یو ساده بار جنریټر دی، د ډیر مشهور اب (ApacheBench) بدیل.

د دې فعالولو لپاره، تاسو به په پوډ کې د پورټ فارورډ فعالولو ته اړتیا ولرئ. د دې کولو لپاره، پوډ غوره کړئ او Shift + f فشار ورکړئ، د "pf" عرف په کارولو سره د پورټ فارورډ سب مینو ته لاړ شئ.

د 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 - په نوم؛
  • شفټ + او - د نوډونو په واسطه؛
  • شفټ + i - د IP لخوا؛
  • شفټ + یو - د کانټینر د ژوند په اوږدو کې؛
  • شفټ + t - د بیا پیل کولو شمیر سره؛
  • شفټ + r - د چمتووالي حالت له مخې؛
  • شفټ + 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. زه د لاګونو په لیدو او د دوی خوندي کولو څخه خوښ وم ، د سرچینو ګړندي ترمیم ، په عمومي ډول د کار سرعت * ، د پاپي حالت ګټور ثابت شو. ځانګړې یادونه باید د پلگ انونو رامینځته کولو وړتیا او ستاسو د اړتیاو سره سم غوښتنلیک دودیز کولو لپاره ترسره شي.

* که څه هم، د لوګو لوی حجم سره، ما د K9s ورو عملیات هم ولیدل. په داسې شیبو کې، افادیت د Intel Xeon E2xx 312 کورونه "خوړل" او حتی منجمد کولی شي.

دا مهال څه ورک دي؟ پخوانۍ نسخې ته ګړندي رول بیک (موږ د RS په اړه خبرې نه کوو) پرته له دې چې لارښود ته لاړشئ. سربیره پردې ، بیا رغونه یوازې د دې لپاره پیښیږي ټول سرچینه: که تاسو یو تشریح یا لیبل حذف کړی وي ، نو تاسو باید ټوله سرچینه حذف او بحال کړئ (دا هغه ځای دی چې تاسو اړتیا لرئ لارښود ته لاړشئ). بله کوچنۍ خبره دا ده چې د داسې خوندي شوي "بیک اپ" نیټه ورکه ده.

PS

زموږ په بلاګ کې هم ولولئ:

سرچینه: www.habr.com

Add a comment