Kurz: Povolení azure Container Apps v Kubernetes s podporou Azure Arc (Preview)
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 Arc. V tomto kurzu:
- 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.
Poznámka:
V produkčních konfiguracích se v produkčních konfiguracích nepodporují azure Container Apps on Arc ve verzi Preview. Tento článek obsahuje ukázkovou konfiguraci pouze pro účely vyhodnocení.
Tento kurz používá službu Azure Kubernetes Service (AKS) k poskytnutí konkrétních pokynů pro nastavení prostředí od začátku. V případě produkční úlohy ale možná nebudete chtít povolit Azure Arc v clusteru AKS, protože už je spravovaný v Azure.
Požadavky
- Účet Azure s aktivním předplatným.
- Pokud jej nemáte, můžete si jej zdarma vytvořit.
- Nainstalujte rozhraní příkazového řádku Azure CLI.
- Přístup k veřejnému nebo privátnímu registru kontejneru, jako je azure Container Registry.
Instalační program
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 remove --name containerapp
az extension add --source https://aka.ms/acaarccli/containerapp-latest-py2.py3-none-any.whl --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.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
Následující kroky vám pomůžou začít porozumět službě, ale pro produkční nasazení by se měly zobrazit jako ilustrativní, nikoli preskriptivní. Viz Rychlý start: Připojení existujícího clusteru Kubernetes do Služby Azure Arc, kde najdete obecné pokyny k vytvoření clusteru Kubernetes s podporou Azure Arc.
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
Získejte soubor kubeconfig a otestujte připojení ke clusteru. Ve výchozím nastavení se soubor kubeconfig uloží do
~/.kube/config
souboru .az aks get-credentials --resource-group $AKS_CLUSTER_GROUP_NAME --name $AKS_NAME --admin kubectl get ns
Vytvořte skupinu prostředků, která bude obsahovat vaše prostředky Azure Arc.
az group create --name $GROUP_NAME --location $LOCATION
Připojení clusteru, který jste vytvořili ve 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
Pomocí následujícího příkazu ověřte připojení. Měla by zobrazit
provisioningState
vlastnost jakoSucceeded
. 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.
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
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
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í bude 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>"
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 "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}"
Poznámka:
Pokud chcete rozšíření nainstalovat bez integrace Log Analytics, odeberte z příkazu poslední tři
--configuration-settings
parametry.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í. Doporučuje se nastavit hodnotu 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, které se vytvoří proti tomuto rozšíření. logProcessor.appLogs.destination
Nepovinné. Cíl pro protokoly aplikace. Přijme log-analytics
nebonone
zvolíte možnost žádného zákazu protokolů platformy.logProcessor.appLogs.logAnalyticsConfig.customerId
Povinné pouze v případě, že logProcessor.appLogs.destination
je nastavena hodnotalog-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 hodnotalog-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í.envoy.annotations.service.beta.kubernetes.io/azure-load-balancer-resource-group
Název skupiny prostředků, ve které se nachází cluster Azure Kubernetes Service. Platné a povinné pouze v případě, že základní cluster je Azure Kubernetes Service. 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)
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"
Můžete použít kubectl
k zobrazení podů vytvořený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.
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)
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í. To se vyžaduje, pokud jste přihlášení k rozhraní příkazového řádku pomocí instančního objektu nebo pokud jste přihlášení pomocí uživatele Microsoft Entra s omezenými oprávněními k prostředku clusteru.
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 jakoSucceeded
. Pokud ne, spusťte příkaz po minutě znovu.az customlocation show --resource-group $GROUP_NAME --name $CUSTOM_LOCATION_NAME
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.
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
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 jakoSucceeded
. Pokud ne, spusťte ho znovu po minutě.az containerapp connected-env show --resource-group $GROUP_NAME --name $CONNECTED_ENVIRONMENT_NAME