Sdílet prostřednictvím


Kurz: Povolení azure Container Apps v Kubernetes s podporou Azure Arc

S clustery Kubernetes s podporou Služby Kubernetes s podporou Služby Azure Arc můžete ve svém místním nebo cloudovém clusteru Kubernetes vytvořit vlastní umístění s povolenou službou Container Apps, abyste nasadí aplikace Azure Container Apps stejně jako jakoukoli jinou oblast.

V tomto kurzu se dozvíte, jak povolit Azure Container Apps v clusteru Kubernetes s podporou Služby Azure Arc. V tomto kurzu se naučíte:

  • Vytvořte připojený cluster.
  • Vytvoříte pracovní prostor služby Log Analytics
  • Nainstalujte rozšíření Container Apps.
  • Vytvořte vlastní umístění.
  • Vytvořte připojené prostředí Azure Container Apps.

Požadavky

Než začnete, ujistěte se, že máte splněné následující požadavky:

Nastavení

Nainstalujte následující rozšíření Azure CLI.

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

Zaregistrujte požadované obory názvů.

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.Web --wait
az provider register --namespace Microsoft.OperationalInsights --wait

Nastavte proměnné prostředí na základě nasazení clusteru Kubernetes.

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

Vytvoření připojeného clusteru

Tyto pokyny jsou určené pro účely vyhodnocení a výuky. Informace o produkčních nasazeních najdete v tématu Rychlý start: Připojení existujícího clusteru Kubernetes ke službě Azure Arc a obecné pokyny k vytvoření clusteru Kubernetes s podporou Azure Arc.

Pokud chcete začít se službou, pomocí následujícího postupu vytvořte cluster Azure Kubernetes Service (AKS) a připojte ho ke službě Azure Arc:

  1. Vytvořte cluster ve službě 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. Získejte soubor kubeconfig a otestujte připojení ke clusteru. Ve výchozím nastavení se soubor kubeconfig uloží do ~/.kube/configsouboru .

    az aks get-credentials --resource-group $AKS_CLUSTER_GROUP_NAME --name $AKS_NAME --admin
    
    kubectl get ns
    
  3. Vytvořte skupinu prostředků, která bude obsahovat vaše prostředky Azure Arc.

    az group create --name $GROUP_NAME --location $LOCATION
    
  4. Připojte cluster, který jste vytvořili, ke službě Azure Arc.

    CLUSTER_NAME="${GROUP_NAME}-cluster" # Name of the connected cluster resource
    
    az connectedk8s connect --resource-group $GROUP_NAME --name $CLUSTER_NAME
    
  5. Pomocí následujícího příkazu ověřte připojení. Měla by zobrazit provisioningState vlastnost jako Succeeded. Pokud ne, spusťte příkaz znovu po minutě.

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

Vytvoření pracovního prostoru služby Log Analytics

Pracovní prostor služby Log Analytics poskytuje přístup k protokolům pro aplikace Container Apps spuštěné v clusteru Kubernetes s podporou Azure Arc. Pracovní prostor služby Log Analytics je volitelný, ale doporučuje se.

  1. Vytvoříte pracovní prostor služby Log Analytics

    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. Spuštěním následujících příkazů získejte kódované ID pracovního prostoru a sdílený klíč pro existující pracovní prostor služby Log Analytics. Budete je potřebovat v dalším kroku.

    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
    

Instalace rozšíření Container Apps

Důležité

Pokud se nasazuje do AKS v Azure Local, před pokusem o instalaci rozšíření se ujistěte, že jste nastavili HAProxy nebo vlastní nástroj pro vyrovnávání zatížení . Můžete také použít az containerapp arc setup-core-dns --distro AksAzureLocal k nastavení základního dns pro místní kontexty.

  1. Nastavte následující proměnné prostředí na požadovaný název rozšíření Container Apps, obor názvů clusteru, ve kterém se mají prostředky zřídit, a název připojeného prostředí Azure Container Apps. Zvolte jedinečný název pro <connected-environment-name>. Název připojeného prostředí je součástí názvu domény aplikace, kterou vytvoříte v připojeném prostředí Azure Container Apps.

    EXTENSION_NAME="appenv-ext"
    NAMESPACE="appplat-ns"
    CONNECTED_ENVIRONMENT_NAME="<connected-environment-name>"
    
  2. Nainstalujte rozšíření Container Apps do clusteru připojeného ke službě Azure Arc s povolenou službou Log Analytics. Log Analytics není možné přidat do rozšíření později.

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

    Poznámka:

    Pokud chcete rozšíření nainstalovat bez integrace Log Analytics, odeberte z příkazu poslední tři --configuration-settings parametry.

    U clusterů, které místo standardního nástroje pro vyrovnávání zatížení AKS používají vlastní nástroj pro vyrovnávání zatížení, zadejte po nastavení nástroje pro vyrovnávání zatížení následující parametr:

    --configuration-settings "loadBalancerIp=<LOAD_BALANCER_INGRESS_IP>"
    

    Nahraďte <LOAD_BALANCER_INGRESS_IP> skutečnou IP adresou příchozího přenosu dat přiřazenou vašemu nástroji pro vyrovnávání zatížení.

    Následující tabulka popisuje různé --configuration-settings parametry při spuštění příkazu:

    Parametr Popis
    Microsoft.CustomLocation.ServiceAccount Účet služby vytvořený pro vlastní umístění. Nastavte hodnotu na default.
    appsNamespace Obor názvů použitý k vytvoření definic a revizí aplikace. Musí odpovídat oboru názvů vydané verze rozšíření.
    clusterName Název prostředí Kubernetes rozšíření Container Apps vytvořené pro toto rozšíření.
    logProcessor.appLogs.destination Nepovinné. Cíl pro protokoly aplikace. Přijme log-analytics nebo nonezvolíte možnost žádného zákazu protokolů platformy.
    logProcessor.appLogs.logAnalyticsConfig.customerId Povinné pouze v případě, že logProcessor.appLogs.destination je nastavena hodnota log-analytics. ID pracovního prostoru služby Log Analytics kódované podle base64. Tento parametr by měl být nakonfigurovaný jako chráněné nastavení.
    logProcessor.appLogs.logAnalyticsConfig.sharedKey Povinné pouze v případě, že logProcessor.appLogs.destination je nastavena hodnota log-analytics. Sdílený klíč pracovního prostoru Log Analytics kódovaný base64. Tento parametr by měl být nakonfigurovaný jako chráněné nastavení.
    loadBalancerIp IP adresa příchozího přenosu dat nástroje pro vyrovnávání zatížení.
  3. id Uložte vlastnost rozšíření Container Apps pro pozdější použití.

    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. Než budete pokračovat, počkejte, až se rozšíření plně nainstaluje. Relaci terminálu můžete nechat počkat, až se dokončí, spuštěním následujícího příkazu:

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

Slouží kubectl k zobrazení podů spuštěných v clusteru Kubernetes:

kubectl get pods -n $NAMESPACE

Další informace o těchto podech a jejich roli v systému najdete v přehledu služby Azure Arc.

Vytvoření vlastního umístění

Vlastní umístění je umístění Azure, které přiřadíte k připojenému prostředí Azure Container Apps.

  1. Nastavte následující proměnné prostředí na požadovaný název vlastního umístění a ID clusteru připojeného ke službě Azure Arc.

    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. Vytvořte vlastní umístění:

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

    Poznámka:

    Pokud máte problémy s vytvořením vlastního umístění v clusteru, možná budete muset ve svém clusteru povolit funkci vlastního umístění. Tuto funkci povolte, když jste přihlášeni do CLI, pomocí principála služby nebo uživatele Microsoft Entra s omezenými oprávněními k prostředku clusteru.

  3. Pomocí následujícího příkazu ověřte, že se vlastní umístění úspěšně vytvořilo. Výstup by měl zobrazit provisioningState vlastnost jako Succeeded. Pokud ne, spusťte příkaz po minutě znovu.

    az customlocation show --resource-group $GROUP_NAME --name $CUSTOM_LOCATION_NAME
    
  4. Uložte ID vlastního umístění pro další krok.

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

Vytvoření připojeného prostředí Azure Container Apps

Než začnete vytvářet aplikace ve vlastním umístění, potřebujete připojené prostředí Azure Container Apps.

  1. Vytvořte připojené prostředí Container Apps:

    az containerapp connected-env create \
        --resource-group $GROUP_NAME \
        --name $CONNECTED_ENVIRONMENT_NAME \
        --custom-location $CUSTOM_LOCATION_ID \
        --location $LOCATION
    
  2. Pomocí následujícího příkazu ověřte, že se úspěšně vytvořilo připojené prostředí Container Apps. Výstup by měl zobrazit provisioningState vlastnost jako Succeeded. Pokud ne, spusťte ho znovu po minutě.

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

Další kroky