⏱️ وقت القراءة المقدر: 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، تأكد من أن لديك:

  1. مجموعة Kubernetes: مجموعة Kubernetes قيد التشغيل (v1.19+)
  2. kubectl: مكون ومتصل بمجموعتك
  3. Helm (اختياري ولكن موصى به): الإصدار 3.0+
  4. Prometheus (اختياري): لميزات المراقبة
  5. أذونات مدير المجموعة: مطلوبة للتثبيت

التحقق من المتطلبات الأساسية

# فحص اتصال 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 لأول مرة، ستشاهد لوحة التحكم الرئيسية مع:

  1. نظرة عامة على المجموعة: إحصائيات وصحة المجموعة في الوقت الفعلي
  2. ملخص الموارد: عدد سريع للـ pods والخدمات والنشر، إلخ
  3. حالة العقد: صحة العقد واستخدام الموارد
  4. الأحداث الأخيرة: أحدث أحداث وأنشطة المجموعة

التنقل والواجهة

شريط التنقل العلوي

  • محدد المجموعة: التبديل بين مجموعات متعددة
  • البحث: بحث شامل عبر جميع الموارد
  • تبديل السمة: التبديل بين السمات الداكنة/الفاتحة
  • قائمة المستخدم: المصادقة وإعدادات المستخدم

التنقل في الشريط الجانبي

  • أحمال العمل: Deployments، ReplicaSets، Pods، Jobs، إلخ
  • الخدمات: Services، Ingresses، NetworkPolicies
  • التخزين: PersistentVolumes، PersistentVolumeClaims، StorageClasses
  • التكوين: ConfigMaps، Secrets
  • RBAC: ServiceAccounts، Roles، RoleBindings
  • المجموعة: Nodes، Namespaces، Events

إدارة الموارد

عرض الموارد

  1. عرض القائمة: انتقل إلى أي نوع مورد لرؤية قائمة شاملة
  2. عرض التفاصيل: انقر على أي مورد لرؤية معلومات مفصلة
  3. عرض YAML: عرض وتحرير تكوينات YAML الخام
  4. العلاقات: رؤية الموارد ذات الصلة والتبعيات

إنشاء الموارد

# مثال: إنشاء نشر من خلال 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
  1. انتقل إلى أحمال العمل > النشر
  2. انقر على زر إنشاء
  3. استخدم محرر Monaco المدمج لكتابة YAML
  4. انقر على تطبيق لإنشاء المورد

تحرير الموارد

  1. انقر على أي مورد لفتح التفاصيل
  2. انقر على علامة تبويب تحرير أو YAML
  3. عدّل التكوين في محرر Monaco
  4. انقر على تطبيق لحفظ التغييرات

التوسيع والعمليات

  • توسيع النشر: استخدم زر التوسيع أو حرر النسخ مباشرة
  • إعادة تشغيل النشر: إعادة تشغيل جميع pods في النشر
  • حذف الموارد: إزالة الموارد مع التأكيد
  • عرض السجلات: تدفق السجلات من pods في الوقت الفعلي
  • تنفيذ الأوامر: استخدام المحطة المدمجة للـ pods

إدارة المجموعات المتعددة

إضافة المجموعات

  1. الاكتشاف التلقائي: يمكن لـ Kite اكتشاف المجموعات تلقائياً من kubeconfig الخاص بك
  2. التكوين اليدوي: إضافة المجموعات من خلال ملفات التكوين
  3. الإضافة الديناميكية: إضافة المجموعات من خلال واجهة المستخدم (إذا كانت المصادقة مفعلة)

تبديل المجموعات

استخدم محدد المجموعة في التنقل العلوي للتبديل بين المجموعات. كل مجموعة تحتفظ بـ:

  • حالة الموارد
  • تكوين المراقبة
  • أذونات المستخدم
  • الإعدادات

المراقبة وقابلية الملاحظة

المقاييس في الوقت الفعلي

مع تكامل Prometheus، تقدم Kite:

  1. مقاييس المجموعة:
    • استخدام CPU والذاكرة
    • عدد Pods والعقد
    • تخصيص واستخدام الموارد
  2. مقاييس العقد:
    • أداء العقد الفردي
    • استخدام الموارد عبر الوقت
    • حالات العقد والأحداث
  3. مقاييس Pod:
    • استخدام موارد الحاوية
    • اتجاهات الأداء
    • حالة الصحة

تدفق السجلات

  1. انتقل إلى أي pod
  2. انقر على علامة تبويب السجلات
  3. تدفق السجلات في الوقت الفعلي مع:
    • دعم الحاويات المتعددة
    • البحث والتصفية
    • قدرات التحميل
    • خيارات التحديث التلقائي

الوصول للمحطة

  1. انتقل إلى أي pod
  2. انقر على علامة تبويب المحطة
  3. تنفيذ الأوامر مباشرة في الحاويات:
    • دعم الحاويات المتعددة
    • محاكي محطة كامل
    • رفع/تحميل الملفات
    • إدارة الجلسات

تكامل 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

التحقق من المقاييس

  1. الوصول إلى لوحة تحكم Kite
  2. انتقل إلى نظرة عامة على المجموعة
  3. تحقق من أن مخططات المقاييس تعرض البيانات
  4. فحص مقاييس العقد والـ 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

  1. اذهب إلى إعدادات GitHub > إعدادات المطور > تطبيقات OAuth
  2. انقر على “تطبيق OAuth جديد”
  3. املأ تفاصيل التطبيق:
    • اسم التطبيق: Kite Dashboard
    • رابط الصفحة الرئيسية: http://kite.yourdomain.com
    • رابط استدعاء التخويل: http://kite.yourdomain.com/auth/callback
  4. سجل معرف العميل وسر العميل

تكوين 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

إدارة المستخدمين

عند تفعيل المصادقة، يمكنك:

  1. إدارة المستخدمين: إضافة/إزالة المستخدمين من خلال واجهة المستخدم
  2. تعيين الأدوار: ربط المستخدمين بأدوار Kubernetes RBAC
  3. تدقيق الوصول: تتبع أنشطة المستخدمين والأذونات
  4. إدارة الجلسات: التحكم في انتهاء صلاحية الجلسات والسياسات

استكشاف الأخطاء وإصلاحها

المشاكل الشائعة

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 في مجموعتك:

  1. الاكتشاف التلقائي: يتم اكتشاف وإدراج CRDs تلقائياً
  2. عمليات CRUD الكاملة: إنشاء وقراءة وتحديث وحذف الموارد المخصصة
  3. تحرير YAML: تحرير الموارد المخصصة مع تمييز الصيغة
  4. تتبع الحالة: مراقبة حالة وشروط الموارد المخصصة

إدارة علامات الصور

تقدم Kite واجهة بديهية لإدارة صور الحاويات:

  1. اختيار العلامات: تصفح العلامات المتاحة من سجلات الحاويات
  2. تحديثات سريعة: تحديث صور النشر بنقرات قليلة
  3. دعم التراجع: تراجع سهل إلى إصدارات الصور السابقة
  4. تكامل السجل: دعم Docker Hub و ECR و GCR والسجلات الخاصة

العمليات المجمعة

تنفيذ عمليات على موارد متعددة:

  1. تحديد متعدد: تحديد موارد متعددة في عروض القائمة
  2. حذف مجمع: إزالة موارد متعددة في مرة واحدة
  3. وسم مجمع: إضافة/إزالة تسميات من موارد متعددة
  4. توسيع مجمع: توسيع نشر متعدد في نفس الوقت

قوالب الموارد

إنشاء واستخدام قوالب للموارد الشائعة:

  1. حفظ القوالب: حفظ تكوينات الموارد المستخدمة بكثرة
  2. مكتبة القوالب: بناء مكتبة قوالب تنظيمية
  3. نشر سريع: نشر الموارد من القوالب بتغييرات قليلة
  4. استبدال المعاملات: استخدام متغيرات في القوالب للمرونة

أفضل الممارسات

أفضل ممارسات الأمان

  1. استخدام RBAC: تنفيذ التحكم في الوصول القائم على الأدوار المناسب
  2. تفعيل المصادقة: استخدام OAuth لمصادقة المستخدم
  3. سياسات الشبكة: قيود الوصول للشبكة إلى Kite
  4. تشفير TLS: استخدام HTTPS مع الشهادات المناسبة
  5. التحديثات المنتظمة: الحفاظ على Kite محدث بأحدث إصدار

تحسين الأداء

  1. حدود الموارد: تعيين حدود CPU والذاكرة المناسبة
  2. ضبط Prometheus: تحسين استعلامات Prometheus والاحتفاظ
  3. تحسين الشبكة: استخدام Prometheus محلي عند الإمكان
  4. التخزين المؤقت: تفعيل التخزين المؤقت المناسب لأداء أفضل

إرشادات التشغيل

  1. نسخ احتياطية للتكوينات: نسخ احتياطي لتكوينات Kite والمجموعة
  2. المراقبة: مراقبة صحة وأداء Kite نفسه
  3. إدارة السجلات: تنفيذ دوران واحتفاظ مناسب للسجلات
  4. التوثيق: توثيق التكوينات والإجراءات الخاصة بالمجموعة

الخلاصة

تقدم Kite واجهة حديثة وبديهية لإدارة مجموعات Kubernetes تحسن بشكل كبير من تجربة المطور والمشغل. مع مجموعة ميزاتها الشاملة بما في ذلك دعم المجموعات المتعددة والمراقبة في الوقت الفعلي وخيارات الأمان المتقدمة، تخدم كبديل ممتاز للوحات تحكم Kubernetes التقليدية.

النقاط الرئيسية:

  1. تثبيت سهل: طرق تثبيت متعددة تدعم سيناريوهات نشر مختلفة
  2. مجموعة ميزات غنية: إدارة شاملة للموارد مع واجهة مستخدم/تجربة مستخدم حديثة
  3. دعم المجموعات المتعددة: إدارة سلسة لمجموعات Kubernetes متعددة
  4. تكامل المراقبة: مقاييس وقابلية ملاحظة في الوقت الفعلي مع Prometheus
  5. التركيز على الأمان: دعم مدمج للمصادقة و RBAC
  6. تطوير نشط: تحديثات منتظمة ودعم المجتمع

سواء كنت تدير مجموعة تطوير واحدة أو بيئات إنتاج متعددة، تقدم Kite الأدوات والواجهة اللازمة لعمليات Kubernetes فعالة.

موارد إضافية

هل لديك أسئلة أو تعليقات حول هذا الدليل؟ لا تتردد في التواصل أو المساهمة في مشروع Kite على GitHub!