تكوين الوظيفة الإضافية لشبكة الخدمة المستندة إلى Istio لخدمة Azure Kubernetes
يستخدم Istio مفتوح المصدر MeshConfig لتعريف الإعدادات على مستوى الشبكة لشبكة خدمة Istio. تعتمد الوظيفة الإضافية لمجموعة الخدمة المستندة إلى Istio ل AKS على أعلى MeshConfig وتصنف الخصائص المختلفة على أنها مدعومة ومسمحة ومحظرة.
تتناول هذه المقالة كيفية تكوين الوظيفة الإضافية لشبكة الخدمة المستندة إلى Istio لخدمة Azure Kubernetes ونهج الدعم المطبق على مثل هذا التكوين.
المتطلبات الأساسية
يفترض هذا الدليل أنك اتبعت الوثائق لتمكين الوظيفة الإضافية Istio على نظام مجموعة AKS.
إعداد التكوين على نظام المجموعة
تعرف على مراجعة Istio التي يتم نشرها على نظام المجموعة:
az aks show --name $CLUSTER --resource-group $RESOURCE_GROUP --query 'serviceMeshProfile'
إخراج:
{ "istio": { "certificateAuthority": null, "components": { "egressGateways": null, "ingressGateways": null }, "revisions": [ "asm-1-18" ] }, "mode": "Istio" }
إنشاء ConfigMap بالاسم
istio-shared-configmap-<asm-revision>
فيaks-istio-system
مساحة الاسم. على سبيل المثال، إذا كانت مجموعتك تعمل على مراجعة شبكة asm-1-18، فيجب تسمية ConfigMap باسمistio-shared-configmap-asm-1-18
. يجب توفير تكوين الشبكة داخل قسم البيانات ضمن الشبكة.مثال:
apiVersion: v1 kind: ConfigMap metadata: name: istio-shared-configmap-asm-1-18 namespace: aks-istio-system data: mesh: |- accessLogFile: /dev/stdout defaultConfig: holdApplicationUntilProxyStarts: true
القيم الموجودة ضمن
defaultConfig
هي إعدادات على مستوى الشبكة المطبقة على وكيل Envoy sidecar.
تنبيه
يتم إنشاء ConfigMap افتراضي (على سبيل المثال، istio-asm-1-18
لمراجعة asm-1-18) في aks-istio-system
مساحة الاسم على نظام المجموعة عند تمكين الوظيفة الإضافية Istio. ومع ذلك، يتم تسوية ConfigMap الافتراضي هذا بواسطة الوظيفة الإضافية Istio المدارة وبالتالي يجب على المستخدمين عدم تحرير ConfigMap مباشرة. بدلا من ذلك، يجب على المستخدمين إنشاء مراجعة معينة ConfigMap المشتركة ل Istio (على سبيل المثال istio-shared-configmap-asm-1-18
لمراجعة asm-1-18) في مساحة اسم نظام aks-istio، ثم ستقوم وحدة التحكم Istio بدمج هذا مع ConfigMap الافتراضي، مع الأسبقية للإعدادات الافتراضية.
تكوين الشبكة والترقيات
عند إجراء ترقية الكناري ل Istio، تحتاج إلى إنشاء ConfigMap منفصل للمراجعة الجديدة في aks-istio-system
مساحة الاسم قبل بدء ترقية الكناري. بهذه الطريقة يتوفر التكوين عند نشر وحدة التحكم في المراجعة الجديدة على نظام المجموعة. على سبيل المثال، إذا كنت تقوم بترقية الشبكة من asm-1-18 إلى asm-1-19، فستحتاج إلى نسخ التغييرات من istio-shared-configmap-asm-1-18
لإنشاء ConfigMap جديد يسمى istio-shared-configmap-asm-1-19
في aks-istio-system
مساحة الاسم.
بعد اكتمال الترقية أو التراجع عنها، يمكنك حذف ConfigMap للمراجعة التي تمت إزالتها من نظام المجموعة.
قيم MeshConfig المسموح بها والمدعمة والمحظرة
يتم تصنيف الحقول في MeshConfig
على أنها allowed
أو supported
أو blocked
. لمعرفة المزيد حول هذه الفئات، راجع نهج الدعم لميزات المكون الإضافي Istio وخيارات التكوين.
تكوين الشبكة وقائمة الحقول المسموح بها/المدعومة هي مراجعة خاصة لحساب الحقول التي تتم إضافتها/إزالتها عبر المراجعات. يتم توفير القائمة الكاملة للحول المسموح بها والحقول المدعومة/غير المدعومة ضمن القائمة المسموح بها في الجدول أدناه. عند توفير مراجعة شبكة جديدة، يتم ملاحظة أي تغييرات على التصنيف المسموح به والمدعم للحاول في هذا الجدول.
MeshConfig
يتم حظر الحقول الموجودة في الوثائق المرجعية مصدر مفتوح MeshConfig غير المشمولة في الجدول التالي. على سبيل المثال، configSources
محظور.
ميدان | معتمد/مسموح به | ملاحظات |
---|---|---|
proxyListenPort | مسموح | - |
proxyInboundListenPort | مسموح | - |
proxyHttpPort | مسموح | - |
connectTimeout | مسموح | قابل للتكوين في DestinationRule |
tcpKeepalive | مسموح | قابل للتكوين في DestinationRule |
التكوين الافتراضي | مدعوم | يستخدم لتكوين ProxyConfig |
نهج التدفقات الصادرة | مدعوم | قابل للتكوين أيضا في Sidecar CR |
موفرو الملحقات | مسموح | - |
الموفرون الافتراضيون | مسموح | - |
accessLogFile | مدعوم | يعالج هذا الحقل إنشاء سجلات الوصول. للحصول على تجربة مدارة حول جمع السجلات والاستعلام عنها، راجع Azure Monitor Container Insights على AKS. يتم تشجيع تكوين تسجيل الوصول عبر واجهة برمجة تطبيقات بيانات تتبع الاستخدام. |
تنسيق سجل الوصول | مدعوم | يعالج هذا الحقل إنشاء سجلات الوصول. للحصول على تجربة مدارة حول جمع السجلات والاستعلام عنها، راجع Azure Monitor Container Insights على AKS |
accessLogEncoding | مدعوم | يعالج هذا الحقل إنشاء سجلات الوصول. للحصول على تجربة مدارة حول جمع السجلات والاستعلام عنها، راجع Azure Monitor Container Insights على AKS |
تمكين التحويذ | مسموح | يتم تشجيع تكوين التتبع عبر واجهة برمجة تطبيقات بيانات تتبع الاستخدام. |
enableEnvoyAccessLogService | مدعوم | يعالج هذا الحقل إنشاء سجلات الوصول. للحصول على تجربة مدارة حول جمع السجلات والاستعلام عنها، راجع Azure Monitor Container Insights على AKS |
disableEnvoyListenerLog | مدعوم | يعالج هذا الحقل إنشاء سجلات الوصول. للحصول على تجربة مدارة حول جمع السجلات والاستعلام عنها، راجع Azure Monitor Container Insights على AKS |
مجال الثقة | مسموح | - |
trustDomainAliases | مسموح | - |
caCertificates | مسموح | قابل للتكوين في DestinationRule |
defaultServiceExportTo | مسموح | قابل للتكوين في ServiceEntry |
DefaultVirtualServiceExportTo | مسموح | قابل للتكوين في VirtualService |
defaultDestinationRuleExportTo | مسموح | قابل للتكوين في DestinationRule |
localityLbSetting | مسموح | قابل للتكوين في DestinationRule |
dnsRefreshRate | مسموح | - |
h2UpgradePolicy | مسموح | قابل للتكوين في DestinationRule |
تمكينPrometheusMerge | مسموح | - |
اكتشافالمحددات | مدعوم | - |
تكرار المسار | مسموح | - |
نهجHttpRetry الافتراضي | مسموح | قابل للتكوين في VirtualService |
إعدادات الخدمة | مسموح | - |
meshMTLS | مسموح | - |
عوامل tlsDefault | مسموح | - |
ingressService | مسموح | اسم خدمة Kubernetes المستخدمة لوحدة تحكم دخول istio. |
ingressSelector | مسموح | يحدد نشر البوابة التي يجب استخدامها كوحدة تحكم الدخول. يتوافق هذا الحقل مع حقل Gateway.selector، وسيتم تعيينه على أنه istio: INGRESS_SELECTOR. |
ProxyConfig (meshConfig.defaultConfig)
يتم حظر الحقول الموجودة في الوثائق المرجعية مصدر مفتوح MeshConfig غير المشمولة في الجدول التالي.
ميدان | معتمد/مسموح به | ملاحظات |
---|---|---|
tracingServiceName | مسموح | يتم تشجيع تكوين التتبع عبر واجهة برمجة تطبيقات بيانات تتبع الاستخدام. |
التصريف | مدعوم | - |
statsUdpAddress | مسموح | - |
proxyAdminPort | مسموح | - |
تتبع | مسموح | يتم تشجيع تكوين التتبع عبر واجهة برمجة تطبيقات بيانات تتبع الاستخدام. |
التزامن | مدعوم | - |
envoyAccessLogService | مسموح | يتم تشجيع تكوين التتبع عبر واجهة برمجة تطبيقات بيانات تتبع الاستخدام. |
envoyMetricsService | مسموح | يتم تشجيع تكوين مجموعة المقاييس عبر واجهة برمجة تطبيقات القياس عن بعد. |
proxyMetadata | مسموح | - |
منفذ الحالة | مسموح | - |
علامات إحصائية إضافية | مسموح | - |
proxyStatsMatcher | مسموح | - |
إنهاءDrainDuration | مدعوم | - |
معرف الشبكة | مسموح | - |
holdApplicationUntilProxyStarts | مدعوم | - |
caCertificatesPem | مسموح | - |
PrivateKeyProvider | مسموح | - |
تنبيه
نطاق دعم التكوينات: يسمح تكوين Mesh لموفري الملحقات مثل المثيلات المدارة ذاتيا من Zipkin أو Apache Skywalking بتكوينها باستخدام الوظيفة الإضافية Istio. ومع ذلك، فإن موفري الملحقات هؤلاء خارج نطاق دعم الوظيفة الإضافية Istio. تقع أي مشكلات مرتبطة بأدوات الملحق خارج حدود الدعم للوظيفة الإضافية Istio.
الأخطاء الشائعة وتلميحات استكشاف الأخطاء وإصلاحها
- تأكد من مسافة بادئة MeshConfig مع مسافات بدلا من علامات التبويب.
- تأكد من أنك تقوم بتحرير ConfigMap المشترك المحدد للمراجعة فقط (على سبيل المثال
istio-shared-configmap-asm-1-18
) وعدم محاولة تحرير ConfigMap الافتراضي (على سبيل المثالistio-asm-1-18
). - يجب أن يتبع ConfigMap الاسم
istio-shared-configmap-<asm-revision>
وأن يكون فيaks-istio-system
مساحة الاسم. - تأكد من كتابة كافة حقول MeshConfig بشكل صحيح. إذا لم يتم التعرف عليهم أو إذا لم يكونوا جزءا من القائمة المسموح بها، فإن التحكم في القبول يرفض مثل هذه التكوينات.
- عند إجراء ترقيات الكناري، تحقق من ConfigMaps الخاصة بالمراجعة للتأكد من وجود تكوينات للمراجعات المنشورة على نظام المجموعة.
- قد تزيد بعض
MeshConfig
الخيارات مثل accessLogging من استهلاك موارد Envoy، وقد يؤدي تعطيل بعض هذه الإعدادات إلى التخفيف من استخدام موارد مستوى بيانات Istio. من المستحسن أيضا استخدامdiscoverySelectors
الحقل في MeshConfig للمساعدة في تخفيف استهلاك الذاكرة ل Istiod و Envoy. concurrency
إذا تم تكوين الحقل في MeshConfig بشكل خاطئ وتعيينه إلى الصفر، فإنه يؤدي إلى استخدام Envoy لجميع الذاكرات الأساسية لوحدة المعالجة المركزية. بدلا من ذلك، إذا تم إلغاء تعيين هذا الحقل، يتم تحديد عدد مؤشرات ترابط العامل التي سيتم تشغيلها تلقائيا استنادا إلى طلبات/حدود وحدة المعالجة المركزية.- يمكن تخفيف حالات سباق الجراب والجانبية التي يبدأ فيها التطبيق قبل Envoy باستخدام
holdApplicationUntilProxyStarts
الحقل في MeshConfig.
Azure Kubernetes Service