هذا العرض يتضمن عدة صفحات للطباعة ضمن هذا القسم.
اضغط هنا للطباعة.
العودة للعرض العادي.
برامج تعليمية
يحتوي هذا القسم من وثائق كوبيرنيتيس على برامج تعليمية.
يعرض الدرس التعليمي كيفية تحقيق هدف أكبر من مهمة واحدة.
عادةً ما يحتوي الدرس التعليمي على عدة أقسام، يحتوي كل منها على تسلسل من الخطوات.
قبل استكشاف الدروس،
ينصح حفظ صفحة معجم المعاني الموحد لتسهيل مراجعتها لاحقًا.
العناصر الأساسية
الإعدادات
التطبيقات عديمة الحالة
التطبيقات ذات الحالة
الخدمات
الأمن
ما القادم؟
إذا كنت ترغب في كتابة درس تعليمي، يرجى الاطلاع على
أنواع صفحات المحتوى
للحصول على معلومات حول نوع صفحة الدرس التعليمي.
1 - مرحبًا، مينيكيوب
يعرض هذا الدليل كيفية تشغيل تطبيق تجريبي على كوبيرنيتيس باستخدام مينيكيوب.
يقدم الدليل صورة حاوية لإنجينكس (Nginx) لإعادة توجيه جميع الطلبات على الشبكة.
الأهداف
- نشر تطبيق تجريبي على عنقود مينيكيوب.
- تشغيل التطبيق.
- عرض سجلات التطبيق.
قبل أن تبدأ
يفترض هذا البرنامج التعليمي أنك قمت بإعداد مينيكيوب
مسبقاً.
راجع تعليمات الإعداد في الخطوة 1 من بدء مينيكيوب للحصول على تعليمات التثبيت.
ملاحظة: قم بتنفيذ التعليمات فقط في الخطوة 1، التثبيت. الباقي مغطى في هذه الصفحة.
كما يتعين عليك تثبيت kubectl
.
يرجى مراجعة تثبيت الأدوات للحصول على تعليمات التثبيت.
إنشاء عنقود مينيكيوب
فتح لوحة المعلومات
افتح لوحة معلومات كوبيرنيتيس. يمكنك فعل ذلك بطريقتين مختلفتين:
افتح *سطر أوامر جديد، وقم بتشغيل:
# ابدأ سطر أوامر جديد واترك هذا الأمر يعمل.
minikube dashboard
الآن، قم بالتبديل إلى سطر الأوامر حيث قمت بتشغيل minikube start
.
نشر التطبيق
الحجيرة في كوبيرنيتيس هي مجموعة تتكون من حاوية واحدة أو عدة حاويات، مرتبطة معاً لأغراض الإدارة والشبكات. الحجيرة في هذا البرنامج التعليمي تحتوي على حاوية واحدة فقط. النشر في كوبيرنيتيس هو وحدة تتولى إنشاء وإدارة وتحجيم الحجيرات، وهي الأداة الموصى باستخدامها لتلك الأغراض. يحافظ النشر على صحة حجيرتك ويعيد تشغيل الحاويات داخلها إذا توقفت.
-
استخدم أمر kubectl create
لإنشاء نشر يدير حجيرة. تعمل الحجيرة على حاوية مبنية على صورة دوكر الآتية:
# شَغِل صورة حاوية تتضمن خادم شبكة الويب لفحص النظام
kubectl create deployment hello-node --image=registry.k8s.io/e2e-test-images/agnhost:2.39 -- /agnhost netexec --http-port=8080
-
عرض النشر:
:سيبدو الناتج مشابهاً للتالي
NAME READY UP-TO-DATE AVAILABLE AGE
hello-node 1/1 1 1 1m
-
عرض الحجيرات:
:سيبدو الناتج مشابهاً للتالي
NAME READY STATUS RESTARTS AGE
hello-node-5f76cf6ccf-br9b5 1/1 Running 0 1m
-
عرض أحداث العنقود:
-
عرض إعدادات kubectl
:
-
عرض سجلات التطبيق لحاوية في حجيرة.
kubectl logs hello-node-5f76cf6ccf-br9b5
:سيبدو الناتج مشابهاً للتالي
I0911 09:19:26.677397 1 log.go:195] Started HTTP server on port 8080
I0911 09:19:26.677586 1 log.go:195] Started UDP server on port 8081
إنشاء خدمة
تتاح الحجيرة طبيعياً فقط عبر عنوان بروتوكول الإنترنت (IP) الداخلي للعنقود. لإتاحة حاوية hello-node
خارج الشبكة الافتراضية للعنقود، يجب عليك إبراز الحجيرة كخدمة كوبيرنيتيس.
-
قم بإبراز الحجيرة للإنترنت العام باستخدام أمر kubectl expose
:
kubectl expose deployment hello-node --type=LoadBalancer --port=8080
العلم --type=LoadBalancer
يشير إلى أنك تريد بإبراز خدمتك خارج العنقود.
الكود التطبيقي داخل صورة الاختبار يستمع فقط على منفذ TCP 8080. إذا استخدمت kubectl expose
لتعريض منفذ مختلف، لن يتمكن العملاء من الاتصال بذلك المنفذ الآخر.
-
عرض الخدمة التي أنشأتها:
:سيبدو الناتج مشابهاً للتالي
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-node LoadBalancer 10.108.144.78 <pending> 8080:30369/TCP 21s
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 23m
على مزودي الخدمة السحابية التي تدعم موزع الحمل، سيتم توفير عنوان (ب إي) خارجي للوصول إلى الخدمة. في حالة استخدام مينيكيوب، يجعل النوع LoadBalancer
الخدمة متاحة من خلال الأمر minikube service
.
-
قم بتشغيل الأمر التالي:
minikube service hello-node
هذا يفتح نافذة متصفح تخدم تطبيقك وتعرض استجابة التطبيق.
تفعيل الإضافات
يتضمن برنامج مينيكيوب مجموعة من الإضافات المدمجة التي يمكن تفعيلها، تعطيلها وفتحها في بيئة كوبيرنيتيس المحلية.
-
سرد الإضافات المدعومة حالياً:
:سيبدو الناتج مشابهاً للتالي
addon-manager: enabled
dashboard: enabled
default-storageclass: enabled
efk: disabled
freshpod: disabled
gvisor: disabled
helm-tiller: disabled
ingress: disabled
ingress-dns: disabled
logviewer: disabled
metrics-server: disabled
nvidia-driver-installer: disabled
nvidia-gpu-device-plugin: disabled
registry: disabled
registry-creds: disabled
storage-provisioner: enabled
storage-provisioner-gluster: disabled
- تفعيل إضافة، على سبيل المثال،
metrics-server
:
minikube addons enable metrics-server
:سيبدو الناتج مشابهاً للتالي
The 'metrics-server' addon is enabled
-
عرض الحجيرة والخدمة التي أُنشِئت نتيجة تفعيل تلك الإضافة:
kubectl get pod,svc -n kube-system
:سيبدو الناتج مشابهاً للتالي
NAME READY STATUS RESTARTS AGE
pod/coredns-5644d7b6d9-mh9ll 1/1 Running 0 34m
pod/coredns-5644d7b6d9-pqd2t 1/1 Running 0 34m
pod/metrics-server-67fb648c5 1/1 Running 0 26s
pod/etcd-minikube 1/1 Running 0 34m
pod/influxdb-grafana-b29w8 2/2 Running 0 26s
pod/kube-addon-manager-minikube 1/1 Running 0 34m
pod/kube-apiserver-minikube 1/1 Running 0 34m
pod/kube-controller-manager-minikube 1/1 Running 0 34m
pod/kube-proxy-rnlps 1/1 Running 0 34m
pod/kube-scheduler-minikube 1/1 Running 0 34m
pod/storage-provisioner 1/1 Running 0 34m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/metrics-server ClusterIP 10.96.241.45 <none> 80/TCP 26s
service/kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP 34m
service/monitoring-grafana NodePort 10.99.24.54 <none> 80:30002/TCP 26s
service/monitoring-influxdb ClusterIP 10.111.169.94 <none> 8083/TCP,8086/TCP 26s
-
تحقق من الناتج من metrics-server
:
:سيبدو الناتج مشابهاً للتالي
NAME CPU(cores) MEMORY(bytes)
hello-node-ccf4b9788-4jn97 1m 6Mi
إذا رأيت الرسالة التالية، انتظر وحاول مرة أخرى:
error: Metrics API not available
-
تعطيل metrics-server
:
minikube addons disable metrics-server
:سيبدو الناتج مشابهاً للتالي
metrics-server was successfully disabled
إزالة الموارد
الآن يمكنك إزالة الموارد التي أنشأتها في عنقودك:
kubectl delete service hello-node
kubectl delete deployment hello-node
إيقاف عنقود مينيكيوب
اختياريًا، حذف خادم الافتراضي الخاص بـ مينيكيوب:
# اختياري
minikube delete
إذا كنت ترغب في استخدام مينيكيوب مرة أخرى لتعلم المزيد عن كوبيرنيتيس، فلا حاجة لحذفه.
الختام
تمت تغطية الجوانب الأساسية للحصول على عنقود مينيكيوب جاهزًا للتشغيل. أنت الآن جاهز لنشر التطبيقات.
ما القادم؟