الفصل 1.6 - التثبيت والتكوين
نظرة عامة
قبل البدء في استخدام Kubernetes، يجب عليك تثبيت الأدوات اللازمة. يوجهك هذا الفصل خلال تثبيت kubectl (أداة سطر الأوامر لـ Kubernetes) وتكوين مجموعة محلية للممارسة.
الأهداف
في نهاية هذا الفصل، ستكون قادرًا على:
- تثبيت kubectl على نظامك
- فهم تكوين kubectl
- بدء عنقود Kubernetes محلية
- التحقق من أن كل شيء يعمل بشكل صحيح
- استخدام أوامر kubectl الأساسية
ما هو kubectl؟
kubectl (يُنطق "كوب-كونترول" أو "كوب-كتل") هو أداة سطر الأوامر الرسمية للتفاعل مع عنقود Kubernetes.
ميزات kubectl:
- إنشاء وتعديل وحذف الموارد
- فحص حالة العنقود
- إدارة النشر
- تصحيح التطبيقات
- الوصول إلى سجلات البودات
تثبيت kubectl
التحقق من التثبيت
قبل التثبيت، دعونا نتحقق مما إذا كان kubectl مثبتًا بالفعل:
kubectl version --client
إذا رأيت إصدارًا، فإن kubectl مثبت بالفعل! وإلا، فاتبع التعليمات أدناه.
التثبيت على Windows
الطريقة 1: عبر Chocolatey (موصى به)
إذا كان لديك Chocolatey مثبتًا:
choco install kubernetes-cli
الطريقة 2: التحميل المباشر
-
قم بتحميل أحدث إصدار من:
https://dl.k8s.io/release/v1.28.0/bin/windows/amd64/kubectl.exe(استبدل
v1.28.0بالإصدار المطلوب) -
أضف kubectl.exe إلى PATH الخاص بك:
- أنشئ مجلدًا
C:\kubectl - ضع
kubectl.exeفي هذا المجلد - أضف
C:\kubectlإلى متغير البيئة PATH
- أنشئ مجلدًا
-
تحقق من التثبيت:
kubectl version --client
الطريقة 3: عبر PowerShell
# تحميل kubectl
$version = "v1.28.0"
$url = "https://dl.k8s.io/release/$version/bin/windows/amd64/kubectl.exe"
Invoke-WebRequest -Uri $url -OutFile "$env:TEMP\kubectl.exe"
# نقل إلى مجلد في PATH
Move-Item -Path "$env:TEMP\kubectl.exe" -Destination "C:\Windows\System32\kubectl.exe"
# التحقق
kubectl version --client
التثبيت على Linux
الطريقة 1: عبر Package Manager (أوبونتو/ديبيان)
# تحديث الحزم
sudo apt-get update
# تثبيت التبعيات
sudo apt-get install -y apt-transport-https ca-certificates curl
# إضافة مفتاح GPG لـ Kubernetes
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
# إضافة المستودع
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
# تثبيت kubectl
sudo apt-get update
sudo apt-get install -y kubectl
# التحقق
kubectl version --client
الطريقة 2: التحميل المباشر
# تحميل أحدث إصدار
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
# جعله قابلاً للتنفيذ
chmod +x kubectl
# نقل إلى مجلد في PATH
sudo mv kubectl /usr/local/bin/
# التحقق
kubectl version --client
التثبيت على macOS
الطريقة 1: عبر Homebrew (موصى به)
brew install kubectl
الطريقة 2: التحميل المباشر
# تحميل
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl"
# جعله قابلاً للتنفيذ
chmod +x kubectl
# نقل إلى مجلد في PATH
sudo mv kubectl /usr/local/bin/
# التحقق
kubectl version --client
تكوين kubectl
ملف التكوين
يستخدم kubectl ملف تكوين يقع في:
- Linux/macOS:
~/.kube/config - Windows:
%USERPROFILE%\.kube\config
يحتوي هذا الملف على:
- معلومات الاتصال بالمجموعات
- السياقات (أي مجموعة تستخدم)
- المستخدمون والمصادقات
هيكل ملف config
apiVersion: v1
kind: Config
clusters:
- name: my-cluster
cluster:
server: https://api.my-cluster.com
certificate-authority-data: <cert-data>
contexts:
- name: my-context
context:
cluster: my-cluster
user: my-user
current-context: my-context
users:
- name: my-user
user:
token: <token>
أوامر التكوين المفيدة
# عرض التكوين الحالي
kubectl config view
# عرض السياقات المتاحة
kubectl config get-contexts
# تغيير السياق
kubectl config use-context my-context
# عرض السياق الحالي
kubectl config current-context
المجموعة المحلية: minikube
للتدرب على Kubernetes محليًا، سنستخدم minikube، الذي ينشئ عنقود Kubernetes بعقدة واحدة في جهاز افتراضي.
تثبيت minikube
Windows
# عبر Chocolatey
choco install minikube
# أو التحميل المباشر
# قم بالتحميل من: https://github.com/kubernetes/minikube/releases
Linux
# تحميل
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
# تثبيت
sudo install minikube-linux-amd64 /usr/local/bin/minikube
macOS
brew install minikube
بدء minikube
# بدء minikube
minikube start
# التحقق من الحالة
minikube status
# عرض معلومات العنقود
kubectl cluster-info
أوامر minikube المفيدة
# إيقاف المجموعة
minikube stop
# بدء المجموعة
minikube start
# حذف المجموعة
minikube delete
# فتح لوحة التحكم Kubernetes
minikube dashboard
# الوصول إلى بيئة minikube
minikube ssh
المجموعة المحلية: kind (بديل)
kind (Kubernetes in Docker) هو بديل لـ minikube يستخدم Docker بدلاً من VM.
تثبيت kind
Windows
choco install kind
Linux/macOS
# تحميل
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-amd64
# لـ macOS: kind-darwin-amd64
# جعله قابلاً للتنفيذ
chmod +x ./kind
# نقل إلى PATH
sudo mv ./kind /usr/local/bin/kind
استخدام kind
# إنشاء مجموعة
kind create cluster --name my-cluster
# سرد المجموعات
kind get clusters
# حذف مجموعة
kind delete cluster --name my-cluster
التحقق من التثبيت
اختبار كامل
قم بتشغيل هذه الأوامر للتحقق من أن كل شيء يعمل:
# 1. التحقق من إصدار kubectl
kubectl version --client
# 2. التحقق من الاتصال بالمجموعة
kubectl cluster-info
# 3. سرد العقد
kubectl get nodes
# 4. سرد جميع البودات (يجب أن تكون فارغة في البداية)
kubectl get pods --all-namespaces
# 5. التحقق من مكونات النظام
kubectl get componentstatuses
# ملاحظة: هذا الأمر تم إهماله في الإصدارات الحديثة
النتيجة المتوقعة
إذا كان كل شيء يعمل، يجب أن ترى:
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane 1m v1.28.0
أوامر kubectl الأساسية
إليك الأوامر الأساسية التي ستستخدمها طوال الدورة:
الأوامر العامة
# الحصول على المعلومات
kubectl get <resource> # سرد الموارد
kubectl describe <resource> <name> # تفاصيل المورد
kubectl explain <resource> # توثيق المورد
# إنشاء الموارد
kubectl create <resource> # إنشاء من سطر الأوامر
kubectl apply -f <file.yaml> # إنشاء من ملف YAML
# تعديل الموارد
kubectl edit <resource> <name> # تحرير مورد
kubectl patch <resource> <name> # تعديل جزئي
# حذف الموارد
kubectl delete <resource> <name> # حذف مورد
kubectl delete -f <file.yaml> # حذف من ملف
أمثلة عملية
# سرد جميع البودات
kubectl get pods
# سرد جميع البودات في جميع النطاقات
kubectl get pods --all-namespaces
# عرض تفاصيل بود
kubectl describe pod my-pod
# عرض سجلات بود
kubectl logs my-pod
# تنفيذ أمر في بود
kubectl exec -it my-pod -- /bin/bash
# نسخ ملف إلى/من بود
kubectl cp my-pod:/path/file ./local-file
الإكمال التلقائي (مكافأة)
تكوين الإكمال التلقائي
الإكمال التلقائي يجعل استخدام kubectl أسهل بكثير:
Bash (Linux/macOS)
# إضافة إلى ~/.bashrc
echo 'source <(kubectl completion bash)' >> ~/.bashrc
source ~/.bashrc
Zsh (macOS)
# إضافة إلى ~/.zshrc
echo 'source <(kubectl completion zsh)' >> ~/.zshrc
source ~/.zshrc
PowerShell (Windows)
# تثبيت الوحدة
Install-Module -Name PSKubectlCompletion
# استيراد في الملف الشخصي
Add-Content $PROFILE "Import-Module PSKubectlCompletion"
ملخص
في هذا الفصل، تعلمت:
كيفية تثبيت kubectl على أنظمة مختلفة
كيفية تكوين kubectl للاتصال بمجموعة
كيفية بدء مجموعة محلية باستخدام minikube أو kind
كيفية التحقق من أن كل شيء يعمل بشكل صحيح
الأوامر الأساسية لـ kubectl
الخطوات التالية
الآن بعد أن قمت بتثبيت kubectl ولديك مجموعة محلية تعمل، أنت جاهز لـ:
مختبر 1.1: النشر الأول على Kubernetes
الوحدة 2: الهندسة المعمارية التفصيلية ومكونات Kubernetes
الموارد
- [توثيق kubectl](https://kubernetes.io/docs/reference/kubectl/)
- دليل تثبيت kubectl
- [توثيق minikube](https://minikube.sigs.k8s.io/docs/)
- توثيق kind
استكشاف الأخطاء وإصلاحها
المشاكل الشائعة والحلول
المشكلة 1: kubectl: command not found
الأعراض:
kubectl: command not found
الحلول:
-
التحقق من التثبيت:
# Windows
where kubectl
# Linux/macOS
which kubectl -
التحقق من PATH:
- تأكد من أن المجلد الذي يحتوي على kubectl في PATH الخاص بك
- Windows: تحقق من متغيرات البيئة النظامية
- Linux/macOS: تحقق من
echo $PATH
-
إعادة التثبيت:
- اتبع تعليمات التثبيت مرة أخرى لنظام التشغيل الخاص بك
المشكلة 2: Unable to connect to the server
الأعراض:
The connection to the server <server> was refused
الحلول:
-
التحقق من أن المجموعة بدأت:
# لـ minikube
minikube status
minikube start
# لـ kind
kind get clusters -
التحقق من التكوين:
kubectl config view
kubectl config current-context -
التحقق من الاتصال بالشبكة:
kubectl cluster-info
المشكلة 3: minikube start يفشل
الأعراض المحتملة:
- خطأ في الافتراضية
- مشكلة في الموارد (RAM/CPU)
- تعارض مع Docker
الحلول:
-
التحقق من الافتراضية:
- Windows: تفعيل Hyper-V أو VirtualBox
- Linux: تحقق من KVM
- macOS: تحقق من VirtualBox أو HyperKit
-
تخصيص المزيد من الموارد:
minikube start --memory=4096 --cpus=2 -
استخدام محرك مختلف:
minikube start --driver=docker
# أو
minikube start --driver=virtualbox -
إعادة تعيين minikube:
minikube delete
minikube start
المشكلة 4: خطأ في شهادة SSL
الأعراض:
x509: certificate signed by unknown authority
الحلول:
-
التحقق من تاريخ النظام:
- تأكد من أن تاريخ/وقت النظام الخاص بك صحيح
-
إعادة تعيين السياق:
kubectl config use-context minikube -
إعادة إنشاء المجموعة:
minikube delete
minikube start
المشكلة 5: kubectl version يعرض فقط العميل
الأعراض:
kubectl version --client
# يعمل، ولكن
kubectl version
# خطأ: Unable to connect to the server
الحل:
- المجموعة لم تبدأ أو kubectl غير مكون
- اتبع خطوات "التحقق من التثبيت" أعلاه
التنقل
الفصل السابق: الفصل 1.5 - المفاهيم الأساسية
العودة إلى الوحدة: الوحدة 1 - مقدمة في Kubernetes
المختبر التالي: مختبر 1.1 - النشر الأول
تم إنشاء الفصل في: ديسمبر 2024