k9s جو جائزو - Kubernetes لاءِ هڪ جديد ٽرمينل انٽرفيس

k9s جو جائزو - Kubernetes لاءِ هڪ جديد ٽرمينل انٽرفيس

ڪ 9 Kubernetes ڪلستر سان رابطي لاءِ ٽرمينل يوزر انٽرفيس مهيا ڪري ٿو. هن اوپن سورس پروجيڪٽ جو مقصد اهو آهي ته K8s ۾ ايپليڪيشنن کي نيويگيٽ ڪرڻ، مانيٽر ڪرڻ ۽ منظم ڪرڻ آسان بڻائي. K9s مسلسل ڪبرنيٽس ۾ تبديلين جي نگراني ڪندو آهي ۽ نگراني ڪيل وسيلن سان ڪم ڪرڻ لاءِ تڪڙو حڪم پيش ڪري ٿو.

پروجيڪٽ گو ۾ لکيل آهي ۽ لڳ ڀڳ هڪ سال ۽ اڌ کان مٿي آهي: پهريون ڪم ڪيو ويو فيبروري 1، 2019 تي. لکڻ جي وقت تي، اتي 9000+ تارا آهن GitHub ۽ اٽڪل 80 تعاون ڪندڙ. اچو ته ڏسون ته k9s ڇا ڪري سگھن ٿا؟

انسٽاليشن ۽ لانچ

هي هڪ ڪلائنٽ آهي (Kubernetes ڪلستر جي حوالي سان) ايپليڪيشن جيڪا ڊاکر تصوير جي طور تي هلائڻ آسان آهي:

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.

اپليڪيشن معياري ترتيب استعمال ڪندي شروع ڪئي وئي آهي .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 لاءِ هڪ جديد ٽرمينل انٽرفيس

صرف pods دلچسپي جي ٿي سگهي ٿو - پوء ان کي داخل ڪرڻ لاء ڪافي آهي :pod. ConfigMaps جي صورت ۾ (:cm - انهن وسيلن جي فهرست لاءِ)، توهان دلچسپيءَ جو اعتراض چونڊيو ۽ "u" تي ڪلڪ ڪري سگهو ٿا، جنهن کان پوءِ K9s توهان کي ٻڌائيندو ته ان کي ڪير خاص طور استعمال ڪري ٿو (هي سي ايم).

وسيلن کي ڏسڻ لاءِ هڪ ٻي مفيد خصوصيت انهن جي آهي "x-ray" (Xray view). هن موڊ کي حڪم سان سڏيو ويندو آهي :xray RESOURCE ۽ ... اهو ڏيکارڻ آسان آهي ته اهو ڪيئن ڪم ڪري ٿو وضاحت ڪرڻ کان. هتي StatefulSets لاء هڪ مثال آهي:

k9s جو جائزو - Kubernetes لاءِ هڪ جديد ٽرمينل انٽرفيس
(انهن وسيلن مان هر هڪ کي تبديل ڪري سگهجي ٿو، تبديل ڪيو، ٺاهيو describe.)

۽ هتي داخل ٿيڻ سان گڏ آهي:

k9s جو جائزو - Kubernetes لاءِ هڪ جديد ٽرمينل انٽرفيس

وسيلن سان ڪم ڪرڻ

توھان حاصل ڪري سگھو ٿا ھر وسيلن بابت YAML يا ان ۾ describe لاڳاپيل ڪيبورڊ شارٽ ڪٽس کي دٻائڻ سان (“ي” ۽ “ڊي”، ترتيب سان). يقينن، اڃا به وڌيڪ بنيادي عمل آهن: انهن جي فهرست ۽ ڪيبورڊ شارٽ ڪٽ هميشه نظر اچن ٿا هڪ آسان "هيڊر" جي مهرباني انٽرفيس ۾ (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 انهن جي فهرست لاءِ):

k9s جو جائزو - Kubernetes لاءِ هڪ جديد ٽرمينل انٽرفيس

... ۽ Ctrl + l سان rollback. اسان کي هڪ نوٽيفڪيشن حاصل ڪرڻ گهرجي ته سڀ ڪجهه ٺيڪ ٿي ويو:

k9s/whoami-5cfbdbb469 successfully rolled back

۽ نقلن کي ماپڻ لاءِ، صرف "s" (اسڪيل) تي ڪلڪ ڪريو ۽ مثالن جو گهربل تعداد چونڊيو:

k9s جو جائزو - Kubernetes لاءِ هڪ جديد ٽرمينل انٽرفيس

توهان شيل استعمال ڪندي ڪنهن به ڪنٽينر ۾ داخل ڪري سگهو ٿا: هن کي ڪرڻ لاء، گهربل پوڊ ڏانهن وڃو، "s" (شيل) تي ڪلڪ ڪريو ۽ ڪنٽينر چونڊيو.

ٻيون خاصيتون

يقينا، ڏسڻ وارو لاگ پڻ سپورٽ آهي (چونڊيل وسيلن لاء "l"). ۽ نون لاگز کي ڏسڻ لاءِ، انٽر کي مسلسل دٻائڻ جي ڪا ضرورت ناهي: اهو نشان (“m”) لاءِ ڪافي آهي، ۽ پوءِ صرف نوان پيغامن کي ٽريڪ ڪريو.

k9s جو جائزو - Kubernetes لاءِ هڪ جديد ٽرمينل انٽرفيس

ساڳئي ونڊو ۾، توهان لاگ ان جي پيداوار لاء وقت جي حد کي منتخب ڪري سگهو ٿا:

  • چيڪ "1" - 1 منٽ لاء؛
  • "2" - 5 منٽ؛
  • "3" - 15 منٽ؛
  • "4" - 30 منٽ؛
  • "5" - 1 ڪلاڪ؛
  • "0" - پوڊ جي سڄي زندگي لاء.

خاص آپريٽنگ موڊ پلس (ڪمانڊ :pulse) ڏيکاري ٿو عام معلومات ڪبرنيٽس ڪلستر بابت:

k9s جو جائزو - Kubernetes لاءِ هڪ جديد ٽرمينل انٽرفيس

ان ۾ توهان وسيلن جو تعداد ۽ انهن جي حيثيت ڏسي سگهو ٿا (سائي ڏيکاري ٿو انهن کي جيڪي اسٽيٽس آهن Running).

K9s جي هڪ ٻي سٺي خاصيت سڏيو ويندو آهي Popeye. اهو سڀني وسيلن کي چيڪ ڪري ٿو درستي جي ڪجهه معيارن لاءِ ۽ ڏيکاري ٿو نتيجو "درجه بندي" وضاحتن سان. مثال طور، توهان ڏسي سگهو ٿا ته ڪافي نمونا يا حدون نه آهن، ۽ ڪجهه ڪنٽينر روٽ طور هلائي سگهن ٿا ...

k9s جو جائزو - Kubernetes لاءِ هڪ جديد ٽرمينل انٽرفيس

بنيادي هيلم سپورٽ آهي. مثال طور، هي ڪيئن آهي توهان ڏسي سگهو ٿا رليز ڪلستر ۾ ترتيب ڏنل:

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

خرچن

جيتوڻيڪ K9s ۾ ٺهيل او ھڪڙو سادو HTTP سرور لوڊ جنريٽر آھي، بھترين سڃاتل ab (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

سچ، ليبل لاء ڪافي ڪالمن نه آهي، جنهن لاء اتي موجود آهي منصوبي ۾ مسئلو.

ڪالمن جي ترتيب کي ڪيبورڊ شارٽ ڪٽ ذريعي ڪيو ويندو آهي:

  • شفٽ + ن - نالي سان؛
  • شفٽ + او - نوڊس طرفان؛
  • شفٽ + i - IP طرفان؛
  • شفٽ + الف - ڪنٽينر جي زندگي جي لحاظ کان؛
  • شفٽ + ٽي - ٻيهر شروع ڪرڻ جي تعداد طرفان؛
  • شفٽ + آر - تيارگي جي حالت طرفان؛
  • شفٽ + سي - سي پي يو استعمال ڪندي؛
  • شفٽ + م - ياداشت جي استعمال سان.

جيڪڏهن ڪو ماڻهو ڊفالٽ رنگ اسڪيم پسند نٿو ڪري، 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 لاءِ هڪ جديد ٽرمينل انٽرفيس

پلگ ان ۾ موجود آهن، مثال طور، ڪبيڪٽل-جڪ سان انضمام ۽ لاگ ڏسڻ لاءِ هڪ يوٽيلٽي طبع آزمائي.

ٿڪل

منهنجي ذائقي لاء، K9s سان گڏ ڪم ڪرڻ لاء تمام آسان ٿي ويو: توهان جلدي استعمال ڪري سگهو ٿا هر شيء کي ڳولڻ لاء توهان کي استعمال ڪرڻ کان سواء. kubectl. مان لاگز جي ڏسڻ ۽ انهن جي بچت، وسيلن جي جلدي ايڊيٽنگ، عام طور تي ڪم جي رفتار *، Popeye موڊ مفيد ثابت ٿيو. هڪ خاص ذڪر پلگ ان ٺاهڻ ۽ ايپليڪيشن کي تبديل ڪرڻ جي صلاحيت آهي توهان جي ضرورتن کي پورو ڪرڻ لاءِ.

* جيتوڻيڪ، لاگن جي وڏي مقدار سان، مون پڻ K9s جي سست آپريشن کي محسوس ڪيو. اهڙين لمحن تي، افاديت "کائي" 2 ڪور انٽيل Xeon E312xx کان ۽ اڃا به منجمد ٿي سگهي ٿي.

هن وقت ڇا غائب آهي؟ ڊاريڪٽري ۾ وڃڻ کان سواءِ پوئين ورزن ڏانهن جلدي رول بيڪ (اسان RS بابت نه ڳالهائي رهيا آهيون). ان کان سواء، وصولي صرف لاء ٿيندي آهي ڪل وسيلا: جيڪڏهن توهان هڪ تشريح يا ليبل حذف ڪريو ٿا، توهان کي مڪمل وسيلو کي حذف ڪرڻ ۽ بحال ڪرڻو پوندو (هي اهو آهي جتي توهان کي ڊاريڪٽري ڏانهن وڃڻ جي ضرورت آهي). هڪ ٻيو ننڍڙو - اهڙي محفوظ ٿيل "بيڪ اپ" لاء ڪافي تاريخ ناهي.

پي ايس

اسان جي بلاگ تي پڻ پڙهو:

جو ذريعو: www.habr.com

تبصرو شامل ڪريو