لوحة تحكم Kite Kubernetes: دليل شامل للإعداد والإدارة
⏱️ وقت القراءة المقدر: 12 دقيقة
مقدمة
إدارة مجموعات Kubernetes من خلال أدوات سطر الأوامر قد تكون تحدٍ صعب، خاصة عند التعامل مع مجموعات متعددة أو عمليات نشر معقدة. Kite هي لوحة تحكم Kubernetes حديثة وخفيفة توفر واجهة ويب بديهية لإدارة ومراقبة مجموعات Kubernetes الخاصة بك.
على عكس لوحات تحكم Kubernetes التقليدية، تقدم Kite:
- تجربة مستخدم حديثة مع دعم السمات الداكنة/الفاتحة
- قدرات إدارة المجموعات المتعددة
- مراقبة في الوقت الفعلي مع تكامل Prometheus
- إدارة شاملة للموارد مع تحرير YAML المباشر
- ميزات أمان مع دعم OAuth و RBAC
في هذا الدليل، سنستكشف كيفية تثبيت وتكوين واستخدام Kite بفعالية لإدارة مجموعات Kubernetes.
ما هو Kite؟
Kite هي لوحة تحكم Kubernetes مفتوحة المصدر طورها zxh326. تم تصميمها لتكون بديلاً حديثاً للوحة تحكم Kubernetes التقليدية، مع التركيز على تجربة المستخدم والوظائف العملية.
الميزات الرئيسية
🎯 تجربة مستخدم حديثة
- دعم السمات المتعددة: سمات داكنة وفاتحة وملونة مع اكتشاف تفضيلات النظام
- بحث متقدم: بحث شامل عبر جميع الموارد
- التدويل: دعم اللغتين الإنجليزية والصينية
- تصميم متجاوب: محسن لأجهزة سطح المكتب والأجهزة اللوحية والهواتف المحمولة
🏘️ إدارة المجموعات المتعددة
- تبديل سلس بين المجموعات: التبديل بين مجموعات Kubernetes متعددة
- مراقبة لكل مجموعة: تكوين Prometheus مستقل لكل مجموعة
- تكامل Kubeconfig: اكتشاف تلقائي للمجموعات من ملف kubeconfig
- التحكم في الوصول للمجموعة: أذونات دقيقة لإدارة الوصول للمجموعة
🔍 إدارة شاملة للموارد
- تغطية كاملة للموارد: Pods، Deployments، Services، ConfigMaps، Secrets، PVs، PVCs، Nodes، والمزيد
- تحرير YAML المباشر: محرر Monaco مدمج مع تمييز الصيغة والتحقق
- عروض مفصلة للموارد: معلومات متعمقة مع الحاويات والمجلدات والأحداث والشروط
- علاقات الموارد: تصور الاتصالات بين الموارد ذات الصلة
- عمليات الموارد: إنشاء وتحديث وحذف وتوسيع وإعادة تشغيل الموارد مباشرة من واجهة المستخدم
- الموارد المخصصة: دعم كامل لـ CRDs (تعريفات الموارد المخصصة)
- محدد علامات الصور السريع: اختيار وتغيير علامات صور الحاويات بسهولة
📈 المراقبة وقابلية الملاحظة
- مقاييس في الوقت الفعلي: مخططات استخدام CPU والذاكرة والشبكة مدعومة بـ Prometheus
- نظرة عامة على المجموعة: إحصائيات شاملة لصحة المجموعة والموارد
- سجلات مباشرة: تدفق سجلات Pod في الوقت الفعلي مع قدرات التصفية والبحث
- محطة ويب/عقدة: تنفيذ الأوامر مباشرة في Pods/العقد من خلال المتصفح
- مراقبة العقد: مقاييس أداء مفصلة على مستوى العقدة والاستخدام
- مراقبة Pod: تتبع استخدام موارد Pod الفردي والأداء
🔐 الأمان
- تكامل OAuth: يدعم إدارة OAuth في واجهة المستخدم
- التحكم في الوصول القائم على الأدوار: يدعم إدارة أذونات المستخدم في واجهة المستخدم
- إدارة المستخدمين: إدارة شاملة للمستخدمين وتخصيص الأدوار في واجهة المستخدم
المتطلبات الأساسية
قبل تثبيت Kite، تأكد من أن لديك:
- مجموعة Kubernetes: مجموعة Kubernetes قيد التشغيل (v1.19+)
- kubectl: مكون ومتصل بمجموعتك
- Helm (اختياري ولكن موصى به): الإصدار 3.0+
- Prometheus (اختياري): لميزات المراقبة
- أذونات مدير المجموعة: مطلوبة للتثبيت
التحقق من المتطلبات الأساسية
# فحص اتصال kubectl
kubectl cluster-info
# فحص إصدار Kubernetes
kubectl version --short
# فحص تثبيت Helm (إذا كنت تستخدم Helm)
helm version
# التحقق من أذونات مدير المجموعة
kubectl auth can-i '*' '*' --all-namespaces
طرق التثبيت
يمكن تثبيت Kite باستخدام عدة طرق. سنغطي الطرق الأكثر شيوعاً.
الطريقة 1: تثبيت Helm (موصى به)
Helm هي طريقة التثبيت الموصى بها لأنها توفر إدارة أفضل للتكوين وقدرات الترقية.
الخطوة 1: إضافة مستودع Kite Helm
# إضافة مستودع Kite Helm الرسمي
helm repo add kite https://zxh326.github.io/kite
# تحديث مستودعات Helm
helm repo update
# التحقق من إضافة المستودع
helm repo list | grep kite
الخطوة 2: تثبيت Kite بالتكوين الافتراضي
# تثبيت Kite في namespace kube-system
helm install kite kite/kite -n kube-system
# انتظار اكتمال النشر
kubectl rollout status deployment/kite -n kube-system
الخطوة 3: التحقق من التثبيت
# فحص حالة Pod
kubectl get pods -n kube-system -l app=kite
# فحص حالة الخدمة
kubectl get services -n kube-system -l app=kite
# عرض سجلات Kite
kubectl logs -n kube-system -l app=kite
الطريقة 2: تثبيت kubectl
إذا كنت تفضل عدم استخدام Helm، يمكنك تثبيت Kite مباشرة باستخدام kubectl.
الخطوة 1: تطبيق ملف التثبيت
# التثبيت من GitHub (أحدث إصدار)
kubectl apply -f https://raw.githubusercontent.com/zxh326/kite/refs/heads/main/deploy/install.yaml
# أو تحميل وتطبيق محلياً
curl -O https://raw.githubusercontent.com/zxh326/kite/refs/heads/main/deploy/install.yaml
kubectl apply -f install.yaml
الخطوة 2: التحقق من التثبيت
# فحص حالة النشر
kubectl get deployment kite -n kube-system
# فحص حالة Pod
kubectl get pods -n kube-system -l app=kite
الطريقة 3: Docker (التطوير/الاختبار)
لأغراض التطوير أو الاختبار، يمكنك تشغيل Kite باستخدام Docker.
# تشغيل Kite مع Docker
docker run --rm -p 8080:8080 ghcr.io/zxh326/kite:latest
# مع kubeconfig مخصص
docker run --rm -p 8080:8080 \
-v ~/.kube/config:/app/.kube/config:ro \
ghcr.io/zxh326/kite:latest
الوصول إلى لوحة تحكم Kite
إعادة توجيه المنفذ (وصول سريع)
أبسط طريقة للوصول إلى Kite هي من خلال إعادة توجيه المنفذ:
# إعادة توجيه المنفذ المحلي 8080 إلى خدمة Kite
kubectl port-forward -n kube-system svc/kite 8080:8080
# الوصول إلى لوحة التحكم
open http://localhost:8080
خدمة LoadBalancer (بيئات السحابة)
لنشر السحابة، يمكنك كشف Kite باستخدام LoadBalancer:
# تعديل الخدمة إلى نوع LoadBalancer
kubectl patch svc kite -n kube-system -p '{"spec": {"type": "LoadBalancer"}}'
# الحصول على IP الخارجي
kubectl get svc kite -n kube-system
تكوين Ingress (الإنتاج)
لنشر الإنتاج، قم بتكوين Ingress:
# kite-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: kite-ingress
namespace: kube-system
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
rules:
- host: kite.yourdomain.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: kite
port:
number: 8080
tls:
- hosts:
- kite.yourdomain.com
secretName: kite-tls
# تطبيق تكوين Ingress
kubectl apply -f kite-ingress.yaml
التكوين
التكوين الأساسي
يمكن تكوين Kite من خلال متغيرات البيئة أو ملفات التكوين. إليك خيارات التكوين الرئيسية:
# values.yaml لنشر Helm
config:
# تكوين الخادم
port: 8080
# تكوين Kubernetes
kubeconfig: "" # مسار ملف kubeconfig
# دعم المجموعات المتعددة
clusters:
- name: "production"
kubeconfig: "/configs/prod-kubeconfig"
- name: "staging"
kubeconfig: "/configs/staging-kubeconfig"
# تكوين Prometheus
prometheus:
enabled: true
endpoint: "http://prometheus-server.monitoring.svc.cluster.local:80"
# تكوين الأمان
auth:
enabled: false
oauth:
provider: "github"
clientId: "your-client-id"
clientSecret: "your-client-secret"
تكوين Helm المتقدم
# التثبيت بقيم مخصصة
helm install kite kite/kite -n kube-system \
--set config.prometheus.enabled=true \
--set config.prometheus.endpoint="http://prometheus:9090" \
--set config.auth.enabled=true
# أو استخدام ملف القيم
helm install kite kite/kite -n kube-system -f custom-values.yaml
متغيرات البيئة
عند التشغيل مع Docker أو النشر المخصص:
# التكوين الأساسي
export KITE_PORT=8080
export KITE_KUBECONFIG=/path/to/kubeconfig
# تكامل Prometheus
export KITE_PROMETHEUS_ENABLED=true
export KITE_PROMETHEUS_ENDPOINT=http://prometheus:9090
# المصادقة
export KITE_AUTH_ENABLED=true
export KITE_OAUTH_PROVIDER=github
export KITE_OAUTH_CLIENT_ID=your-client-id
export KITE_OAUTH_CLIENT_SECRET=your-client-secret
استخدام لوحة تحكم Kite
نظرة عامة على لوحة التحكم
عند الوصول إلى Kite لأول مرة، ستشاهد لوحة التحكم الرئيسية مع:
- نظرة عامة على المجموعة: إحصائيات وصحة المجموعة في الوقت الفعلي
- ملخص الموارد: عدد سريع للـ pods والخدمات والنشر، إلخ
- حالة العقد: صحة العقد واستخدام الموارد
- الأحداث الأخيرة: أحدث أحداث وأنشطة المجموعة
التنقل والواجهة
شريط التنقل العلوي
- محدد المجموعة: التبديل بين مجموعات متعددة
- البحث: بحث شامل عبر جميع الموارد
- تبديل السمة: التبديل بين السمات الداكنة/الفاتحة
- قائمة المستخدم: المصادقة وإعدادات المستخدم
التنقل في الشريط الجانبي
- أحمال العمل: Deployments، ReplicaSets، Pods، Jobs، إلخ
- الخدمات: Services، Ingresses، NetworkPolicies
- التخزين: PersistentVolumes، PersistentVolumeClaims، StorageClasses
- التكوين: ConfigMaps، Secrets
- RBAC: ServiceAccounts، Roles، RoleBindings
- المجموعة: Nodes، Namespaces، Events
إدارة الموارد
عرض الموارد
- عرض القائمة: انتقل إلى أي نوع مورد لرؤية قائمة شاملة
- عرض التفاصيل: انقر على أي مورد لرؤية معلومات مفصلة
- عرض YAML: عرض وتحرير تكوينات YAML الخام
- العلاقات: رؤية الموارد ذات الصلة والتبعيات
إنشاء الموارد
# مثال: إنشاء نشر من خلال Kite
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
namespace: default
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.21
ports:
- containerPort: 80
- انتقل إلى أحمال العمل > النشر
- انقر على زر إنشاء
- استخدم محرر Monaco المدمج لكتابة YAML
- انقر على تطبيق لإنشاء المورد
تحرير الموارد
- انقر على أي مورد لفتح التفاصيل
- انقر على علامة تبويب تحرير أو YAML
- عدّل التكوين في محرر Monaco
- انقر على تطبيق لحفظ التغييرات
التوسيع والعمليات
- توسيع النشر: استخدم زر التوسيع أو حرر النسخ مباشرة
- إعادة تشغيل النشر: إعادة تشغيل جميع pods في النشر
- حذف الموارد: إزالة الموارد مع التأكيد
- عرض السجلات: تدفق السجلات من pods في الوقت الفعلي
- تنفيذ الأوامر: استخدام المحطة المدمجة للـ pods
إدارة المجموعات المتعددة
إضافة المجموعات
- الاكتشاف التلقائي: يمكن لـ Kite اكتشاف المجموعات تلقائياً من kubeconfig الخاص بك
- التكوين اليدوي: إضافة المجموعات من خلال ملفات التكوين
- الإضافة الديناميكية: إضافة المجموعات من خلال واجهة المستخدم (إذا كانت المصادقة مفعلة)
تبديل المجموعات
استخدم محدد المجموعة في التنقل العلوي للتبديل بين المجموعات. كل مجموعة تحتفظ بـ:
- حالة الموارد
- تكوين المراقبة
- أذونات المستخدم
- الإعدادات
المراقبة وقابلية الملاحظة
المقاييس في الوقت الفعلي
مع تكامل Prometheus، تقدم Kite:
- مقاييس المجموعة:
- استخدام CPU والذاكرة
- عدد Pods والعقد
- تخصيص واستخدام الموارد
- مقاييس العقد:
- أداء العقد الفردي
- استخدام الموارد عبر الوقت
- حالات العقد والأحداث
- مقاييس Pod:
- استخدام موارد الحاوية
- اتجاهات الأداء
- حالة الصحة
تدفق السجلات
- انتقل إلى أي pod
- انقر على علامة تبويب السجلات
- تدفق السجلات في الوقت الفعلي مع:
- دعم الحاويات المتعددة
- البحث والتصفية
- قدرات التحميل
- خيارات التحديث التلقائي
الوصول للمحطة
- انتقل إلى أي pod
- انقر على علامة تبويب المحطة
- تنفيذ الأوامر مباشرة في الحاويات:
- دعم الحاويات المتعددة
- محاكي محطة كامل
- رفع/تحميل الملفات
- إدارة الجلسات
تكامل Prometheus
تثبيت Prometheus
إذا لم يكن لديك Prometheus مثبت، يمكنك نشره باستخدام Helm:
# إضافة مستودع Prometheus Helm
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
# تثبيت Prometheus
helm install prometheus prometheus-community/kube-prometheus-stack \
--namespace monitoring \
--create-namespace \
--set prometheus.prometheusSpec.serviceMonitorSelectorNilUsesHelmValues=false
تكوين Kite مع Prometheus
حدث تكوين Kite ليشمل Prometheus:
# values.yaml
config:
prometheus:
enabled: true
endpoint: "http://prometheus-kube-prometheus-prometheus.monitoring.svc.cluster.local:9090"
قم بترقية تثبيت Kite:
helm upgrade kite kite/kite -n kube-system -f values.yaml
التحقق من المقاييس
- الوصول إلى لوحة تحكم Kite
- انتقل إلى نظرة عامة على المجموعة
- تحقق من أن مخططات المقاييس تعرض البيانات
- فحص مقاييس العقد والـ pod الفردية
تكوين الأمان
إعداد المصادقة
تكوين OAuth
تدعم Kite مصادقة OAuth مع مقدمي خدمات مختلفين:
# values.yaml
config:
auth:
enabled: true
oauth:
provider: "github" # أو "google"، "gitlab"
clientId: "your-github-client-id"
clientSecret: "your-github-client-secret"
redirectUrl: "http://kite.yourdomain.com/auth/callback"
إنشاء تطبيق GitHub OAuth
- اذهب إلى إعدادات GitHub > إعدادات المطور > تطبيقات OAuth
- انقر على “تطبيق OAuth جديد”
- املأ تفاصيل التطبيق:
- اسم التطبيق: Kite Dashboard
- رابط الصفحة الرئيسية: http://kite.yourdomain.com
- رابط استدعاء التخويل: http://kite.yourdomain.com/auth/callback
- سجل معرف العميل وسر العميل
تكوين RBAC
أنشئ قواعد RBAC المناسبة لـ Kite:
# kite-rbac.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: kite
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: kite
rules:
- apiGroups: ["*"]
resources: ["*"]
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: kite
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: kite
subjects:
- kind: ServiceAccount
name: kite
namespace: kube-system
# تطبيق تكوين RBAC
kubectl apply -f kite-rbac.yaml
إدارة المستخدمين
عند تفعيل المصادقة، يمكنك:
- إدارة المستخدمين: إضافة/إزالة المستخدمين من خلال واجهة المستخدم
- تعيين الأدوار: ربط المستخدمين بأدوار Kubernetes RBAC
- تدقيق الوصول: تتبع أنشطة المستخدمين والأذونات
- إدارة الجلسات: التحكم في انتهاء صلاحية الجلسات والسياسات
استكشاف الأخطاء وإصلاحها
المشاكل الشائعة
1. Pod لا يبدأ
# فحص حالة Pod
kubectl get pods -n kube-system -l app=kite
# فحص سجلات Pod
kubectl logs -n kube-system -l app=kite
# فحص الأحداث
kubectl get events -n kube-system --sort-by=.metadata.creationTimestamp
الحلول الشائعة:
- التحقق من أذونات RBAC
- فحص حدود الموارد
- التأكد من التكوين الصحيح لـ kubeconfig
2. المقاييس لا تظهر
# التحقق من اتصال Prometheus
kubectl exec -n kube-system deployment/kite -- wget -qO- http://prometheus-endpoint:9090/api/v1/query?query=up
# فحص خدمة Prometheus
kubectl get svc -n monitoring
الحلول:
- التحقق من تكوين نقطة نهاية Prometheus
- فحص سياسات الشبكة
- التأكد من أن Prometheus يجمع مقاييس Kubernetes
3. مشاكل المصادقة
فحص تكوين OAuth:
- التحقق من معرف العميل والسر
- تأكيد روابط إعادة التوجيه
- فحص الإعدادات الخاصة بالمقدم
4. مشاكل المجموعات المتعددة
# التحقق من ملفات kubeconfig
kubectl config get-contexts
# اختبار اتصال المجموعة
kubectl cluster-info --context=cluster-name
وضع التصحيح
فعّل تسجيل التصحيح لاستكشاف الأخطاء:
# values.yaml
config:
debug: true
logLevel: "debug"
فحوصات الصحة
تقدم Kite نقاط نهاية فحص الصحة:
# فحص الصحة
curl http://localhost:8080/health
# فحص الاستعداد
curl http://localhost:8080/ready
# نقطة نهاية المقاييس
curl http://localhost:8080/metrics
الميزات المتقدمة
تعريفات الموارد المخصصة (CRDs)
تدعم Kite تلقائياً أي CRDs في مجموعتك:
- الاكتشاف التلقائي: يتم اكتشاف وإدراج CRDs تلقائياً
- عمليات CRUD الكاملة: إنشاء وقراءة وتحديث وحذف الموارد المخصصة
- تحرير YAML: تحرير الموارد المخصصة مع تمييز الصيغة
- تتبع الحالة: مراقبة حالة وشروط الموارد المخصصة
إدارة علامات الصور
تقدم Kite واجهة بديهية لإدارة صور الحاويات:
- اختيار العلامات: تصفح العلامات المتاحة من سجلات الحاويات
- تحديثات سريعة: تحديث صور النشر بنقرات قليلة
- دعم التراجع: تراجع سهل إلى إصدارات الصور السابقة
- تكامل السجل: دعم Docker Hub و ECR و GCR والسجلات الخاصة
العمليات المجمعة
تنفيذ عمليات على موارد متعددة:
- تحديد متعدد: تحديد موارد متعددة في عروض القائمة
- حذف مجمع: إزالة موارد متعددة في مرة واحدة
- وسم مجمع: إضافة/إزالة تسميات من موارد متعددة
- توسيع مجمع: توسيع نشر متعدد في نفس الوقت
قوالب الموارد
إنشاء واستخدام قوالب للموارد الشائعة:
- حفظ القوالب: حفظ تكوينات الموارد المستخدمة بكثرة
- مكتبة القوالب: بناء مكتبة قوالب تنظيمية
- نشر سريع: نشر الموارد من القوالب بتغييرات قليلة
- استبدال المعاملات: استخدام متغيرات في القوالب للمرونة
أفضل الممارسات
أفضل ممارسات الأمان
- استخدام RBAC: تنفيذ التحكم في الوصول القائم على الأدوار المناسب
- تفعيل المصادقة: استخدام OAuth لمصادقة المستخدم
- سياسات الشبكة: قيود الوصول للشبكة إلى Kite
- تشفير TLS: استخدام HTTPS مع الشهادات المناسبة
- التحديثات المنتظمة: الحفاظ على Kite محدث بأحدث إصدار
تحسين الأداء
- حدود الموارد: تعيين حدود CPU والذاكرة المناسبة
- ضبط Prometheus: تحسين استعلامات Prometheus والاحتفاظ
- تحسين الشبكة: استخدام Prometheus محلي عند الإمكان
- التخزين المؤقت: تفعيل التخزين المؤقت المناسب لأداء أفضل
إرشادات التشغيل
- نسخ احتياطية للتكوينات: نسخ احتياطي لتكوينات Kite والمجموعة
- المراقبة: مراقبة صحة وأداء Kite نفسه
- إدارة السجلات: تنفيذ دوران واحتفاظ مناسب للسجلات
- التوثيق: توثيق التكوينات والإجراءات الخاصة بالمجموعة
الخلاصة
تقدم Kite واجهة حديثة وبديهية لإدارة مجموعات Kubernetes تحسن بشكل كبير من تجربة المطور والمشغل. مع مجموعة ميزاتها الشاملة بما في ذلك دعم المجموعات المتعددة والمراقبة في الوقت الفعلي وخيارات الأمان المتقدمة، تخدم كبديل ممتاز للوحات تحكم Kubernetes التقليدية.
النقاط الرئيسية:
- تثبيت سهل: طرق تثبيت متعددة تدعم سيناريوهات نشر مختلفة
- مجموعة ميزات غنية: إدارة شاملة للموارد مع واجهة مستخدم/تجربة مستخدم حديثة
- دعم المجموعات المتعددة: إدارة سلسة لمجموعات Kubernetes متعددة
- تكامل المراقبة: مقاييس وقابلية ملاحظة في الوقت الفعلي مع Prometheus
- التركيز على الأمان: دعم مدمج للمصادقة و RBAC
- تطوير نشط: تحديثات منتظمة ودعم المجتمع
سواء كنت تدير مجموعة تطوير واحدة أو بيئات إنتاج متعددة، تقدم Kite الأدوات والواجهة اللازمة لعمليات Kubernetes فعالة.
موارد إضافية
- الوثائق الرسمية: وثائق Kite
- مستودع GitHub: https://github.com/zxh326/kite
- عرض توضيحي مباشر: kite.zzde.me
- مخططات Helm: مستودع Kite Helm
- تتبع المشاكل: مشاكل GitHub
هل لديك أسئلة أو تعليقات حول هذا الدليل؟ لا تتردد في التواصل أو المساهمة في مشروع Kite على GitHub!