Share via


Självstudie: Aktivera Azure Container Apps på Azure Arc-aktiverade Kubernetes (förhandsversion)


Med Azure Arc-aktiverade Kubernetes-kluster kan du skapa en containerappaktiverad anpassad plats i ditt lokala eller molnbaserade Kubernetes-kluster för att distribuera dina Azure Container Apps-program på samma sätt som i andra regioner.

Den här självstudien visar hur du aktiverar Azure Container Apps i ditt Arc-aktiverade Kubernetes-kluster. I den här självstudien kommer du att:

  • Skapa ett anslutet kluster.
  • Skapa en Log Analytics-arbetsyta.
  • Installera containerapptillägget.
  • Skapa en anpassad plats.
  • Skapa den anslutna Azure Container Apps-miljön.

Kommentar

Under förhandsversionen stöds inte Azure Container Apps på Arc i produktionskonfigurationer. Den här artikeln innehåller en exempelkonfiguration endast i utvärderingssyfte.

I den här självstudien används Azure Kubernetes Service (AKS) för att ge konkreta instruktioner för att konfigurera en miljö från grunden. För en produktionsarbetsbelastning kanske du dock inte vill aktivera Azure Arc i ett AKS-kluster eftersom det redan hanteras i Azure.

Förutsättningar

Konfiguration

Installera följande Azure CLI-tillägg.

az extension add --name connectedk8s  --upgrade --yes
az extension add --name k8s-extension --upgrade --yes
az extension add --name customlocation --upgrade --yes
az extension remove --name containerapp
az extension add --source https://aka.ms/acaarccli/containerapp-latest-py2.py3-none-any.whl --yes

Registrera de nödvändiga namnrymderna.

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

Ange miljövariabler baserat på kubernetes-klusterdistributionen.

GROUP_NAME="my-arc-cluster-group"
AKS_CLUSTER_GROUP_NAME="my-aks-cluster-group"
AKS_NAME="my-aks-cluster"
LOCATION="eastus"

Skapa ett anslutet kluster

Följande steg hjälper dig att komma igång med att förstå tjänsten, men för produktionsdistributioner bör de ses som illustrativa, inte normativa. Se Snabbstart: Anslut ett befintligt Kubernetes-kluster till Azure Arc för allmänna instruktioner om hur du skapar ett Azure Arc-aktiverat Kubernetes-kluster.

  1. Skapa ett kluster i Azure Kubernetes Service.

    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. Hämta kubeconfig-filen och testa anslutningen till klustret. Som standard sparas kubeconfig-filen till ~/.kube/config.

    az aks get-credentials --resource-group $AKS_CLUSTER_GROUP_NAME --name $AKS_NAME --admin
    
    kubectl get ns
    
  3. Skapa en resursgrupp som ska innehålla dina Azure Arc-resurser.

    az group create --name $GROUP_NAME --location $LOCATION
    
  4. Anslut klustret som du skapade i Azure Arc.

    CLUSTER_NAME="${GROUP_NAME}-cluster" # Name of the connected cluster resource
    
    az connectedk8s connect --resource-group $GROUP_NAME --name $CLUSTER_NAME
    
  5. Verifiera anslutningen med följande kommando. Den bör visa egenskapen provisioningState som Succeeded. Annars kör du kommandot igen efter en minut.

    az connectedk8s show --resource-group $GROUP_NAME --name $CLUSTER_NAME
    

Skapa en Log Analytics-arbetsyta

En Log Analytics-arbetsyta ger åtkomst till loggar för Container Apps-program som körs i Det Azure Arc-aktiverade Kubernetes-klustret. En Log Analytics-arbetsyta är valfri, men rekommenderas.

  1. Skapa en Log Analytics-arbetsyta.

    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. Kör följande kommandon för att hämta det kodade arbetsyte-ID:t och den delade nyckeln för en befintlig Log Analytics-arbetsyta. Du behöver dem i nästa steg.

    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
    

Installera containerapptillägget

  1. Ange följande miljövariabler till önskat namn på containerapptillägget, klusternamnområdet där resurser ska etableras och namnet på den anslutna Azure Container Apps-miljön. Välj ett unikt namn för <connected-environment-name>. Det anslutna miljönamnet kommer att ingå i domännamnet för appen som du skapar i den anslutna Azure Container Apps-miljön.

    EXTENSION_NAME="appenv-ext"
    NAMESPACE="appplat-ns"
    CONNECTED_ENVIRONMENT_NAME="<connected-environment-name>"
    
  2. Installera Container Apps-tillägget till ditt Azure Arc-anslutna kluster med Log Analytics aktiverat. Log Analytics kan inte läggas till i tillägget senare.

    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}"
    

    Kommentar

    Om du vill installera tillägget utan Log Analytics-integrering tar du bort de tre --configuration-settings sista parametrarna från kommandot.

    I följande tabell beskrivs de olika --configuration-settings parametrarna när du kör kommandot:

    Parameter Beskrivning
    Microsoft.CustomLocation.ServiceAccount Tjänstkontot som skapats för den anpassade platsen. Vi rekommenderar att det är inställt på värdet default.
    appsNamespace Namnområdet som används för att skapa appdefinitioner och revisioner. Den måste matcha namnområdet för tilläggsversionen.
    clusterName Namnet på kubernetes-miljön för Container Apps-tillägget som ska skapas mot det här tillägget.
    logProcessor.appLogs.destination Valfritt. Mål för programloggar. log-analytics Accepterar eller none, om du väljer ingen inaktiveras plattformsloggar.
    logProcessor.appLogs.logAnalyticsConfig.customerId Krävs endast när logProcessor.appLogs.destination är inställt på log-analytics. Det base64-kodade Log Analytics-arbetsyte-ID:t. Den här parametern ska konfigureras som en skyddad inställning.
    logProcessor.appLogs.logAnalyticsConfig.sharedKey Krävs endast när logProcessor.appLogs.destination är inställt på log-analytics. Den delade nyckeln för den base64-kodade Log Analytics-arbetsytan. Den här parametern ska konfigureras som en skyddad inställning.
    envoy.annotations.service.beta.kubernetes.io/azure-load-balancer-resource-group Namnet på resursgruppen där Azure Kubernetes Service-klustret finns. Giltig och krävs endast när det underliggande klustret är Azure Kubernetes Service.
  3. id Spara egenskapen för Container Apps-tillägget för senare.

    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. Vänta tills tillägget har installerats helt innan du fortsätter. Du kan låta terminalsessionen vänta tills den har slutförts genom att köra följande kommando:

    az resource wait --ids $EXTENSION_ID --custom "properties.provisioningState!='Pending'" --api-version "2020-07-01-preview"
    

Du kan använda kubectl för att se poddar som har skapats i ditt Kubernetes-kluster:

kubectl get pods -n $NAMESPACE

Mer information om dessa poddar och deras roll i systemet finns i Översikt över Azure Arc.

Skapa en anpassad plats

Den anpassade platsen är en Azure-plats som du tilldelar till den anslutna Azure Container Apps-miljön.

  1. Ange följande miljövariabler till önskat namn på den anpassade platsen och för ID:t för det Azure Arc-anslutna klustret.

    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. Skapa den anpassade platsen:

    az customlocation create \
        --resource-group $GROUP_NAME \
        --name $CUSTOM_LOCATION_NAME \
        --host-resource-id $CONNECTED_CLUSTER_ID \
        --namespace $NAMESPACE \
        --cluster-extension-ids $EXTENSION_ID
    

    Kommentar

    Om du har problem med att skapa en anpassad plats i klustret kan du behöva aktivera funktionen för anpassad plats i klustret. Detta krävs om du är inloggad i CLI med hjälp av ett tjänsthuvudnamn eller om du är inloggad med en Microsoft Entra-användare med begränsad behörighet för klusterresursen.

  3. Kontrollera att den anpassade platsen har skapats med följande kommando. Utdata ska visa egenskapen provisioningState som Succeeded. Annars kör du kommandot igen efter en minut.

    az customlocation show --resource-group $GROUP_NAME --name $CUSTOM_LOCATION_NAME
    
  4. Spara det anpassade plats-ID:t för nästa steg.

    CUSTOM_LOCATION_ID=$(az customlocation show \
        --resource-group $GROUP_NAME \
        --name $CUSTOM_LOCATION_NAME \
        --query id \
        --output tsv)
    

Skapa den anslutna Azure Container Apps-miljön

Innan du kan börja skapa appar på den anpassade platsen behöver du en ansluten Azure Container Apps-miljö.

  1. Skapa den anslutna miljön containerappar:

    az containerapp connected-env create \
        --resource-group $GROUP_NAME \
        --name $CONNECTED_ENVIRONMENT_NAME \
        --custom-location $CUSTOM_LOCATION_ID \
        --location $LOCATION
    
  2. Kontrollera att den anslutna miljön containerappar har skapats med följande kommando. Utdata ska visa egenskapen provisioningState som Succeeded. Annars kör du den igen efter en minut.

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

Nästa steg