إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
توضح هذه المقالة كيفية تثبيت الوظيفة الإضافية لشبكة الخدمة المستندة إلى Istio لنظام مجموعة Azure Kubernetes Service (AKS).
لمزيد من المعلومات حول Istio والوظيفة الإضافية لشبكة الخدمة، راجع الوظيفة الإضافية لشبكة الخدمة المستندة إلى Istio لخدمة Azure Kubernetes.
Tip
يمكنك استخدام Azure Copilot للمساعدة في نشر Istio على مجموعات AKS الخاصة بك في بوابة Azure. لمزيد من المعلومات، راجع العمل مع عناقيد AKS بكفاءة باستخدام Azure Copilot.
قبل البدء
تتطلب الوظيفة الإضافية تثبيت الإصدار 2.57.0 من Azure CLI أو إصدار أحدث. يمكنك تشغيل
az --versionللتحقق من الإصدار. للتثبيت أو الترقية، يُرجى الرجوع إلى تثبيت Azure CLI.للعثور على معلومات حول مراجعات الوظائف الإضافية ل Istio المتوفرة في منطقة ما وتوافقها مع إصدارات نظام مجموعة AKS القياسية وLTS، استخدم الأمر
az aks mesh get-revisions:az aks mesh get-revisions --location <location> -o tableلمزيد من المعلومات حول توافق الوظيفة الإضافية Istio مع AKS، ارجع إلى سياسة دعم التوافق.
في بعض الحالات، قد لا يتم تنظيف Istio CRDs من عمليات التثبيت السابقة تلقائيا عند إلغاء التثبيت. تأكد من حذف Istio CRDs الموجودة:
kubectl delete crd $(kubectl get crd -A | grep "istio.io" | awk '{print $1}')من المستحسن أيضا تنظيف الموارد الأخرى من عمليات التثبيت المدارة ذاتيا من Istio مثل ClusterRoles و MutatingWebhookConfigurations و ValidatingWebhookConfigurations.
لاحظ أنه إذا اخترت استخدام أي
istioctlأوامر CLI، فستحتاج إلى تضمين علامة للإشارة إلى تثبيت الوظيفة الإضافية ل Istio:--istioNamespace aks-istio-system
تعيين متغيرات البيئة
export CLUSTER=<cluster-name>
export RESOURCE_GROUP=<resource-group-name>
export LOCATION=<location>
تثبيت الوظيفة الإضافية Istio
يتضمن هذا القسم خطوات لتثبيت الوظيفة الإضافية Istio أثناء إنشاء نظام المجموعة أو تمكين نظام مجموعة موجود باستخدام Azure CLI. إذا كنت ترغب في تثبيت الوظيفة الإضافية باستخدام Bicep، فشاهد دليل تثبيت نظام مجموعة AKS باستخدام الوظيفة الإضافية Istio service mesh باستخدام Bicep. لمعرفة المزيد حول تعريف مورد Bicep لمجموعة AKS، راجع مرجع Bicep managedCluster.
Note
إذا كنت بحاجة إلى istiod جرابات بوابة الدخول/الخروج المجدولة على عقد معينة، يمكنك استخدام عقد نظام AKS أو تسمية العقدة azureservicemesh/istio.replica.preferred . تحتوي الحجيرات على تقارب عقدة مع تفضيل 100 مرجح لعقد نظام AKS (المسماة kubernetes.azure.com/mode: system)، وتفضيل 50 مرجح للعقد المسماة azureservicemesh/istio.replica.preferred: true.
تحديد المراجعة
إذا قمت بتمكين الوظيفة الإضافية دون تحديد مراجعة، يتم تثبيت مراجعة افتراضية مدعومة لك.
لتحديد مراجعة، قم بتنفيذ الخطوات التالية.
-
az aks mesh get-revisionsاستخدم الأمر للتحقق من المراجعات المتوفرة لإصدارات نظام مجموعة AKS المختلفة في منطقة ما. - استنادا إلى المراجعات المتوفرة، يمكنك تضمين العلامة
--revision asm-X-Y(على سبيل المثال:--revision asm-1-24) في أمر التمكين الذي تستخدمه لتثبيت الشبكة.
تثبيت الشبكة أثناء إنشاء نظام المجموعة
لتثبيت الوظيفة الإضافية Istio عند إنشاء نظام المجموعة، استخدم المعلمة --enable-azure-service-mesh أو--enable-asm .
az group create --name ${RESOURCE_GROUP} --location ${LOCATION}
az aks create \
--resource-group ${RESOURCE_GROUP} \
--name ${CLUSTER} \
--enable-asm \
--generate-ssh-keys
تثبيت شبكة لنظام المجموعة الحالي
يتيح المثال التالي الوظيفة الإضافية Istio لمجموعة AKS موجودة:
Important
لا يمكنك تفعيل إضافة Istio على عنقود موجود إذا كانت إضافة Open Service Mesh (OSM) موجودة بالفعل في مجموعتك. قم بإلغاء تثبيت الوظيفة الإضافية OSM قبل تثبيت الوظيفة الإضافية Istio. لمزيد من المعلومات، راجع إلغاء تثبيت الوظيفة الإضافية OSM من نظام مجموعة AKS. يمكن تمكين الوظيفة الإضافية Istio فقط على مجموعات AKS من الإصدار >= 1.23.
az aks mesh enable --resource-group ${RESOURCE_GROUP} --name ${CLUSTER}
التحقق من التثبيت الناجح
للتحقق من تثبيت الوظيفة الإضافية Istio على نظام المجموعة، قم بتشغيل الأمر التالي:
az aks show --resource-group ${RESOURCE_GROUP} --name ${CLUSTER} --query 'serviceMeshProfile.mode'
تأكد من ظهور Istioالإخراج .
يستخدم az aks get-credentials للحصول على بيانات الاعتماد لنظام مجموعة AKS الخاص بك:
az aks get-credentials --resource-group ${RESOURCE_GROUP} --name ${CLUSTER}
استخدم kubectl للتحقق من أن istiod (وحدة التحكم Istio) تعمل بنجاح:
kubectl get pods -n aks-istio-system
تأكد من أن الجراب istiod لديه حالة Running. على سبيل المثال:
NAME READY STATUS RESTARTS AGE
istiod-asm-1-24-74f7f7c46c-xfdtl 1/1 Running 0 2m
istiod-asm-1-24-74f7f7c46c-4nt2v 1/1 Running 0 2m
تمكين الحقن الجانبي
لتثبيت sidecar تلقائيا على أي pods جديدة، تحتاج إلى إضافة تعليق توضيحي إلى مساحات الأسماء الخاصة بك مع تسمية المراجعة المقابلة لمراجعة وحدة التحكم المثبتة حاليا.
إذا لم تكن متأكدا من المراجعة المثبتة، فاستخدم:
az aks show --resource-group ${RESOURCE_GROUP} --name ${CLUSTER} --query 'serviceMeshProfile.istio.revisions'
تطبيق تسمية المراجعة:
kubectl label namespace default istio.io/rev=asm-X-Y
Important
مطلوب تعيين إصدار صريح يطابق مراجعة مستوى التحكم (على سبيل المثال: istio.io/rev=asm-1-24) .
لن تعمل تسمية istio-injection=enabled الافتراضية وستتسبب في تخطي الإدخال الجانبي لمساحة الاسم للوظيفة الإضافية.
للحقن اليدوي ل sidecar باستخدام istioctl kube-inject، تحتاج إلى تحديد معلمات إضافية ل istioNamespace (-i) و revision (-r). على سبيل المثال:
kubectl apply -f <(istioctl kube-inject -f sample.yaml -i aks-istio-system -r asm-X-Y) -n foo
إدخال sidecar المشغل
يمكنك إما نشر نموذج التطبيق المقدم للاختبار، أو تشغيل حقن sidecar لأحمال العمل الحالية.
التطبيقات الحالية
إذا كان لديك تطبيقات موجودة لإضافتها إلى الشبكة، فتأكد من تسمية مساحات الأسماء الخاصة بها كما في الخطوة السابقة، ثم أعد تشغيل عمليات النشر الخاصة بهم لتشغيل حقن sidecar:
kubectl rollout restart -n <namespace> <deployment name>
تحقق من نجاح حقن sidecar عن طريق التأكد من أن جميع الحاويات جاهزة والبحث عن الحاوية istio-proxykubectl describe في الإخراج، على سبيل المثال:
kubectl describe pod -n namespace <pod name>
istio-proxy الحاوية هي سيارة Envoy الجانبية. أصبح تطبيقك الآن جزءا من مستوى البيانات.
نشر تطبيق العينة
استخدم kubectl apply لنشر نموذج التطبيق على نظام المجموعة:
kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.24/samples/bookinfo/platform/kube/bookinfo.yaml
Note
ستحتاج المجموعات التي تستخدم وكيل HTTP للوصول إلى الإنترنت الصادر إلى إعداد إدخال خدمة. للحصول على إرشادات الإعداد، راجع دعم وكيل HTTP في خدمة Azure Kubernetes
تأكد من إنشاء العديد من عمليات النشر والخدمات على نظام المجموعة. على سبيل المثال:
service/details created
serviceaccount/bookinfo-details created
deployment.apps/details-v1 created
service/ratings created
serviceaccount/bookinfo-ratings created
deployment.apps/ratings-v1 created
service/reviews created
serviceaccount/bookinfo-reviews created
deployment.apps/reviews-v1 created
deployment.apps/reviews-v2 created
deployment.apps/reviews-v3 created
service/productpage created
serviceaccount/bookinfo-productpage created
deployment.apps/productpage-v1 created
استخدم kubectl get services للتحقق من إنشاء الخدمات بنجاح:
kubectl get services
تأكد من نشر الخدمات التالية:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
details ClusterIP 10.0.180.193 <none> 9080/TCP 87s
kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 15m
productpage ClusterIP 10.0.112.238 <none> 9080/TCP 86s
ratings ClusterIP 10.0.15.201 <none> 9080/TCP 86s
reviews ClusterIP 10.0.73.95 <none> 9080/TCP 86s
kubectl get pods
NAME READY STATUS RESTARTS AGE
details-v1-558b8b4b76-2llld 2/2 Running 0 2m41s
productpage-v1-6987489c74-lpkgl 2/2 Running 0 2m40s
ratings-v1-7dc98c7588-vzftc 2/2 Running 0 2m41s
reviews-v1-7f99cc4496-gdxfn 2/2 Running 0 2m41s
reviews-v2-7d79d5bd5d-8zzqd 2/2 Running 0 2m41s
reviews-v3-7dbcdcbc56-m8dph 2/2 Running 0 2m41s
تأكد من أن جميع pods لها حالة Running مع حاويتين في READY العمود. الحاوية الثانية (istio-proxy) المضافة إلى كل جراب هي Sidecar Envoy التي تم حقنها بواسطة Istio، والأخرى هي حاوية التطبيق.
لاختبار نموذج التطبيق هذا ضد الدخول، راجع الخطوات التالية.