إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
في هذا المقال، ستتعلم كيفية تكوين عناقيد خدمة Azure Kubernetes (AKS) لاستخدام بروكسي HTTP للوصول إلى الإنترنت الخارجي.
تحتوي مجموعات AKS المنتشرة في الشبكات الظاهرية المدارة أو المخصصة على تبعيات صادرة معينة ضرورية للعمل بشكل صحيح، مما أدى إلى مشاكل في البيئات التي تتطلب الوصول إلى الإنترنت ليتم توجيهها من خلال وكلاء HTTP. لم يكن لدى العُقد نظام تمهيد تشغيل الكمبيوتر من أجل التكوين، والمتغيرات البيئية، والشهادات اللازمة للوصول إلى خدمات الإنترنت.
تضيف ميزة وكيل HTTP دعم وكيل HTTP إلى مجموعات AKS، مما يعرض واجهة مباشرة يمكنك استخدامها لتأمين حركة مرور الشبكة المطلوبة من AKS في البيئات المعتمدة على الوكيل. باستخدام هذه الميزة، يتم تكوين كل من عقد AKS والقرون لاستخدام وكيل HTTP. تُمكّن الميزة أيضًا تثبيت مصدر موثوق منه لشهادة على العُقد باعتبار ذلك جزء من نظام تمهيد تشغيل نظام مجموعة. قد تتطلب الحلول الأكثر تعقيدا إنشاء سلسلة من الثقة لإنشاء اتصالات آمنة عبر الشبكة.
تحديد الخدمة واعتباراتها
السيناريوهات التالية غير مدعومة:
- تكوينات مختلفة لوكيل لكل تجمع عقدة
- مصادقة كلمة المرور/المستخدم
- المراجع المصدقة المخصصة (CAs) لاتصال خادم API
- لا يمكن تحديد أكثر من 20 شهادة معتمدة موثوقة
- مجموعات AKS مع مجموعات عقد Windows
- تجمعات عُقد تستخدم مجموعات توفُر جهاز ظاهري (VMAS)
- استخدام * كحرف بدل مرفق بلاحقة مجال ل noProxy
- يجب أن تكون مضيفات noProxy متوافقة مع RFC 1123
httpProxy، httpsProxyو، و trustedCa ليس لها قيمة بشكل افتراضي. يتم إدخال الحجيرات مع متغيرات البيئة التالية:
HTTP_PROXYhttp_proxyHTTPS_PROXYhttps_proxyNO_PROXYno_proxy
لتعطيل إدخال متغيرات بيئة الوكيل، تحتاج إلى إضافة تعليق توضيحي إلى Pod باستخدام "kubernetes.azure.com/no-http-proxy-vars":"true".
قبل البدء
استخدم بيئة باش في Azure Cloud Shell. لمزيد من المعلومات، راجع ابدأ مع Azure Cloud Shell.
إذا كنت تفضل تشغيل أوامر مرجعية لواجهة الواجهة محليا، install Azure CLI. إذا كنت تعمل على Windows أو macOS، فكر في تشغيل Azure CLI في حاوية Docker. لمزيد من المعلومات، راجع كيفية تشغيل Azure CLI في حاوية Docker.
إذا كنت تستخدم تثبيتا محليا، سجل الدخول إلى Azure CLI باستخدام أمر az login. لإنهاء عملية المصادقة، اتبع الخطوات المعروضة في جهازك. لخيارات تسجيل الدخول الأخرى، راجع المصادقة إلى Azure باستخدام Azure CLI.
عندما يطلب منك ذلك، قم بتثبيت إضافة Azure CLI عند الاستخدام الأول. لمزيد من المعلومات حول الإضافات، راجع استخدم وإدارة الإضافات باستخدام Azure CLI.
يُرجى تشغيل إصدار az للوصول إلى الإصدار والمكتبات التابعة التي تم تثبيتها. للتحديث لآخر إصدار، يُرجى تشغيل تحديث az.
- تعطيل بروكسي HTTP يتطلب الحد الأدنى من CLI إصدار 2.85.0.
إنشاء ملف تكوين بقيم وكيل HTTP
إنشاء ملف وتوفير قيم ل httpProxyو httpsProxyو.noProxy إذا كانت بيئتك تتطلب ذلك، فوفر قيمة ل trustedCa.
يبدو مخطط ملف التكوين بالشكل التالي:
{
"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. حد 20 شهادات.
هام
للتوافق مع المكونات المستندة إلى Go التي تعد جزءا من نظام Kubernetes، يجب أنبدلا من شهادات الاسم الشائع المهملة.
هناك اختلافات في التطبيقات حول كيفية الامتثال لمتغير http_proxyالبيئة و https_proxyو.no_proxy Curl و Python لا يدعمان CIDR في no_proxy، لكن Ruby تدعم.
الإدخال المثال:
{
"httpProxy": "http://myproxy.server.com:8080",
"httpsProxy": "https://myproxy.server.com:8080",
"noProxy": [
"localhost",
"127.0.0.1"
],
"trustedCa": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUgvVENDQmVXZ0F3SUJB...S0tLS0="
}
إنشاء عنقود مع تكوين بروكسي HTTP باستخدام Azure CLI
يمكنك تكوين نظام مجموعة AKS باستخدام تكوين وكيل HTTP أثناء إنشاء نظام المجموعة.
استخدم
az aks createالأمر وقم بتمرير التكوين الخاص بك كملف JSON.az aks create \ --name $clusterName \ --resource-group $resourceGroup \ --http-proxy-config aks-proxy-config.json \ --generate-ssh-keysيجب تهيئة نظام المجموعة الخاص بك مع وكيل HTTP المكون على العقد.
تحقق من وجود تكوين وكيل HTTP على الجراب والعقد عن طريق التحقق من أن متغيرات البيئة تحتوي على القيم المناسبة ل
http_proxy،https_proxy، واستخدامno_proxykubectl describe podالأمر.kubectl describe {any pod} -n kube-systemللتحقق من صحة تعيين متغيرات الوكيل في الجراب، يمكنك التحقق من متغيرات البيئة الموجودة على العقد.
kubectl get nodes kubectl node-shell {node name} cat /etc/environment
تحديث تكوين وكيل HTTP
يمكنك تحديث تكوينات وكيل HTTP على المجموعات الموجودة، بما في ذلك:
- تحديث نظام مجموعة موجود لتمكين وكيل HTTP وإضافة تكوين وكيل HTTP جديد.
- تحديث نظام مجموعة موجود لتغيير تكوين وكيل HTTP.
اعتبارات تحديث وكيل HTTP
--http-proxy-config يجب تعيين المعلمة إلى ملف JSON جديد بقيم محدثة ل httpProxyو httpsProxynoProxyو و trustedCa إذا لزم الأمر. يقوم التحديث بإدخال متغيرات بيئة جديدة في pods بالقيم أو أو أو httpProxy الجديدةhttpsProxynoProxy. يجب تدوير الحجيرات للتطبيقات لالتقاطها، لأن قيم متغير البيئة يتم حقنها بواسطة إخطار على الويب للقبول المتحور.
إشعار
إذا كان التبديل إلى وكيل جديد، يجب أن يكون الوكيل الجديد موجودا بالفعل حتى يكون التحديث ناجحا. بعد اكتمال الترقية، يمكنك حذف الوكيل القديم.
تحديث نظام مجموعة لتحديث وكيل HTTP أو تمكينه
قم بتمكين تكوينات وكيل HTTP أو تحديثها على نظام مجموعة موجود باستخدام
az aks updateالأمر.على سبيل المثال، لنفترض أنك قمت بإنشاء ملف جديد باستخدام سلسلة base64 المشفرة من شهادة CA الجديدة المسماة aks-proxy-config-2.json. يمكنك تحديث تكوين الوكيل على نظام المجموعة الخاص بك باستخدام الأمر التالي:
az aks update --name $clusterName --resource-group $resourceGroup --http-proxy-config aks-proxy-config-2.json
تنبيه
يقوم AKS تلقائيا بإعادة تصوير جميع تجمعات العقد في نظام المجموعة عند تحديث تكوين الوكيل على نظام المجموعة الخاص بك باستخدام az aks update الأمر. يمكنك استخدام ميزانيات تعطيل الجراب (PDBs) لحماية تعطيل القرون الهامة أثناء إعادة التصويب.
تحقق من وجود تكوين وكيل HTTP على الجراب والعقد عن طريق التحقق من أن متغيرات البيئة تحتوي على القيم المناسبة ل
http_proxy،https_proxy، واستخدامno_proxykubectl describe podالأمر.kubectl describe {any pod} -n kube-systemللتحقق من صحة تعيين متغيرات الوكيل في الجراب، يمكنك التحقق من متغيرات البيئة الموجودة على العقد.
kubectl get nodes kubectl node-shell {node name} cat /etc/environment
تعطيل بروكسي HTTP على مجموعة موجودة
تحديث نظام المجموعة لتعطيل وكيل HTTP
قم بتحديث نظام المجموعة الخاص بك لتعطيل وكيل HTTP باستخدام
az aks updateالأمر with--disable-http-proxyflag.az aks update --name $clusterName --resource-group $resourceGroup --disable-http-proxy
تنبيه
يقوم AKS تلقائيا بإعادة تصوير جميع تجمعات العقد في نظام المجموعة عند تحديث تكوين الوكيل على نظام المجموعة الخاص بك باستخدام az aks update الأمر. يمكنك استخدام ميزانيات تعطيل الجراب (PDBs) لحماية تعطيل القرون الهامة أثناء إعادة التصويب.
تحقق من تعطيل وكيل HTTP عن طريق التحقق من صحة عدم تعيين تكوين وكيل HTTP على الجراب والعقد باستخدام
kubectl describe podالأمر.kubectl describe {any pod} -n kube-systemللتحقق من صحة عدم تعيين متغيرات الوكيل في الجراب، يمكنك التحقق من متغيرات البيئة الموجودة على العقد.
kubectl get nodes kubectl node-shell {node name} cat /etc/environment
إعادة تمكين وكيل HTTP على مجموعة موجودة
عند إنشاء نظام مجموعة، يتم تمكين وكيل HTTP افتراضيا. بمجرد تعطيل وكيل HTTP على نظام مجموعة، يتم حفظ تكوين الوكيل في قاعدة البيانات ولكن تتم إزالة متغيرات الوكيل من الجراب والعقد.
لإعادة تمكين وكيل HTTP على نظام مجموعة موجود، استخدم az aks update الأمر مع العلامة --enable-http-proxy .
az aks update --name $clusterName --resource-group $resourceGroup --enable-http-proxy
تنبيه
يقوم AKS تلقائيا بإعادة تصوير جميع تجمعات العقد في نظام المجموعة عند تحديث تكوين الوكيل على نظام المجموعة الخاص بك باستخدام az aks update الأمر. يمكنك استخدام ميزانيات تعطيل الجراب (PDBs) لحماية تعطيل القرون الهامة أثناء إعادة التصويب.
هام
إذا كان لديك تكوين وكيل HTTP على نظام المجموعة الخاص بك قبل تعطيله، يتم تطبيق تكوين وكيل HTTP الحالي تلقائيا عند إعادة تمكين وكيل HTTP على تلك المجموعة. نوصي بالتحقق من التكوين للتأكد من أنه يلبي متطلباتك الحالية قبل المتابعة. إذا كنت ترغب في تغيير تكوين وكيل HTTP بعد إعادة تمكين وكيل HTTP، فاتبع الخطوات لتحديث تكوين وكيل HTTP على مجموعة موجودة.
تكوين تكوين بروكسي HTTP باستخدام قالب Azure Resource Manager (ARM)
يمكنك نشر نظام مجموعة AKS باستخدام وكيل HTTP باستخدام قالب ARM.
مراجعة المتطلبات لكل معلمة:
-
httpProxy: URL وكيل لاستخدامه في إنشاء اتصالات HTTP خارج نظام المجموعة. يجب أن يكون مخطط URL هوhttp. -
httpsProxy: URL وكيل لاستخدامه في إنشاء اتصالات HTTP خارج نظام المجموعة. إذا لم يتم تحديده،httpProxyاستخدامه لكل من اتصالات HTTP وHTTPS. -
noProxy: قائمة بأسماء المجالات الوجهة أو المجالات أو عناوين IP أو CIDRs للشبكة الأخرى لاستبعاد الوكيل. -
trustedCa: سلسلة تحتوي علىbase64 encodedمحتوى شهادة CA بديل. التنسيق معتمد حاليا فقطPEM.
هام
للتوافق مع المكونات المستندة إلى Go التي تعد جزءا من نظام Kubernetes، يجب أنبدلا من شهادات الاسم الشائع المهملة.
هناك اختلافات في التطبيقات حول كيفية الامتثال لمتغير
http_proxyالبيئة وhttps_proxyو.no_proxyCurl و Python لا يدعمان CIDR فيno_proxy، لكن Ruby تدعم.-
قم بإنشاء قالب بمعلمات وكيل HTTP. في القالب الخاص بك، قم بتوفير قيم ل
httpProxyوhttpsProxyو.noProxyإذا لزم الأمر، قم بتوفير قيمة لtrustedCa. نفس المخطط المستخدم لنشر CLI موجود في تعريفMicrosoft.ContainerService/managedClustersتحت"properties"، كما هو موضح في المثال التالي:"properties": { ..., "httpProxyConfig": { "enabled": "true", "httpProxy": "string", "httpsProxy": "string", "noProxy": [ "string" ], "trustedCa": "string" } }انشر قالب ARM الخاص بك باستخدام تكوين وكيل HTTP. يجب تهيئة نظام المجموعة الخاص بك مع وكيل HTTP المكون على العقد.
تحديث تكوين وكيل HTTP
يمكنك تحديث تكوينات وكيل HTTP على المجموعات الموجودة، بما في ذلك:
- تحديث نظام مجموعة موجود لتمكين وكيل HTTP وإضافة تكوين وكيل HTTP جديد.
- تحديث نظام مجموعة موجود لتغيير تكوين وكيل HTTP.
اعتبارات تحديث وكيل HTTP
--http-proxy-config يجب تعيين المعلمة إلى ملف JSON جديد بقيم محدثة ل httpProxyو httpsProxynoProxyو و trustedCa إذا لزم الأمر. يقوم التحديث بإدخال متغيرات بيئة جديدة في pods بالقيم أو أو أو httpProxy الجديدةhttpsProxynoProxy. يجب تدوير الحجيرات للتطبيقات لالتقاطها، لأن قيم متغير البيئة يتم حقنها بواسطة إخطار على الويب للقبول المتحور.
إشعار
إذا كان التبديل إلى وكيل جديد، يجب أن يكون الوكيل الجديد موجودا بالفعل حتى يكون التحديث ناجحا. بعد اكتمال الترقية، يمكنك حذف الوكيل القديم.
تحديث قالب ARM لتكوين وكيل HTTP
في القالب الخاص بك، قم بتوفير قيم جديدة ل
httpProxy،httpsProxyوnoProxy. إذا لزم الأمر، قم بتوفير قيمة لtrustedCa.نفس المخطط المستخدم لنشر CLI موجود في تعريف
Microsoft.ContainerService/managedClustersتحت"properties"، كما هو موضح في المثال التالي:"properties": { ..., "httpProxyConfig": { "enabled": "true", "httpProxy": "string", "httpsProxy": "string", "noProxy": [ "string" ], "trustedCa": "string" } }انشر قالب ARM الخاص بك باستخدام تكوين وكيل HTTP المحدث.
تنبيه
يقوم AKS تلقائيا بإعادة تصوير جميع تجمعات العقد في نظام المجموعة عند تحديث تكوين الوكيل على نظام المجموعة الخاص بك باستخدام az aks update الأمر. يمكنك استخدام ميزانيات تعطيل الجراب (PDBs) لحماية تعطيل القرون الهامة أثناء إعادة التصويب.
تحقق من وجود تكوين وكيل HTTP على الجراب والعقد عن طريق التحقق من أن متغيرات البيئة تحتوي على القيم المناسبة ل
http_proxy،https_proxy، واستخدامno_proxykubectl describe podالأمر.kubectl describe {any pod} -n kube-systemللتحقق من صحة تعيين متغيرات الوكيل في الجراب، يمكنك التحقق من متغيرات البيئة الموجودة على العقد.
kubectl get nodes kubectl node-shell {node name} cat /etc/environment
تعطيل بروكسي HTTP على مجموعة موجودة باستخدام قالب ARM
تحديث نظام المجموعة لتعطيل وكيل HTTP
قم بتحديث قالب ARM لنظام المجموعة الخاص بك لتعطيل وكيل HTTP عن طريق الإعداد
enabledإلىfalse. نفس المخطط المستخدم لنشر CLI موجود في تعريفMicrosoft.ContainerService/managedClustersتحت"properties"، كما هو موضح في المثال التالي:"properties": { ..., "httpProxyConfig": { "enabled": "false", } }انشر قالب ARM الخاص بك مع تعطيل وكيل HTTP.
تنبيه
يقوم AKS تلقائيا بإعادة تصوير جميع تجمعات العقد في نظام المجموعة عند تحديث تكوين الوكيل على نظام المجموعة الخاص بك باستخدام az aks update الأمر. يمكنك استخدام ميزانيات تعطيل الجراب (PDBs) لحماية تعطيل القرون الهامة أثناء إعادة التصويب.
تحقق من تعطيل وكيل HTTP عن طريق التحقق من عدم تعيين تكوين وكيل HTTP على الجراب والعقد باستخدام
kubectl describe podالأمر.kubectl describe {any pod} -n kube-systemللتحقق من صحة عدم تعيين متغيرات الوكيل في الجراب، يمكنك التحقق من متغيرات البيئة الموجودة على العقد.
kubectl get nodes kubectl node-shell {node name} cat /etc/environment
إعادة تمكين وكيل HTTP على مجموعة موجودة
عند إنشاء نظام مجموعة، يتم تمكين وكيل HTTP افتراضيا. بمجرد تعطيل وكيل HTTP على نظام مجموعة، لم يعد بإمكانك إضافة تكوينات وكيل HTTP إلى نظام المجموعة هذا.
إذا كنت ترغب في إعادة تمكين وكيل HTTP، فاتبع الخطوات لتحديث تكوين وكيل HTTP باستخدام قالب ARM.
وكيل 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
تكوين المكون الإضافي للمراقبة
يدعم وكيل HTTP مع الوظيفة الإضافية للمراقبة التكوينات التالية:
- وكيل صادر بدون مصادقة
- وكيل صادر مع شهادة موثوقة لنقطة نهاية Log Analytics
التكوين التالي غير مدعوم:
- المقاييس المخصصة وميزات التنبيهات الموصى بها عند استخدام وكيل مع شهادات موثوق بها
الخطوات التالية
لمزيد من المعلومات حول متطلبات الشبكة لمجموعات AKS، راجع التحكم في حركة الخروج لعقد نظام المجموعة في AKS.