دعم وكيل HTTP في خدمة Azure Kubernetes (AKS)
في هذه المقالة، ستتعلم كيفية تكوين مجموعات Azure Kubernetes Service (AKS) لاستخدام وكيل HTTP للوصول إلى الإنترنت الصادر.
تحتوي مجموعات AKS المنتشرة في الشبكات الظاهرية المدارة أو المخصصة على تبعيات صادرة معينة ضرورية للعمل بشكل صحيح، مما أدى إلى مشاكل في البيئات التي تتطلب الوصول إلى الإنترنت ليتم توجيهها من خلال وكلاء HTTP. لم يكن لدى العُقد نظام تمهيد تشغيل الكمبيوتر من أجل التكوين، والمتغيرات البيئية، والشهادات اللازمة للوصول إلى خدمات الإنترنت.
تضيف ميزة وكيل HTTP دعم وكيل HTTP إلى مجموعات AKS، مما يعرض واجهة مباشرة يمكنك استخدامها لتأمين حركة مرور الشبكة المطلوبة من AKS في البيئات المعتمدة على الوكيل. باستخدام هذه الميزة، يتم تكوين كل من عقد AKS والقرون لاستخدام وكيل HTTP. تُمكّن الميزة أيضًا تثبيت مصدر موثوق منه لشهادة على العُقد باعتبار ذلك جزء من نظام تمهيد تشغيل نظام مجموعة. قد تتطلب الحلول الأكثر تعقيدا إنشاء سلسلة من الثقة لإنشاء اتصالات آمنة عبر الشبكة.
تحديد الخدمة واعتباراتها
السيناريوهات التالية غير مدعومة:
- تكوينات مختلفة لوكيل لكل تجمع عقدة
- مصادقة كلمة المرور/المستخدم
- المراجع المصدقة المخصصة (CAs) لاتصال خادم API
- تكوين مجموعات AKS الحالية باستخدام وكيل HTTP غير مدعوم؛ يجب تمكين ميزة وكيل HTTP في وقت إنشاء نظام المجموعة.
- مجموعات AKS مع تجمعات عقد 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 المكون على العقد.
وكيل HTTP للوظيفة الإضافية Istio للخدمات الخارجية
إذا كنت تستخدم الوظيفة الإضافية شبكة الخدمة المستندة إلى Istio ل AKS، فيجب عليك إنشاء إدخال خدمة لتمكين تطبيقاتك في الشبكة من الوصول إلى الموارد غير المتعلقة بالمجموعة أو الموارد الخارجية عبر وكيل HTTP. على سبيل المثال:
apiVersion: networking.istio.io/v1
kind: ServiceEntry
metadata:
name: proxy
spec:
hosts:
- my-company-proxy.com # ignored
addresses:
- $PROXY_IP/32
ports:
- number: $PROXY_PORT
name: tcp
protocol: TCP
location: MESH_EXTERNAL
إنشاء ملف وتوفير قيم ل PROXY_IP
و PROXY_PORT
. يمكنك نشر إدخال الخدمة باستخدام
kubectl apply -f service_proxy.yaml
تحديث تكوين الوكيل
إشعار
إذا كان التبديل إلى وكيل جديد، يجب أن يكون الوكيل الجديد موجودا بالفعل حتى يكون التحديث ناجحا. بعد اكتمال الترقية، يمكنك حذف الوكيل القديم.
يمكنك تحديث تكوين الوكيل على نظام المجموعة باستخدام az aks update
الأمر مع تعيين المعلمة --http-proxy-config
إلى ملف JSON جديد بقيم محدثة ل httpProxy
و httpsProxy
noProxy
و و trustedCa
إذا لزم الأمر. يقوم التحديث بإدخال متغيرات بيئة جديدة في pods بالقيم أو أو أو noProxy
الجديدةhttpProxy
httpsProxy
. يجب تدوير الحجيرات للتطبيقات لالتقاطها، لأن قيم متغير البيئة يتم حقنها بواسطة إخطار على الويب للقبول المتحور. بالنسبة للمكونات ضمن 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.
Azure Kubernetes Service