دعم وكيل HTTP في خدمة Azure Kubernetes (AKS)

في هذه المقالة، ستتعلم كيفية تكوين مجموعات Azure Kubernetes Service (AKS) لاستخدام وكيل HTTP للوصول إلى الإنترنت الصادر.

تحتوي مجموعات AKS المنتشرة في الشبكات الظاهرية المدارة أو المخصصة على تبعيات صادرة معينة ضرورية للعمل بشكل صحيح، مما أدى إلى مشاكل في البيئات التي تتطلب الوصول إلى الإنترنت ليتم توجيهها من خلال وكلاء HTTP. لم يكن لدى العُقد نظام تمهيد تشغيل الكمبيوتر من أجل التكوين، والمتغيرات البيئية، والشهادات اللازمة للوصول إلى خدمات الإنترنت.

تضيف ميزة وكيل HTTP دعم وكيل HTTP إلى مجموعات AKS، مما يعرض واجهة مباشرة يمكنك استخدامها لتأمين حركة مرور الشبكة المطلوبة من AKS في البيئات المعتمدة على الوكيل. باستخدام هذه الميزة، يتم تكوين كل من عقد AKS والقرون لاستخدام وكيل HTTP. تُمكّن الميزة أيضًا تثبيت مصدر موثوق منه لشهادة على العُقد باعتبار ذلك جزء من نظام تمهيد تشغيل نظام مجموعة. قد تتطلب الحلول الأكثر تعقيدا إنشاء سلسلة من الثقة لإنشاء اتصالات آمنة عبر الشبكة.

تحديد الخدمة واعتباراتها

السيناريوهات التالية غير مدعومة:

  • تكوينات مختلفة لوكيل لكل تجمع عقدة
  • مصادقة كلمة المرور/المستخدم
  • المراجع المصدقة المخصصة (CAs) لاتصال خادم API
  • تكوين مجموعات AKS الحالية باستخدام وكيل HTTP غير مدعوم؛ يجب تمكين ميزة وكيل HTTP في وقت إنشاء نظام المجموعة.
  • أنظمة مجموعة تستند إلى Windows
  • تجمعات عُقد تستخدم مجموعات توفُر جهاز ظاهري (VMAS)
  • استخدام * كحرف بدل مرفق بلاحقة مجال ل noProxy

httpProxy، httpsProxyو، و trustedCa ليس لها قيمة بشكل افتراضي. يتم إدخال الحجيرات مع متغيرات البيئة التالية:

  • HTTP_PROXY
  • http_proxy
  • HTTPS_PROXY
  • https_proxy
  • NO_PROXY
  • no_proxy

لتعطيل إدخال متغيرات بيئة الوكيل، تحتاج إلى إضافة تعليق توضيحي إلى Pod باستخدام "kubernetes.azure.com/no-http-proxy-vars":"true".

قبل البدء

  • تحتاج إلى أحدث إصدار من Azure CLI. قم بتشغيل az --version للعثور على الإصدار، ثم قم بتشغيل az upgrade لترقية الإصدار. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI.
  • تحقق من ترقيات نظام مجموعة AKS المتوفرة للتأكد من تشغيل أحدث إصدار من AKS. إذا كنت بحاجة إلى الترقية، فشاهد ترقية نظام مجموعة AKS.
  • يمكن تحديث ملفات نظام التشغيل المطلوبة لتحديثات تكوين الوكيل فقط أثناء عملية ترقية صورة العقدة. بعد تكوين الوكيل، يجب ترقية صورة العقدة لتطبيق التغييرات. لمزيد من المعلومات، راجع ترقية صور عقدة AKS.

تكوين وكيل HTTP باستخدام Azure CLI

يمكنك تكوين نظام مجموعة AKS باستخدام وكيل HTTP أثناء إنشاء نظام المجموعة باستخدام az aks create الأمر وتمرير التكوين كملف JSON.

يبدو مخطط ملف التكوين بالشكل التالي:

{
  "httpProxy": "string",
  "httpsProxy": "string",
  "noProxy": [
    "string"
  ],
  "trustedCa": "string"
}
  • httpProxy: URL وكيل لاستخدامه في إنشاء اتصالات HTTP خارج نظام المجموعة. يجب أن يكون مخطط URL هو http.
  • httpsProxy: URL وكيل لاستخدامه في إنشاء اتصالات HTTP خارج نظام المجموعة. إذا لم يتم تحديده، httpProxy استخدامه لكل من اتصالات HTTP وHTTPS.
  • noProxy: قائمة بأسماء المجالات الوجهة أو المجالات أو عناوين IP أو CIDRs للشبكة الأخرى لاستبعاد الوكيل.
  • trustedCa: سلسلة تحتوي على base64 encoded محتوى شهادة CA بديل. التنسيق معتمد حاليا فقط PEM .

هام

للتوافق مع المكونات المستندة إلى Go التي تعد جزءا من نظام Kubernetes، يجب أن تدعم Subject Alternative Names(SANs) الشهادة بدلا من شهادات الاسم الشائع المهملة.

هناك اختلافات في التطبيقات حول كيفية الامتثال لمتغير http_proxyالبيئة و https_proxyو.no_proxy لا يدعم Curl وPython CIDR في no_proxy، ولكن Ruby يدعمان ذلك.

الإدخال المثال:

إشعار

يجب أن تكون شهادة المرجع المصدق هي السلسلة المرمزة base64 لمحتوى شهادة تنسيق PEM.

{
  "httpProxy": "http://myproxy.server.com:8080/", 
  "httpsProxy": "https://myproxy.server.com:8080/", 
  "noProxy": [
    "localhost",
    "127.0.0.1"
  ],
  "trustedCA": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUgvVENDQmVXZ0F3SUJB...b3Rpbk15RGszaWFyCkYxMFlscWNPbWVYMXVGbUtiZGkvWG9yR2xrQ29NRjNURHg4cm1wOURCaUIvCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0="
}

إنشاء ملف وتوفير قيم ل httpProxyو httpsProxyو.noProxy إذا كانت بيئتك تتطلب ذلك، فوفر قيمة ل trustedCa. بعد ذلك، يمكنك نشر نظام المجموعة باستخدام az aks create الأمر مع تعيين المعلمة --http-proxy-config إلى الملف الذي قمت بإنشائه. يجب تهيئة نظام المجموعة الخاص بك مع وكيل HTTP المكون على العقد.

az aks create \
    --name $clusterName \
    --resource-group $resourceGroup \
    --http-proxy-config aks-proxy-config.json \
    --generate-ssh-keys

تكوين وكيل HTTP باستخدام قالب Azure Resource Manager (ARM)

يمكنك نشر نظام مجموعة AKS باستخدام وكيل HTTP باستخدام قالب ARM. يوجد نفس المخطط المستخدم لنشر CLI في Microsoft.ContainerService/managedClusters التعريف ضمن "properties"، كما هو موضح في المثال التالي:

"properties": {
    ...,
    "httpProxyConfig": {
        "httpProxy": "string",
        "httpsProxy": "string",
        "noProxy": [
            "string"
        ],
        "trustedCa": "string"
    }
}

في القالب الخاص بك، قم بتوفير قيم ل httpProxyو httpsProxyو.noProxy إذا لزم الأمر، قم بتوفير قيمة ل trustedCa. بعد ذلك، يمكنك نشر القالب. يجب تهيئة نظام المجموعة الخاص بك مع وكيل HTTP المكون على العقد.

تحديث تكوين الوكيل

إشعار

إذا كان التبديل إلى وكيل جديد، يجب أن يكون الوكيل الجديد موجودا بالفعل حتى يكون التحديث ناجحا. بعد اكتمال الترقية، يمكنك حذف الوكيل القديم.

يمكنك تحديث تكوين الوكيل على نظام المجموعة باستخدام az aks update الأمر مع تعيين المعلمة --http-proxy-config إلى ملف JSON جديد بقيم محدثة ل httpProxyو httpsProxynoProxyو و trustedCa إذا لزم الأمر. يقوم التحديث بإدخال متغيرات بيئة جديدة في pods بالقيم أو أو أو noProxy الجديدةhttpProxyhttpsProxy. يجب تدوير الحجيرات للتطبيقات لالتقاطها، لأن قيم متغير البيئة يتم حقنها بواسطة إخطار على الويب للقبول المتحور. بالنسبة للمكونات ضمن Kubernetes، مثل الحاوية والعقدة نفسها، لا يسري هذا حتى يتم إجراء ترقية صورة العقدة.

على سبيل المثال، لنفترض أنك قمت بإنشاء ملف جديد باستخدام سلسلة base64 المشفرة من شهادة CA الجديدة المسماة aks-proxy-config-2.json. يمكنك تحديث تكوين الوكيل على نظام المجموعة الخاص بك باستخدام الأمر التالي:

az aks update --name $clusterName --resource-group $resourceGroup --http-proxy-config aks-proxy-config-2.json

ترقية صور عقدة AKS

بعد تكوين الوكيل، يجب ترقية صورة العقدة لتطبيق التغييرات. عملية ترقية صورة العقدة هي الطريقة الوحيدة لتحديث ملفات نظام التشغيل المطلوبة لتحديثات تكوين الوكيل. عملية ترقية صورة العقدة هي ترقية متجددة تقوم بتحديث صورة نظام التشغيل على كل عقدة في تجمع العقدة. تعالج وحدة التحكم AKS عملية الترقية، وهي غير متقطعة لتشغيل التطبيقات.

لترقية صور عقدة AKS، راجع ترقية صور عقدة خدمة Azure Kubernetes (AKS).

تكوين المكون الإضافي للمراقبة

يدعم وكيل HTTP مع الوظيفة الإضافية للمراقبة التكوينات التالية:

  • وكيل صادر بدون مصادقة
  • وكيل صادر مع مصادقة اسم المستخدم وكلمة المرور
  • وكيل صادر مع شهادة موثوق بها لنقطة نهاية Log Analytics

التكوينات التالية غير مدعومة:

  • المقاييس المخصصة وميزات التنبيهات الموصى بها عند استخدام وكيل مع شهادات موثوق بها

الخطوات التالية

لمزيد من المعلومات حول متطلبات الشبكة لمجموعات AKS، راجع التحكم في حركة الخروج لعقد نظام المجموعة في AKS.