مشاركة عبر


تكوين الوظيفة الإضافية لشبكة الخدمة المستندة إلى Istio لخدمة Azure Kubernetes

يستخدم Istio مفتوح المصدر MeshConfig لتعريف الإعدادات على مستوى الشبكة لشبكة خدمة Istio. تعتمد الوظيفة الإضافية لمجموعة الخدمة المستندة إلى Istio ل AKS على أعلى MeshConfig وتصنف الخصائص المختلفة على أنها مدعومة ومسمحة ومحظرة.

تتناول هذه المقالة كيفية تكوين الوظيفة الإضافية لشبكة الخدمة المستندة إلى Istio لخدمة Azure Kubernetes ونهج الدعم المطبق على مثل هذا التكوين.

المتطلبات الأساسية

يفترض هذا الدليل أنك اتبعت الوثائق لتمكين الوظيفة الإضافية Istio على نظام مجموعة AKS.

إعداد التكوين على نظام المجموعة

  1. تعرف على مراجعة 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"
    }
    
  2. إنشاء 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.