Megosztás a következőn keresztül:


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

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.

  1. 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
    
  2. 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
    
  3. Hozzon létre egy erőforráscsoportot, amely tartalmazza az Azure Arc-erőforrásokat.

    az group create --name $GROUP_NAME --location $LOCATION
    
  4. 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
    
  5. Ellenőrizze a kapcsolatot a következő paranccsal. A tulajdonságnak a provisioningState következőképpen kell megjelennie Succeeded: . 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.

  1. 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
    
  2. 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.

  1. Á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>"
    
  2. 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 defaultlegyen á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 nonea 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.
  3. 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)
    
  4. 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.

  1. Á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)
    
  2. 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.

  3. 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ítenie Succeeded: . Ha nem, futtassa újra a parancsot egy perc múlva.

    az customlocation show --resource-group $GROUP_NAME --name $CUSTOM_LOCATION_NAME
    
  4. 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.

  1. 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
    
  2. 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ítenie Succeeded: . Ha nem, futtassa újra egy perc múlva.

    az containerapp connected-env show --resource-group $GROUP_NAME --name $CONNECTED_ENVIRONMENT_NAME
    

Következő lépések