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.
- Zkontrolujte požadavky a omezení verze Public Preview. Zvláštní důležitost jsou požadavky na cluster.
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.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 ke službě 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ř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
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
Důležité
Pokud se nasazuje do AKS-HCI , před pokusem o instalaci rozšíření se ujistěte, že jste nastavili HAProxy nebo vlastní nástroj pro vyrovnávání zatížení.
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