الوصول إلى موارد Kubernetes باستخدام مدخل Microsoft Azure
في هذه المقالة، ستتعلم كيفية الوصول إلى موارد Azure Kubernetes Service (AKS) وإدارتها باستخدام مدخل Microsoft Azure.
قبل البدء
لعرض موارد Kubernetes في مدخل Azure، تحتاج إلى نظام مجموعة AKS. يتم دعم أي نظام مجموعة، ولكن إذا كنت تستخدم تكامل Microsoft Entra، يجب أن تستخدم مجموعتك تكامل Microsoft Entra المدار بواسطة AKS. إذا كان نظام المجموعة يستخدم معرف Microsoft Entra القديم، يمكنك ترقية نظام المجموعة في المدخل أو باستخدام Azure CLI. يمكنك أيضاً استخدام مدخل Azure لإنشاء نظام مجموعة AKS جديد.
عرض موارد Kubernetes
من قائمة الخدمة، حدد موارد Kubernetes. تعرض قائمة موارد Kubernetes الفئات التالية:
- تعرض مساحات الأسماء معلومات حول مساحات أسماء نظام المجموعة.
- أحمال العمل تعرض معلومات حول عمليات النشر والجرابات ومجموعات النسخ المتماثلة والمجموعات ذات الحالة ومجموعات الخدمات الخفية والمهام ووظائف cron التي تم نشرها في نظام مجموعتك.
- الخدمات والدخول تعرض جميع خدمات نظام مجموعتك وموارد الدخول.
- التخزين يعرض فئات التخزين في Azure ومعلومات وحدة التخزين الدائمة.
- التكوين يُظهر خرائط التكوين والأسرار الخاصة بنظام مجموعتك.
- تعرض الموارد المخصصة أي موارد مخصصة تم نشرها في نظام المجموعة الخاص بك.
- تعرض الأحداث جميع الأحداث المتعلقة بالمجموعة الخاصة بك.
- يسمح لك أمر التشغيل باستدعاء الأوامر عن بعد، مثل
kubectl
وhelm
، على نظام المجموعة الخاص بك من خلال واجهة برمجة تطبيقات Azure دون الاتصال مباشرة بالمجموعة.
توزيع نموذج التطبيق
في هذا القسم، نقوم بنشر تطبيق Azure Store من التشغيل السريع ل AKS.
تواصل مع مجموعتك
لنشر تطبيق Azure Store، تحتاج إلى الاتصال بمجموعة AKS الخاصة بك. اتبع هذه الخطوات للاتصال بالمجموعة باستخدام مدخل Microsoft Azure:
- من صفحة Overview في نظام مجموعة AKS، حدد Connect.
- اتبع الإرشادات للاتصال بالمجموعة باستخدام الأمر Cloud Shell أو Azure CLI أو Run.
نشر تطبيق Azure Store
من قائمة موارد Kubernetes، حدد الخدمات والدخول.
حدد إنشاء>تطبيق YAML.
انسخ YAML التالي والصقه في المحرر:
apiVersion: apps/v1 kind: Deployment metadata: name: rabbitmq spec: replicas: 1 selector: matchLabels: app: rabbitmq template: metadata: labels: app: rabbitmq spec: nodeSelector: "kubernetes.io/os": linux containers: - name: rabbitmq image: mcr.microsoft.com/mirror/docker/library/rabbitmq:3.10-management-alpine ports: - containerPort: 5672 name: rabbitmq-amqp - containerPort: 15672 name: rabbitmq-http env: - name: RABBITMQ_DEFAULT_USER value: "username" - name: RABBITMQ_DEFAULT_PASS value: "password" resources: requests: cpu: 10m memory: 128Mi limits: cpu: 250m memory: 256Mi volumeMounts: - name: rabbitmq-enabled-plugins mountPath: /etc/rabbitmq/enabled_plugins subPath: enabled_plugins volumes: - name: rabbitmq-enabled-plugins configMap: name: rabbitmq-enabled-plugins items: - key: rabbitmq_enabled_plugins path: enabled_plugins --- apiVersion: v1 data: rabbitmq_enabled_plugins: | [rabbitmq_management,rabbitmq_prometheus,rabbitmq_amqp1_0]. kind: ConfigMap metadata: name: rabbitmq-enabled-plugins --- apiVersion: v1 kind: Service metadata: name: rabbitmq spec: selector: app: rabbitmq ports: - name: rabbitmq-amqp port: 5672 targetPort: 5672 - name: rabbitmq-http port: 15672 targetPort: 15672 type: ClusterIP --- apiVersion: apps/v1 kind: Deployment metadata: name: order-service spec: replicas: 1 selector: matchLabels: app: order-service template: metadata: labels: app: order-service spec: nodeSelector: "kubernetes.io/os": linux containers: - name: order-service image: ghcr.io/azure-samples/aks-store-demo/order-service:latest ports: - containerPort: 3000 env: - name: ORDER_QUEUE_HOSTNAME value: "rabbitmq" - name: ORDER_QUEUE_PORT value: "5672" - name: ORDER_QUEUE_USERNAME value: "username" - name: ORDER_QUEUE_PASSWORD value: "password" - name: ORDER_QUEUE_NAME value: "orders" - name: FASTIFY_ADDRESS value: "0.0.0.0" resources: requests: cpu: 1m memory: 50Mi limits: cpu: 75m memory: 128Mi initContainers: - name: wait-for-rabbitmq image: busybox command: ['sh', '-c', 'until nc -zv rabbitmq 5672; do echo waiting for rabbitmq; sleep 2; done;'] resources: requests: cpu: 1m memory: 50Mi limits: cpu: 75m memory: 128Mi --- apiVersion: v1 kind: Service metadata: name: order-service spec: type: ClusterIP ports: - name: http port: 3000 targetPort: 3000 selector: app: order-service --- apiVersion: apps/v1 kind: Deployment metadata: name: product-service spec: replicas: 1 selector: matchLabels: app: product-service template: metadata: labels: app: product-service spec: nodeSelector: "kubernetes.io/os": linux containers: - name: product-service image: ghcr.io/azure-samples/aks-store-demo/product-service:latest ports: - containerPort: 3002 resources: requests: cpu: 1m memory: 1Mi limits: cpu: 1m memory: 7Mi --- apiVersion: v1 kind: Service metadata: name: product-service spec: type: ClusterIP ports: - name: http port: 3002 targetPort: 3002 selector: app: product-service --- apiVersion: apps/v1 kind: Deployment metadata: name: store-front spec: replicas: 1 selector: matchLabels: app: store-front template: metadata: labels: app: store-front spec: nodeSelector: "kubernetes.io/os": linux containers: - name: store-front image: ghcr.io/azure-samples/aks-store-demo/store-front:latest ports: - containerPort: 8080 name: store-front env: - name: VUE_APP_ORDER_SERVICE_URL value: "http://order-service:3000/" - name: VUE_APP_PRODUCT_SERVICE_URL value: "http://product-service:3002/" resources: requests: cpu: 1m memory: 200Mi limits: cpu: 1000m memory: 512Mi --- apiVersion: v1 kind: Service metadata: name: store-front spec: ports: - port: 80 targetPort: 8080 selector: app: store-front type: LoadBalancer
حدد إضافة.
بمجرد انتهاء التطبيق من النشر، سترى الخدمات التالية في قائمة الخدمات :
- خدمة الطلب
- خدمة المنتج
- أرنب
- واجهة المتجر
تحليل مراقبة النشر
تمكين الوظيفة الإضافية للمراقبة على نظام مجموعة AKS
يمكن لمجموعات AKS مع تمكين Container Insights الوصول إلى رؤى التوزيع المختلفة في مدخل Microsoft Azure. إذا لم يكن لديك مراقبة ممكنة على نظام المجموعة الخاص بك، يمكنك تمكينها باستخدام الخطوات التالية:
من قائمة الخدمة لمورد نظام مجموعة AKS، حدد Monitoring>Insights>Configure monitoring.
في صفحة Configure Container Insights ، حدد Configure.
قد يستغرق حل المراقبة بضع دقائق لنشر البيانات والبدء في جمعها.
عرض نتائج تحليلات التوزيع
- من قائمة الخدمة لمورد نظام مجموعة AKS، حدد Workloads.
- حدد توزيعا من القائمة لعرض نتائج تحليلات التوزيع، مثل استخدام وحدة المعالجة المركزية والذاكرة.
إشعار
يمكنك أيضا تحديد Monitoring>Insights لعرض المزيد من المعلومات المتعمقة حول عقد وحاويات محددة.
تنظيف الموارد
إذا لم تعد بحاجة إلى تطبيق Azure Store، يمكنك حذف الخدمات لتجنب تكبد تكاليف Azure.
- من قائمة موارد Kubernetes، حدد الخدمات والدخول.
- حدد الخدمات التي تريد حذفها، ثم حدد حذف.
استكشاف الأخطاء وإصلاحها
الوصول غير المصرح به
للوصول إلى موارد Kubernetes، تحتاج إلى الوصول إلى مجموعة AKS وواجهة برمجة تطبيقات Kubernetes وكائنات Kubernetes. تأكد من أنك إما مسؤول نظام مجموعة أو مستخدم لديه الأذونات المناسبة للوصول إلى نظام مجموعة AKS. لمزيد من المعلومات، راجع خيارات الوصول والهوية ل AKS.
تمكين عرض المورد
قد تحتاج إلى تمكين عرض مورد Kubernetes للمجموعات الموجودة.
تلميح
يمكنك إضافة ميزة AKS لنطاقات IP المعتمدة لخادم API للحد من وصول خادم واجهة برمجة التطبيقات إلى نقطة النهاية العامة لجدار الحماية فقط. خيار آخر هو تحديث لتضمين --api-server-authorized-ip-ranges
/-ApiServerAccessAuthorizedIpRange
الوصول إلى كمبيوتر عميل محلي أو نطاق عنوان IP الذي تستعرض منه مدخل Microsoft Azure. للسماح بهذا الوصول، تحتاج إلى عنوان IPv4 العام للكمبيوتر. يمكنك العثور على هذا العنوان باستخدام أوامر Azure CLI أو Azure PowerShell التالية، أو يمكنك البحث في "ما هو عنوان IP الخاص بي" في المستعرض الخاص بك.
استرداد عنوان IP الخاص بك باستخدام الأمر التالي:
CURRENT_IP=$(dig +short myip.opendns.com @resolver1.opendns.com)
أضف عنوان IP الخاص بك إلى قائمة AKS المعتمدة
az aks update
باستخدام الأمر مع المعلمة--api-server-authorized-ip-ranges
.az aks update --resource-group <resource-group-name> --name <aks-cluster-name> --api-server-authorized-ip-ranges $CURRENT_IP/32
الخطوات التالية
توضح لك هذه المقالة كيفية الوصول إلى موارد Kubernetes من مدخل Microsoft Azure. لمزيد من المعلومات حول AKS، المفاهيم الأساسية لخدمة Azure Kubernetes (AKS).
Azure Kubernetes Service