إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
Helm أداة تعبئة مفتوحة المصدر تساعدك على تثبيت دورة حياة تطبيقات Kubernetes وإدارتها. على غرار مديري حزم Linux، مثل APT وYum، يمكنك استخدام Helm لإدارة مخططات Kubernetes، وهي حزم من موارد Kubernetes التي تم تكوينها مسبقا.
توضح هذه المقالة كيفية تكوين Helm واستخدامه في مجموعة Kubernetes على خدمة Azure Kubernetes (AKS).
قبل البدء
- تفترض هذه المقالة أن لديك مجموعة AKS موجودة. إذا كنت بحاجة إلى نظام مجموعة AKS، قم بإنشاء مجموعة باستخدام Azure CLI أو Azure PowerShell أو مدخل Azure.
- تحتاج مجموعة AKS الخاصة بك إلى ACR متكامل. للحصول على تفاصيل حول إنشاء نظام مجموعة AKS باستخدام ACR متكامل، راجع المصادقة باستخدام Azure Container Registry من Azure Kubernetes Service.
- تحتاج أيضًا إلى تثبيت Helm CLI، وهو العميل الذي يتم تشغيله على نظام التطوير الخاص بك. فهو يسمح لك ببدء التطبيقات وإيقافها وإدارتها باستخدام Helm. في حال كنت تستخدم Azure Cloud Shell، يكون Helm CLI مثبتًا بالفعل. للحصول على إرشادات التثبيت على النظام الأساسي المحلي، راجع تثبيت Helm.
هام
يهدف Helm إلى التشغيل على عقد Linux. إذا كان لديك عقد Windows Server في نظام المجموعة، يجب التأكد من جدولة Helm pods فقط للتشغيل على عقد Linux. تحتاج أيضًا إلى التأكد من جدولة أي مخططات Helm تقوم بتثبيتها أيضًا للتشغيل على العقد الصحيحة. تستخدم الأوامر الواردة في هذه المقالة محددات العقدة للتأكد من جدولة pods إلى العقد الصحيحة، ولكن ليس كل مخططات Helm قد تعرض محدد عقدة. يمكنك أيضا التفكير في استخدام خيارات أخرى على نظام المجموعة، مثل العيوب.
تحقق من إصدار Helm
helm versionاستخدم الأمر للتحقق من تثبيت Helm 3.helm versionيظهر إخراج المثال التالي إصدار Helm 3.0.0 المثبت:
version.BuildInfo{Version:"v3.0.0", GitCommit:"e29ce2a54e96cd02ccfce88bee4f58bb6e2a28b6", GitTreeState:"clean", GoVersion:"go1.13.4"}
تثبيت التطبيق باستخدام Helm v3
إضافة مستودعات Helm
أضف مستودع ingress-nginx باستخدام أمر helm repo.
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
البحث عن مخططات helm
ابحث عن مخططات Helm التي تم إنشاؤها مسبقا باستخدام أمر بحث helm.
helm search repo ingress-nginxيظهر إخراج المثال التالي بعض مخططات Helm المتوفرة للاستخدام:
NAME CHART VERSION APP VERSION DESCRIPTION ingress-nginx/ingress-nginx 4.7.0 1.8.0 Ingress controller for Kubernetes using NGINX a...قم بتحديث قائمة المخططات باستخدام أمر تحديث helm repo.
helm repo updateيظهر إخراج المثال التالي تحديث مستودع ناجح:
Hang tight while we grab the latest from your chart repositories... ...Successfully got an update from the "ingress-nginx" chart repository Update Complete. ⎈ Happy Helming!⎈
استيراد صور مخطط Helm إلى ACR الخاص بك
تستخدم هذه المقالة مخطط Helm لوحدة تحكم دخول NGINX، والذي يعتمد على ثلاث صور للحاوية.
استخدم
az acr importلاستيراد صور وحدة تحكم دخول NGINX إلى ACR الخاص بك.REGISTRY_NAME=<REGISTRY_NAME> CONTROLLER_REGISTRY=registry.k8s.io CONTROLLER_IMAGE=ingress-nginx/controller CONTROLLER_TAG=v1.8.0 PATCH_REGISTRY=registry.k8s.io PATCH_IMAGE=ingress-nginx/kube-webhook-certgen PATCH_TAG=v20230407 DEFAULTBACKEND_REGISTRY=registry.k8s.io DEFAULTBACKEND_IMAGE=defaultbackend-amd64 DEFAULTBACKEND_TAG=1.5 az acr import --name $REGISTRY_NAME --source $CONTROLLER_REGISTRY/$CONTROLLER_IMAGE:$CONTROLLER_TAG --image $CONTROLLER_IMAGE:$CONTROLLER_TAG az acr import --name $REGISTRY_NAME --source $PATCH_REGISTRY/$PATCH_IMAGE:$PATCH_TAG --image $PATCH_IMAGE:$PATCH_TAG az acr import --name $REGISTRY_NAME --source $DEFAULTBACKEND_REGISTRY/$DEFAULTBACKEND_IMAGE:$DEFAULTBACKEND_TAG --image $DEFAULTBACKEND_IMAGE:$DEFAULTBACKEND_TAGإشعار
إلى جانب استيراد صور الحاويات إلى ACR الخاص بك، يمكنك أيضاً استيراد مخططات Helm إلى ACR الخاص بك. لمزيد من المعلومات، راجع «Push and pull Helm charts» إلى سجل حاويات Azure Container Registry.
تشغيل مخططات Helm
قم بتثبيت مخططات Helm باستخدام أمر تثبيت helm وحدد اسم الإصدار واسم المخطط المراد تثبيته.
تلميح
ينشئ المثال التالي مساحة اسم Kubernetes لموارد الدخول التي تحمل اسم ingress-basic وتهدف إلى العمل ضمن مساحة الاسم. حدد مساحة االاسم للبيئة الخاصة بك حسب الحاجة.
ACR_URL=<REGISTRY_URL> # Create a namespace for your ingress resources kubectl create namespace ingress-basic # Use Helm to deploy an NGINX ingress controller helm install ingress-nginx ingress-nginx/ingress-nginx \ --version 4.0.13 \ --namespace ingress-basic \ --set controller.replicaCount=2 \ --set controller.nodeSelector."kubernetes\.io/os"=linux \ --set controller.image.registry=$ACR_URL \ --set controller.image.image=$CONTROLLER_IMAGE \ --set controller.image.tag=$CONTROLLER_TAG \ --set controller.image.digest="" \ --set controller.admissionWebhooks.patch.nodeSelector."kubernetes\.io/os"=linux \ --set controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-health-probe-request-path"=/healthz \ --set controller.admissionWebhooks.patch.image.registry=$ACR_URL \ --set controller.admissionWebhooks.patch.image.image=$PATCH_IMAGE \ --set controller.admissionWebhooks.patch.image.tag=$PATCH_TAG \ --set defaultBackend.nodeSelector."kubernetes\.io/os"=linux \ --set defaultBackend.image.registry=$ACR_URL \ --set defaultBackend.image.image=$DEFAULTBACKEND_IMAGE \ --set defaultBackend.image.tag=$DEFAULTBACKEND_TAG \ --set defaultBackend.image.digest=""يظهر إخراج المثال المكثف التالي حالة نشر موارد Kubernetes التي تم إنشاؤها بواسطة مخطط Helm:
NAME: nginx-ingress LAST DEPLOYED: Wed Jul 28 11:35:29 2021 NAMESPACE: ingress-basic STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: The ingress-nginx controller has been installed. It may take a few minutes for the LoadBalancer IP to be available. You can watch the status by running 'kubectl --namespace ingress-basic get services -o wide -w nginx-ingress-ingress-nginx-controller' ...احصل على EXTERNAL-IP للخدمة
kubectl get servicesالخاصة بك باستخدام الأمر .kubectl --namespace ingress-basic get services -o wide -w ingress-nginx-ingress-nginx-controllerيظهر إخراج المثال التالي EXTERNAL-IP لخدمة ingress-nginx-ingress-nginx-controller :
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR nginx-ingress-ingress-nginx-controller LoadBalancer 10.0.254.93 <EXTERNAL_IP> 80:30004/TCP,443:30348/TCP 61s app.kubernetes.io/component=controller,app.kubernetes.io/instance=nginx-ingress,app.kubernetes.io/name=ingress-nginx
إصدارات القائمة
احصل على قائمة الإصدارات المثبتة على نظام المجموعة باستخدام
helm listالأمر .helm list --namespace ingress-basicيظهر إخراج المثال التالي إصدار ingress-nginx المنشور في الخطوة السابقة:
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION ingress-nginx ingress-basic 1 2021-07-28 11:35:29.9623734 -0500 CDT deployed ingress-nginx-3.34.0 0.47.0
تنظيف الموارد
يؤدي نشر مخطط Helm إلى إنشاء موارد Kubernetes مثل الحجيرات والنشرات والخدمات.
قم بتنظيف الموارد باستخدام الأمر helm uninstall وحدد اسم الإصدار الخاص بك.
helm uninstall --namespace ingress-basic ingress-nginxيظهر إخراج المثال التالي أن الإصدار المسمى ingress-nginx قد تم إلغاء تثبيته:
release "nginx-ingress" uninstalledاحذف عينة مساحة الاسم بأكملها مع الموارد باستخدام
kubectl deleteالأمر وحدد اسم مساحة الاسم.kubectl delete namespace ingress-basic
الخطوات التالية
لمزيد من المعلومات حول إدارة عمليات نشر تطبيقات Kubernetes مع Helm، راجع وثائق Helm.