Oktatóanyag: Az Azure Container Apps engedélyezése az Azure Arc-kompatibilis Kubernetesen (előzetes verzió)
Az Azure Arc-kompatibilis Kubernetes-fürtökkel létrehozhat egy Container Apps-kompatibilis egyéni helyet a helyszíni vagy a felhőbeli Kubernetes-fürtön az Azure Container Apps-alkalmazások üzembe helyezéséhez, mint bármely más régióban.
Ez az oktatóanyag bemutatja, hogyan engedélyezheti az Azure Container Appst az Arc-kompatibilis Kubernetes-fürtön. Ebben az oktatóanyagban a következőket fogja tudni:
- Csatlakoztatott fürt létrehozása.
- Egy Log Analytics-munkaterület létrehozása.
- Telepítse a Container Apps bővítményt.
- Hozzon létre egy egyéni helyet.
- Hozza létre a csatlakoztatott Azure Container Apps-környezetet.
Feljegyzés
Az előzetes verzióban az Azure Container Apps on Arc nem támogatott az éles konfigurációkban. Ez a cikk csak kiértékelési célokra kínál példakonfigurációt.
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 előfordulhat, hogy nem szeretné engedélyezni az Azure Arcot egy AKS-fürtön, mivel az már az Azure-ban van felügyelve.
Előfeltételek
- Egy Azure-fiók, aktív előfizetéssel.
- Ha még nem rendelkezik fiókkal, ingyen létrehozhat egyet.
- Telepítse az Azure CLI-t.
- Hozzáférés nyilvános vagy privát tárolóregisztrációs adatbázishoz, például az Azure Container Registryhez.
- 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.
Beállítás
Telepítse a következő Azure CLI-bővítményeket.
az extension add --name connectedk8s --upgrade --yes
az extension add --name k8s-extension --upgrade --yes
az extension add --name customlocation --upgrade --yes
az extension add --name containerapp --upgrade --yes
Regisztrálja a szükséges névtereket.
az provider register --namespace Microsoft.ExtendedLocation --wait
az provider register --namespace Microsoft.KubernetesConfiguration --wait
az provider register --namespace Microsoft.App --wait
az provider register --namespace Microsoft.OperationalInsights --wait
Állítsa be a környezeti változókat a Kubernetes-fürt üzembe helyezése alapján.
GROUP_NAME="my-arc-cluster-group"
AKS_CLUSTER_GROUP_NAME="my-aks-cluster-group"
AKS_NAME="my-aks-cluster"
LOCATION="eastus"
Csatlakoztatott fürt létrehozása
Az alábbi lépések segítenek a szolgáltatás megértésében, de éles környezetek esetén 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.
az group create --name $AKS_CLUSTER_GROUP_NAME --location $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.
az group create --name $GROUP_NAME --location $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
A Log Analytics-munkaterület hozzáférést biztosít az Azure Arc-kompatibilis Kubernetes-fürtben futó Container Apps-alkalmazások naplóihoz. A Log Analytics-munkaterület nem kötelező, de ajánlott.
Egy Log Analytics-munkaterület létrehozása.
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
A Container Apps bővítmény telepítése
Fontos
Ha az AKS-HCI-ben helyezi üzembe, győződjön meg arról, hogy a bővítmény telepítése előtt beállította a HAProxyt vagy egy egyéni terheléselosztót.
Állítsa a következő környezeti változókat a Container Apps-bővítmény kívánt nevére, a fürt névterére, amelyben az erőforrásokat ki kell helyezni, valamint a csatlakoztatott Azure Container Apps-környezet nevét. Válasszon egyedi nevet a következőnek
<connected-environment-name>
: . A csatlakoztatott környezet neve az Azure Container Apps csatlakoztatott környezetében létrehozandó alkalmazás tartománynevének része lesz.EXTENSION_NAME="appenv-ext" NAMESPACE="appplat-ns" CONNECTED_ENVIRONMENT_NAME="<connected-environment-name>"
Telepítse a Container Apps bővítményt az Azure Archoz csatlakoztatott fürtre a Log Analytics engedélyezésével. A Log Analytics később nem vehető fel a bővítménybe.
az k8s-extension create \ --resource-group $GROUP_NAME \ --name $EXTENSION_NAME \ --cluster-type connectedClusters \ --cluster-name $CLUSTER_NAME \ --extension-type 'Microsoft.App.Environment' \ --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=${CONNECTED_ENVIRONMENT_NAME}" \ --configuration-settings "envoy.annotations.service.beta.kubernetes.io/azure-load-balancer-resource-group=${AKS_CLUSTER_GROUP_NAME}" \ --configuration-settings "logProcessor.appLogs.destination=log-analytics" \ --configuration-protected-settings "logProcessor.appLogs.logAnalyticsConfig.customerId=${LOG_ANALYTICS_WORKSPACE_ID_ENC}" \ --configuration-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
Az egyéni helyhez létrehozott szolgáltatásfiók. Javasoljuk, hogy az értékre default
legyen állítva.appsNamespace
Az alkalmazásdefiníciók és -változatok létrehozásához 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étrehozandó Container Apps-bővítmény Kubernetes-környezetének neve. logProcessor.appLogs.destination
Opcionális. Alkalmazásnaplók célhelye. 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.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. Mentse a
id
Container Apps 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 befejeződik:
az resource wait --ids $EXTENSION_ID --custom "properties.provisioningState!='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
Ha többet szeretne megtudni ezekről a podokról és a rendszerben betöltött szerepükről, tekintse meg az Azure Arc áttekintését.
Egyéni hely létrehozása
Az egyéni hely egy Azure-hely, amelyet hozzárendel az Azure Container Apps csatlakoztatott környezetéhez.
Állítsa be a következő környezeti változókat az egyéni hely kívánt nevére és az Azure Archoz csatlakoztatott fürt azonosítójára.
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 a parancsot 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 Azure Container Apps csatlakoztatott környezetének létrehozása
Ahhoz, hogy alkalmazásokat hozzon létre az egyéni helyen, szüksége lesz egy Csatlakoztatott Azure Container Apps-környezetre.
Hozza létre a Container Apps csatlakoztatott környezetét:
az containerapp connected-env create \ --resource-group $GROUP_NAME \ --name $CONNECTED_ENVIRONMENT_NAME \ --custom-location $CUSTOM_LOCATION_ID \ --location $LOCATION
Ellenőrizze, hogy a Container Apps csatlakoztatott környezete 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 containerapp connected-env show --resource-group $GROUP_NAME --name $CONNECTED_ENVIRONMENT_NAME