Azure Arc-kompatibilis Kubernetes-fürt beállítása az App Service, a Functions és a Logic Apps (előzetes verziójának) futtatásához
Ha rendelkezik Azure Arc-kompatibilis Kubernetes-fürtel, létrehozhat egy App Service-kompatibilis egyéni helyet , és webalkalmazásokat, függvényalkalmazásokat és logikai alkalmazásokat helyezhet üzembe rajta.
Az Azure Arc-kompatibilis Kubernetes lehetővé teszi, hogy a helyszíni vagy a felhőbeli Kubernetes-fürtöt láthatóvá tegye az App Service, a Functions és a Logic Apps számára az Azure-ban. Létrehozhat egy alkalmazást, és üzembe helyezheti azt, ugyanúgy, mint egy másik Azure-régióban.
Előfeltételek
Ha nem rendelkezik Azure-fiókkal, regisztráljon ma egy ingyenes fiókra.
Tekintse át a nyilvános előzetes verzió követelményeit és korlátozásait . Különösen fontosak a fürtkövetelmények.
Azure CLI-bővítmények hozzáadása
Indítsa el a Bash-környezetet az Azure Cloud Shellben.
Mivel ezek a parancssori felületi parancsok még nem részei az alapvető PARANCSSOR-készletnek, vegye fel őket az alábbi parancsokkal.
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
Csatlakoztatott fürt létrehozása
Feljegyzés
Ez az oktatóanyag az Azure Kubernetes Service -t (AKS) használja, hogy konkrét útmutatást adjon a környezet nulláról történő beállításához. Éles számítási feladatok esetén azonban valószínűleg nem szeretné engedélyezni az Azure Arcot egy AKS-fürtön, mivel az már az Azure-ban van felügyelve. A lépések segítenek a szolgáltatás megismerésében, de az éles környezetekben azokat szemléltetőnek, nem pedig előírónak kell tekinteni. Tekintse meg a rövid útmutatót: Meglévő Kubernetes-fürt csatlakoztatása az Azure Archoz az Azure Arc-hoz az Azure Arc-kompatibilis Kubernetes-fürt létrehozásával kapcsolatos általános utasításokért.
Hozzon létre egy fürtöt az Azure Kubernetes Service-ben nyilvános IP-címmel. Cserélje le
<group-name>
a kívánt erőforráscsoport-névre.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
Kérje le a kubeconfig fájlt, és tesztelje a fürthöz való kapcsolatot. Alapértelmezés szerint a kubeconfig fájl a következőre lesz mentve
~/.kube/config
: .az aks get-credentials --resource-group $AKS_CLUSTER_GROUP_NAME --name $AKS_NAME --admin kubectl get ns
Hozzon létre egy erőforráscsoportot, amely tartalmazza az Azure Arc-erőforrásokat. Cserélje le
<group-name>
a kívánt erőforráscsoport-névre.GROUP_NAME="<group-name>" # Name of resource group for the connected cluster az group create -g $GROUP_NAME -l $RESOURCE_LOCATION
Csatlakoztassa a létrehozott fürtöt az Azure Archoz.
CLUSTER_NAME="${GROUP_NAME}-cluster" # Name of the connected cluster resource az connectedk8s connect --resource-group $GROUP_NAME --name $CLUSTER_NAME
Ellenőrizze a kapcsolatot a következő paranccsal. A tulajdonságnak a
provisioningState
következőképpen kell megjelennieSucceeded
: . Ha nem, futtassa újra a parancsot egy perc múlva.az connectedk8s show --resource-group $GROUP_NAME --name $CLUSTER_NAME
Log Analytics-munkaterület létrehozása
Bár az App Service Azure Arcban való futtatásához nincs szükség napló-elemzési munkaterületre, a fejlesztők így kérhetnek le alkalmazásnaplókat az Azure Arc-kompatibilis Kubernetes-fürtön futó alkalmazásaikhoz.
Az egyszerűség kedvéért most hozza létre a munkaterületet.
WORKSPACE_NAME="$GROUP_NAME-workspace" # Name of the Log Analytics workspace az monitor log-analytics workspace create \ --resource-group $GROUP_NAME \ --workspace-name $WORKSPACE_NAME
Futtassa az alábbi parancsokat egy meglévő Log Analytics-munkaterület kódolt munkaterület-azonosítójának és megosztott kulcsának lekéréséhez. A következő lépésben szüksége lesz rájuk.
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
Az App Service-bővítmény telepítése
Adja meg a következő környezeti változókat az App Service-bővítmény kívánt nevéhez, a fürt névteréhez, amelyben az erőforrásokat ki kell helyezni, valamint az App Service Kubernetes-környezet nevét. Válasszon egyedi nevet,
<kube-environment-name>
mert az az App Service Kubernetes-környezetben létrehozott alkalmazás tartománynevének része.EXTENSION_NAME="appservice-ext" # Name of the App Service extension NAMESPACE="appservice-ns" # Namespace in your cluster to install the extension and provision resources KUBE_ENVIRONMENT_NAME="<kube-environment-name>" # Name of the App Service Kubernetes environment resource
Telepítse az App Service-bővítményt az Azure Archoz csatlakoztatott fürtre, és engedélyezve van a Log Analytics. Bár a Log Analyticsre nincs szükség, később nem adhatja hozzá a bővítményhez, így most már egyszerűbben elvégezhető.
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}"
Feljegyzés
Ha Log Analytics-integráció nélkül szeretné telepíteni a bővítményt, távolítsa el az utolsó három
--configuration-settings
paramétert a parancsból.Az alábbi táblázat a parancs futtatásakor a különböző
--configuration-settings
paramétereket ismerteti:Paraméter Leírás Microsoft.CustomLocation.ServiceAccount
A létrehozott egyéni helyhez létrehozandó szolgáltatásfiók. Javasoljuk, hogy ezt az értéket default
állítsa be.appsNamespace
Az alkalmazásdefiníciók és podok kiépítéséhez használt névtér. Meg kell egyeznie a bővítmény kiadási névterével. clusterName
A bővítményhez létrehozott App Service Kubernetes-környezet neve. keda.enabled
Hogy a KEDA-t telepíteni kell-e a Kubernetes-fürtre. Elfogadja vagy true
false
.buildService.storageClassName
A buildelési összetevők tárolására szolgáló buildszolgáltatás tárolási osztályának neve. Egy ilyen default
érték egy elnevezettdefault
osztályt határoz meg, és nem az alapértelmezettként megjelölt osztályt. Az alapértelmezett érték érvényes tárolási osztály az AKS-hez és az AKS-hez az Azure Local-on, de előfordulhat, hogy más disztribúciókhoz/platformokhoz nem.buildService.storageAccessMode
A névvel ellátott tárosztályhoz használandó hozzáférési mód . Elfogadja vagy ReadWriteOnce
ReadWriteMany
.customConfigMap
Az App Service Kubernetes-környezet által beállított konfigurációs térkép neve. Jelenleg a következő értékre kell <namespace>/kube-environment-config
váltania<namespace>
appsNamespace
: .envoy.annotations.service.beta.kubernetes.io/azure-load-balancer-resource-group
Annak az erőforráscsoportnak a neve, amelyben az Azure Kubernetes Service-fürt található. Csak akkor érvényes és kötelező, ha a mögöttes fürt az Azure Kubernetes Service. logProcessor.appLogs.destination
Opcionális. Az elfogadás vagy log-analytics
none
a nem választás letiltja a platformnaplókat.logProcessor.appLogs.logAnalyticsConfig.customerId
Csak akkor szükséges, ha logProcessor.appLogs.destination
be van állítva.log-analytics
Az alap64 kódolású Log Analytics-munkaterület azonosítója. Ezt a paramétert védett beállításként kell konfigurálni.logProcessor.appLogs.logAnalyticsConfig.sharedKey
Csak akkor szükséges, ha logProcessor.appLogs.destination
be van állítva.log-analytics
Az alap64 kódolású Log Analytics-munkaterület megosztott kulcsa. Ezt a paramétert védett beállításként kell konfigurálni.Mentse az
id
App Service-bővítmény tulajdonságát későbbi használatra.EXTENSION_ID=$(az k8s-extension show \ --cluster-type connectedClusters \ --cluster-name $CLUSTER_NAME \ --resource-group $GROUP_NAME \ --name $EXTENSION_NAME \ --query id \ --output tsv)
A folytatás előtt várja meg, amíg a bővítmény teljesen telepítve lesz. Az alábbi parancs futtatásával megvárhatja a terminálmunkamenetet, amíg ez befejeződik:
az resource wait --ids $EXTENSION_ID --custom "properties.installState!='Pending'" --api-version "2020-07-01-preview"
A Kubernetes-fürtben létrehozott podokat a következő kubectl
módon tekintheti meg:
kubectl get pods -n $NAMESPACE
Ezekről a podokról és a rendszerben betöltött szerepükről az App Service bővítmény által létrehozott podokból tudhat meg többet.
Egyéni hely létrehozása
Az Egyéni Hely az Azure-ban az App Service Kubernetes-környezet hozzárendelésére szolgál.
Adja meg az alábbi környezeti változókat az egyéni hely kívánt nevéhez és az Azure Arc-hez csatlakoztatott fürt azonosítójának.
CUSTOM_LOCATION_NAME="my-custom-location" # Name of the custom location CONNECTED_CLUSTER_ID=$(az connectedk8s show --resource-group $GROUP_NAME --name $CLUSTER_NAME --query id --output tsv)
Hozza létre az egyéni helyet:
az customlocation create \ --resource-group $GROUP_NAME \ --name $CUSTOM_LOCATION_NAME \ --host-resource-id $CONNECTED_CLUSTER_ID \ --namespace $NAMESPACE \ --cluster-extension-ids $EXTENSION_ID
Feljegyzés
Ha problémákat tapasztal egy egyéni hely fürtben való létrehozásakor, előfordulhat, hogy engedélyeznie kell az egyéni hely funkciót a fürtön. Erre akkor van szükség, ha szolgáltatásnévvel jelentkezik be a parancssori felületre, vagy ha korlátozott engedélyekkel rendelkező Microsoft Entra-felhasználóval van bejelentkezve a fürterőforrásra.
Ellenőrizze, hogy az egyéni hely sikeresen létrejött-e az alábbi paranccsal. A kimenetnek a tulajdonságot a
provisioningState
következőként kell megjelenítenieSucceeded
: . Ha nem, futtassa újra egy perc múlva.az customlocation show --resource-group $GROUP_NAME --name $CUSTOM_LOCATION_NAME
Mentse az egyéni helyazonosítót a következő lépéshez.
CUSTOM_LOCATION_ID=$(az customlocation show \ --resource-group $GROUP_NAME \ --name $CUSTOM_LOCATION_NAME \ --query id \ --output tsv)
Az App Service Kubernetes-környezet létrehozása
Ahhoz, hogy alkalmazásokat hozzon létre az egyéni helyen, egy App Service Kubernetes-környezetre van szüksége.
Hozza létre az App Service Kubernetes-környezetet:
az appservice kube create \ --resource-group $GROUP_NAME \ --name $KUBE_ENVIRONMENT_NAME \ --custom-location $CUSTOM_LOCATION_ID
Ellenőrizze, hogy az App Service Kubernetes-környezet sikeresen létrejött-e az alábbi paranccsal. A kimenetnek a tulajdonságot a
provisioningState
következőként kell megjelenítenieSucceeded
: . Ha nem, futtassa újra egy perc múlva.az appservice kube show --resource-group $GROUP_NAME --name $KUBE_ENVIRONMENT_NAME