إعداد مجموعة Kubernetes الممكّنة في Azure Arc لتشغيل App Service وFunctions وLogic Apps (معاينة)
إذا كان لديك مجموعة Kubernetes تدعم Azure Arc، فإنه يمكنك استخدامها لإنشاء موقع مخصص يدعم App Service ونشر تطبيقات الويب وتطبيقات الوظائف وتطبيقات المنطق عليها.
تتيح لك Kubernetes التي تدعم Azure Arc جعل مجموعة Kubernetes المحلية أو السحابية مرئية لـ App Service وFunctions وLogic Apps في Azure. يمكنك إنشاء تطبيق والنشر إليه تمامًا مثل منطقة Azure أخرى.
المتطلبات الأساسية
إذا لم يكن لديك حساب Azure، فسجِّل الاشتراك اليوم للحصول على حساب مجاني.
راجع متطلبات وقيود المعاينة العامة. من الأهمية الخاصة متطلبات نظام المجموعة.
أضف ملحقات Azure CLI
قم بتشغيل بيئة Bash في Azure Cloud Shell.
نظرًا إلى أن أوامر CLI هذه لم تصبح بعد جزءًا من مجموعة CLI الأساسية، فأضفها مع الأوامر التالية.
az extension add --upgrade --yes --name connectedk8s
az extension add --upgrade --yes --name k8s-extension
az extension add --upgrade --yes --name customlocation
az provider register --namespace Microsoft.ExtendedLocation --wait
az provider register --namespace Microsoft.Web --wait
az provider register --namespace Microsoft.KubernetesConfiguration --wait
az extension remove --name appservice-kube
az extension add --upgrade --yes --name appservice-kube
إنشاء مجموعة متصلة
إشعار
يستخدم هذا البرنامج التعليمي Azure Kubernetes Service (AKS) لتوفير تعليمات محددة لإعداد بيئة من الصفر. ومع ذلك، بالنسبة إلى حمل عمل الإنتاج، من المحتمل ألا ترغب في تمكين Azure Arc على مجموعة AKS حيث تتم إدارتها بالفعل في Azure. ستساعدك الخطوات على البدء في فهم الخدمة، ولكن بالنسبة إلى عمليات توزيع الإنتاج، يجب أن ينظر إليها على أنها توضيحية وليست إلزامية. انظر التشغيل السريع: توصيل مجموعة Kubernetes حالية بـ Azure Arc للحصول على تعليمات عامة حول إنشاء مجموعة Kubernetes تدعم Azure Arc.
أنشئ مجموعة في Azure Kubernetes Service مع عنوان IP عام. استبدل
<group-name>
باسم مجموعة الموارد التي تريدها.AKS_CLUSTER_GROUP_NAME="<group-name>" # Name of resource group for the AKS cluster AKS_NAME="${aksClusterGroupName}-aks" # Name of the AKS cluster RESOURCE_LOCATION="eastus" # "eastus" or "westeurope" az group create -g $AKS_CLUSTER_GROUP_NAME -l $RESOURCE_LOCATION az aks create --resource-group $AKS_CLUSTER_GROUP_NAME --name $AKS_NAME --enable-aad --generate-ssh-keys
احصل على ملف kubeconfig واختبر اتصالك بالمجموعة. بشكل افتراضي، يتم حفظ ملف kubeconfig إلى
~/.kube/config
.az aks get-credentials --resource-group $AKS_CLUSTER_GROUP_NAME --name $AKS_NAME --admin kubectl get ns
أنشئ مجموعة موارد لاحتواء موارد Azure Arc الخاصة بك. استبدل
<group-name>
باسم مجموعة الموارد التي تريدها.قم بتوصيل المجموعة التي أنشأتها بـ Azure Arc.
تحقق من صحة الاتصال باستخدام الأمر التالي. يجب أن يظهر خاصية
provisioningState
على أنهاSucceeded
. إذا لم يكن الأمر كذلك، فقم بتشغيل الأمر مرة أخرى بعد دقيقة.az connectedk8s show --resource-group $GROUP_NAME --name $CLUSTER_NAME
إنشاء مساحة عمل Log Analytics
في حين أن مساحة عمل Log Analytic ليست مطلوبة لتشغيل App Service في Azure Arc، إلا أن هذه هي الطريقة التي يمكن بها للمطورين الحصول على سجلات التطبيقات لتطبيقاتهم التي تعمل في مجموعة Kubernetes التي تدعم Azure Arc.
من أجل التبسيط، أنشئ مساحة العمل الآن.
قم بتشغيل الأوامر التالية للحصول على معرّف مساحة العمل المرمَّز والمفتاح المشترك لمساحة عمل Log Analytics الحالية. أنت تحتاج إليهما في الخطوة التالية.
LOG_ANALYTICS_WORKSPACE_ID=$(az monitor log-analytics workspace show \ --resource-group $GROUP_NAME \ --workspace-name $WORKSPACE_NAME \ --query customerId \ --output tsv) LOG_ANALYTICS_WORKSPACE_ID_ENC=$(printf %s $LOG_ANALYTICS_WORKSPACE_ID | base64 -w0) # Needed for the next step LOG_ANALYTICS_KEY=$(az monitor log-analytics workspace get-shared-keys \ --resource-group $GROUP_NAME \ --workspace-name $WORKSPACE_NAME \ --query primarySharedKey \ --output tsv) LOG_ANALYTICS_KEY_ENC=$(printf %s $LOG_ANALYTICS_KEY | base64 -w0) # Needed for the next step
تثبيت ملحق App Service
قم بتعيين متغيرات البيئة التالية للاسم المطلوب لـ ملحق App Service، ومساحة اسم المجموعة التي يجب توفير الموارد فيها، واسم بيئة App Service Kubernetes. اختر اسما فريدا ل
<kube-environment-name>
، لأنه جزء من اسم المجال للتطبيق الذي تم إنشاؤه في بيئة App Service Kubernetes.قم بتثبيت ملحق App Service على مجموعتك المتصلة بـ Azure Arc، مع تمكين Log Analytics. مرة أخرى، في حين أن Log Analytics ليست مطلوبة، لا يمكنك إضافتها إلى الملحق لاحقًا، لذلك من الأسهل القيام بذلك الآن.
az k8s-extension create \ --resource-group $GROUP_NAME \ --name $EXTENSION_NAME \ --cluster-type connectedClusters \ --cluster-name $CLUSTER_NAME \ --extension-type 'Microsoft.Web.Appservice' \ --release-train stable \ --auto-upgrade-minor-version true \ --scope cluster \ --release-namespace $NAMESPACE \ --configuration-settings "Microsoft.CustomLocation.ServiceAccount=default" \ --configuration-settings "appsNamespace=${NAMESPACE}" \ --configuration-settings "clusterName=${KUBE_ENVIRONMENT_NAME}" \ --configuration-settings "keda.enabled=true" \ --configuration-settings "buildService.storageClassName=default" \ --configuration-settings "buildService.storageAccessMode=ReadWriteOnce" \ --configuration-settings "customConfigMap=${NAMESPACE}/kube-environment-config" \ --configuration-settings "envoy.annotations.service.beta.kubernetes.io/azure-load-balancer-resource-group=${aksClusterGroupName}" \ --configuration-settings "logProcessor.appLogs.destination=log-analytics" \ --config-protected-settings "logProcessor.appLogs.logAnalyticsConfig.customerId=${LOG_ANALYTICS_WORKSPACE_ID_ENC}" \ --config-protected-settings "logProcessor.appLogs.logAnalyticsConfig.sharedKey=${LOG_ANALYTICS_KEY_ENC}"
إشعار
لتثبيت الامتداد دون تكامل Log Analytics، قم بإزالة المعلمات الثلاث الأخيرة
--configuration-settings
من الأمر.يصف الجدول التالي المعلمات المختلفة
--configuration-settings
عند تشغيل الأمر:المعلمة الوصف Microsoft.CustomLocation.ServiceAccount
حساب الخدمة الذي يجب إنشاؤه للموقع المخصص الذي تم إنشاؤه. يُوصى بضبط ذلك على القيمة default
.appsNamespace
مساحة الاسم من أجل توفير تعريفات ووحدات التطبيق. يجب أن تطابق تلك الموجودة في مساحة اسم إصدار الملحق. clusterName
اسم بيئة App Service Kubernetes التي تم إنشاؤها مقابل هذا الملحق. keda.enabled
ما إذا كان ينبغي تثبيت KEDA على مجموعة Kubernetes. تقبل true
أوfalse
.buildService.storageClassName
اسم فئة التخزين لخدمة الإنشاء لتخزين البيانات الاصطناعية للإنشاء. قيمة مثل default
تحدد فئة تسمىdefault
، وليس أي فئة يتم تمييزها على أنها افتراضية. الافتراضي هو فئة تخزين صالحة لـ AKS وAKS HCI ولكن قد لا يكون مخصصًا للتوزيعات/الأنظمة الأساسية الأخرى.buildService.storageAccessMode
وضع الوصول لاستخدامه مع فئة التخزين المسماة. تقبل ReadWriteOnce
أوReadWriteMany
.customConfigMap
اسم خريطة التكوين التي سوف يتم تعيينها بواسطة بيئة App Service Kubernetes. حاليا، يجب أن يكون <namespace>/kube-environment-config
، مع<namespace>
استبدال بقيمةappsNamespace
.envoy.annotations.service.beta.kubernetes.io/azure-load-balancer-resource-group
اسم مجموعة الموارد التي توجد فيها مجموعة Azure Kubernetes Service. صالحة ومطلوبة فقط عندما تكون المجموعة الأساسية هي Azure Kubernetes Service. logProcessor.appLogs.destination
اختياري. تقبل log-analytics
أوnone
، واختيار لا شيء يعطل سجلات النظام الأساسي.logProcessor.appLogs.logAnalyticsConfig.customerId
مطلوبة فقط عند تعيين logProcessor.appLogs.destination
علىlog-analytics
. معرّف مساحة عمل Log analytics المرمَّزة بمجموعة base64. يجب تكوين هذه المعلمة كإعداد محميّ.logProcessor.appLogs.logAnalyticsConfig.sharedKey
مطلوبة فقط عند تعيين logProcessor.appLogs.destination
علىlog-analytics
. المفتاح المشترك لمساحة عمل Log analytics المرمَّزة بمجموعة base64. يجب تكوين هذه المعلمة كإعداد محميّ.احفظ خاصية
id
لملحق App Service لاستخدامها في وقت لاحق.انتظر حتى يتم تثبيت الملحق بالكامل قبل المتابعة. يمكنك أن تجعل جلستك الطرفية تنتظر حتى يكتمل ذلك من خلال تشغيل الأمر التالي:
az resource wait --ids $EXTENSION_ID --custom "properties.installState!='Pending'" --api-version "2020-07-01-preview"
يمكنك استخدام kubectl
لمشاهدة الحجيرات التي تم إنشاؤها في مجموعة Kubernetes الخاصة بك:
kubectl get pods -n $NAMESPACE
يمكنك معرفة المزيد عن هذه الوحدات ودورها في النظام من الوحدات التي تم إنشاؤها بواسطة ملحق App Service.
إنشاء موقع مخصص
يُستخدم الموقع المخصص في Azure لتعيين بيئة App Service Kubernetes.
قم بتعيين متغيرات البيئة التالية للاسم المطلوب للموقع المخصص ولمعرّف المجموعة المتصلة بـ Azure Arc.
قم بإنشاء الموقع المخصص:
az customlocation create \ --resource-group $GROUP_NAME \ --name $CUSTOM_LOCATION_NAME \ --host-resource-id $CONNECTED_CLUSTER_ID \ --namespace $NAMESPACE \ --cluster-extension-ids $EXTENSION_ID
إشعار
إذا واجهت مشكلات في إنشاء موقع مخصص على نظام المجموعة، فقد تحتاج إلى تمكين ميزة الموقع المخصص على نظام المجموعة. هذا مطلوب إذا تم تسجيل الدخول إلى CLI باستخدام كيان الخدمة أو إذا قمت بتسجيل الدخول باستخدام مستخدم Microsoft Entra بأذونات مقيدة على مورد نظام المجموعة.
تحقق من صحة إنشاء الموقع المخصص بنجاح باستخدام الأمر التالي. يجب أن يظهر الإخراج خاصية
provisioningState
على أنهاSucceeded
. إذا لم يكن كذلك، فقم بتشغيله مرة أخرى بعد دقيقة.az customlocation show --resource-group $GROUP_NAME --name $CUSTOM_LOCATION_NAME
احفظ معرّف الموقع المخصص للخطوة التالية.
إنشاء بيئة App Service Kubernetes
قبل أن تتمكن من البدء في إنشاء تطبيقات على الموقع المخصص، أنت بحاجة إلى بيئة App Service Kubernetes.
أنشئ بيئة App Service Kubernetes:
تحقق من صحة إنشاء بيئة App Service Kubernetes بنجاح باستخدام الأمر التالي. يجب أن يظهر الإخراج خاصية
provisioningState
على أنهاSucceeded
. إذا لم يكن كذلك، فقم بتشغيله مرة أخرى بعد دقيقة.az appservice kube show --resource-group $GROUP_NAME --name $KUBE_ENVIRONMENT_NAME