
لقد أدرت تشغيل مجموعات Kubernetes الكبيرة لأكثر من ثلاث سنوات ، وأريد مشاركة منهجي البسيط في تكوين محطة kubectl ، والتي أثبتت فعاليتها العالية في العمل اليومي. يمكن لمحطة سطر أوامر جيدة التكوين أن تزيد بشكل كبير من إنتاجيتك. إنه مثل الخبز والزبدة - مزيج سحري.
ولكن على عكس التعديلات الشائعة والإضافات الوظيفية ، فأنا أؤمن بالتكوين البسيط الذي لا يتطلب تثبيت ثنائيات أو أغلفة أو تعديلات جديدة. خاصة في حالة kubectl - أداة أصلية جيدة التصميم مع القليل جدًا من الجوانب السلبية.
فيما يلي أربع إضافات بسيطة لمحطة kubectl. باستخدام هذا التكوين ، أدير 20 مجموعة Kubernetes كبيرة من 400 جهاز يوميًا.
استخدام kubetail لتتبع سجلات القرون المتعددة
أول شيء تلاحظه عند استخدام kubectl هو صعوبة تتبع السجلات عبر عدة قرون. هذا هو أحد أكثر السيناريوهات المطلوبة والتي لم يتم تنفيذها بعد في kubectl.
إذا كنت بحاجة إلى تتبع سجل جراب واحد في kubectl ، فسيبدو كما يلي:
kubectl logs -f <POD_NAME> -n <NAMESPACE>
لتتبع عدة قرون في kubetail ، اكتب فقط:
kubetail <POD_NAME_REGEX> -n <NAMESPACE>
ستبدأ في تتبع كل البودات التي تطابق التعبير العادي. نظرًا لأنه يتم تسجيل العديد من الكبسولات في نفس الوقت ، يقوم kubetail بوضع علامة عليها بألوان مختلفة لمساعدتك على التنقل.

kubetail عبارة عن غلاف بسيط فوق kubectl. إنه سهل التثبيت ، يمكنك العثور على التعليمات هنا .
2. تغيير مساحة الاسم الافتراضية ديناميكيًا
في النهاية سوف تتعب من تعيين علامة مساحة الاسم لكل عملية kubectl مرارًا وتكرارًا. نحتاج إلى معرفة كيفية تغيير مساحات الأسماء الافتراضية ديناميكيًا.
للقيام بذلك ، كتبت وظيفة اسم مستعار بسيطة
ksn(يشير الاسم إلى تعيين مساحة الاسم ).
# Add the following to .zshrc/.bashrc...etc
# Allows setting default namespace while working with kubectl #
alias k='kubectl'
alias ksn='_f(){k get namespace $1 > /dev/null; if [ $? -eq 1 ]; then return $?; fi; k config set-context $(k config current-context) --namespace=$1; echo "Namespace: $1"};_f'
#Usage:
#➜ ~ ksn dev1 (dev-context/dev1)
# Context "dev-context" modified.
# Namespace: dev1
#➜ ~ ksn ff (dev-context/dev1)
# Error from server (NotFound): namespaces "ff" not found


عادة ما نعمل مع مجموعة من مساحات الأسماء حسب المهمة الحالية. ونظرًا لأن 80٪ من المشكلات مرتبطة بمساحات أسماء كافكا ، فقد كانت هذه الميزة لفترة طويلة أداتي الافتراضية. سيوفر لك الكثير من الوقت ، خاصة عند العمل في مهام معقدة تتطلب العديد من التعليمات لإدخالها في kubectl.
3. عرض سياق kube ومساحة الاسم في موجه الأوامر
عند استخدام أوامر kubectl ، يجب عليك دائمًا الانتباه إلى الحالي
kube-contextو namespace. ليس الأمر بهذه السهولة عند إدارة مجموعات في نفس الوقت في 20 سياقًا مختلفًا و 50 مساحة اسم. هناك خطر من استخدام الأمر الخطأ في البيئة ، خاصة عند العمل على عدة مهام في نفس الوقت في مجموعات وسياقات مختلفة.
لحل هذه المشكلة ، من المفيد للغاية عرض مساحة الاسم النشطة والسياق باستمرار في النافذة التالية.
في المثال أدناه ، السياق الخاص بي هو
dev2–1ومساحة الاسم test. يكفي أن ألقي نظرة على هذه المعلومات عندما أقوم بتنفيذ أوامر مختلفة في المجموعة.

يمكنك العثور على تعليمات التثبيت والتكوين هنا .
4. أهم الأسماء المستعارة kubectl
الأسماء المستعارة هي أسرع طريقة لتخصيص وتسريع عملك في المحطة. فيما يلي الأسماء المستعارة الأكثر استخدامًا ، والتي أصبحت تقريبًا جزءًا من طبيعتي:
alias k='kubectl '
alias kcc='kubectl config current-context'
alias kdp='kubectl delete po'
alias kgc='kubectl config get-contexts'
alias kge='kubectl get events --sort-by='\''{.lastTimestamp}'\'
alias kgp='kubectl get po'
alias kl='kubectl logs '
alias kpf='kubectl port-forward'
alias ksc='kubectl config use-context'
الأقل هو الأفضل: لا تفرط في تحميل جهازك
لقد قمنا بتغطية أربعة تحسينات رئيسية في المحطة الطرفية لمستخدمي kubectl:
- استخدام kubetail لتتبع سجلات القرون المتعددة.
- تغيير مساحات الأسماء الافتراضية ديناميكيًا لتقليل طول تعليمات kubectl بشكل كبير.
- عرض السياق ومساحات الأسماء بجوار المحطة الطرفية لتجنب الأخطاء العرضية.
- قائمة الأسماء المستعارة kubectl الهامة.
على عكس هذه المجموعة البسيطة ، غالبًا ما تكون الترقيات الطرفية الشائعة (مثل K9s ) محملة بشكل زائد ومليئة بالميزات وأغلفة الحلوى ، ولكنها بطيئة ومشتتة للانتباه والأهم من ذلك أنها غير ضرورية. كلما أضفت المزيد من الميزات (الترتر والأقواس) ، زاد الوقت الذي تستغرقه لتصفح كل تلك المعلومات الإضافية على الشاشة.
يساعدك تكوين الجهاز الأنيق في الحفاظ على تركيزك مثل أي شيء آخر.
سيسمح لك التكوين البسيط المستند إلى سطر الأوامر بالتطوير بسرعة وكفاءة باستخدام الثنائيات والأدوات الأصلية. هذا مهم للغاية ، خاصة عند العمل مع بنية تحتية كبيرة ، وتسجيل الدخول والخروج من ملفات تعريف مختلفة على الأجهزة الافتراضية.
يجب أن يثرك تكوين الجهاز الطرفي كمطور ، وليس يجعلك تشعر وكأنك بلا أيدي.