Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Avec les clusters Kubernetes avec Azure Arc, vous pouvez créer un emplacement personnalisé activé par Container Apps dans votre cluster Kubernetes local ou cloud pour déployer vos applications Azure Container Apps comme vous le feriez dans n’importe quelle autre région.
Ce tutoriel montre comment activer Azure Container Apps sur un cluster Kubernetes avec Azure Arc. Dans ce tutoriel, vous allez :
- Créez un cluster connecté.
- Créez un espace de travail Log Analytics.
- Installez l’extension Container Apps.
- Créer un emplacement personnalisé.
- Créez l’environnement connecté Azure Container Apps.
Prérequis
Avant de commencer, vérifiez que vous disposez des conditions préalables suivantes :
- Compte Azure avec un abonnement actif.
- Si vous n’en avez pas, vous pouvez en créer un gratuitement.
- Installez Azure CLI.
- Accédez à un registre de conteneurs public ou privé, comme Azure Container Registry.
Programme d’installation
Installez les extensions Azure CLI suivantes.
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
Inscrivez les espaces de noms requis.
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
Définissez des variables d’environnement en fonction de votre déploiement de cluster Kubernetes.
GROUP_NAME="my-arc-cluster-group"
AKS_CLUSTER_GROUP_NAME="my-aks-cluster-group"
AKS_NAME="my-aks-cluster"
LOCATION="eastus"
Créer un cluster connecté
Ces instructions sont destinées à des fins d’évaluation et d’apprentissage. Pour les déploiements de production, reportez-vous au guide de démarrage rapide : Connecter un cluster Kubernetes existant à Azure Arc pour obtenir des instructions générales sur la création d’un cluster Kubernetes avec Azure Arc.
Pour commencer à utiliser le service, procédez comme suit pour créer un cluster Azure Kubernetes Service (AKS) et le connecter à Azure Arc :
Créez un cluster dans le service Azure Kubernetes.
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-keysRécupérez le fichier kubeconfig et testez votre connexion au cluster. Par défaut, le fichier kubeconfig est enregistré dans
~/.kube/config.az aks get-credentials --resource-group $AKS_CLUSTER_GROUP_NAME --name $AKS_NAME --admin kubectl get nsCréez un groupe de ressources pour accueillir vos ressources Azure Arc.
az group create --name $GROUP_NAME --location $LOCATIONConnectez le cluster que vous avez créé à Azure Arc.
CLUSTER_NAME="${GROUP_NAME}-cluster" # Name of the connected cluster resource az connectedk8s connect --resource-group $GROUP_NAME --name $CLUSTER_NAMEValidez la connexion à l’aide de la commande suivante. Elle devrait afficher la propriété
provisioningStateavec la valeurSucceeded. Si ce n’est pas le cas, réexécutez la commande après une minute.az connectedk8s show --resource-group $GROUP_NAME --name $CLUSTER_NAME
Créer un espace de travail Log Analytics
Un espace de travail Log Analytics permet d’accéder aux journaux pour les applications Container Apps exécutées dans le cluster Kubernetes avec Azure Arc. Un espace de travail Log Analytics est facultatif, mais recommandé.
Créez un espace de travail 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_NAMEExécutez les commandes suivantes pour obtenir l’ID d’espace de travail encodé et la clé partagée pour un espace de travail Log Analytics existant. Vous aurez besoin de ces informations à l’étape suivante.
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
Installez l’extension Container Apps
Important
Si vous déployez sur AKS sur Azure Local, vérifiez que vous avez configuré HAProxy ou un équilibreur de charge personnalisé avant de tenter d’installer l’extension. Vous pouvez également utiliser az containerapp arc setup-core-dns --distro AksAzureLocal pour configurer le dns principal pour les contextes locaux.
Définissez les variables d’environnement suivantes pour le nom souhaité de l’extension Container Apps, l’espace de noms de cluster dans lequel les ressources doivent être approvisionnées, et le nom de l’environnement Azure Container Apps. Choisissez un nom unique pour
<connected-environment-name>. Le nom de l’environnement connecté fait partie du nom de domaine de l’application que vous créez dans l’environnement connecté Azure Container Apps.EXTENSION_NAME="appenv-ext" NAMESPACE="appplat-ns" CONNECTED_ENVIRONMENT_NAME="<connected-environment-name>"Installez l’extension Container Apps sur votre cluster connecté Azure Arc, avec Log Analytics activé. Log Analytics ne peut pas être ajouté à l’extension ultérieurement.
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}"Remarque
Pour installer l’extension sans l’intégration de Log Analytics, supprimez les trois paramètres
--configuration-settingsde la commande.Pour les clusters qui utilisent un équilibreur de charge personnalisé au lieu de l’équilibreur de charge AKS standard, une fois l’équilibreur de charge configuré, spécifiez le paramètre suivant :
--configuration-settings "loadBalancerIp=<LOAD_BALANCER_INGRESS_IP>"Remplacez <LOAD_BALANCER_INGRESS_IP> par l’adresse IP d’entrée réelle affectée à votre équilibreur de charge.
Le tableau suivant décrit les différents paramètres
--configuration-settingsinclus lors de l’exécution de la commande :Paramètre Descriptif Microsoft.CustomLocation.ServiceAccountCompte de service créé pour l’emplacement personnalisé. Définissez la valeur sur default.appsNamespaceEspace de noms utilisé pour créer les définitions et révisions d’application. Il doit correspondre à l’espace de noms de la version de l’extension. clusterNameNom de l’environnement Kubernetes de l’extension Container Apps créé par rapport à cette extension. logProcessor.appLogs.destinationfacultatif. Destination des journaux d’application. Accepte log-analyticsounone. Le choix d’aucun désactive les journaux de plateforme.logProcessor.appLogs.logAnalyticsConfig.customerIdObligatoire uniquement quand logProcessor.appLogs.destinationa la valeurlog-analytics. ID d’espace de travail Log Analytics codé en base64. Ce paramètre doit être configuré en tant que paramètre protégé.logProcessor.appLogs.logAnalyticsConfig.sharedKeyObligatoire uniquement quand logProcessor.appLogs.destinationa la valeurlog-analytics. Clé partagée d’espace de travail Log Analytics codé en base64. Ce paramètre doit être configuré en tant que paramètre protégé.loadBalancerIpAdresse IP d’entrée de l’équilibreur de charge. Enregistrez la propriété
idde l’extension Container Apps pour plus tard.EXTENSION_ID=$(az k8s-extension show \ --cluster-type connectedClusters \ --cluster-name $CLUSTER_NAME \ --resource-group $GROUP_NAME \ --name $EXTENSION_NAME \ --query id \ --output tsv)Attendez que l’extension soit complètement installée avant de continuer. Il se peut que vous deviez faire attendre votre session de terminal jusqu’à ce que l’opération soit terminée en exécutant la commande suivante :
az resource wait --ids $EXTENSION_ID --custom "properties.provisioningState!='Pending'" --api-version "2020-07-01-preview"
Permet kubectl d’afficher les pods en cours d’exécution dans votre cluster Kubernetes :
kubectl get pods -n $NAMESPACE
Pour en savoir plus sur ces pods et leur rôle dans le système, consultez Vue d’ensemble d’Azure Arc.
Créer un emplacement personnalisé
L’emplacement personnalisé est un emplacement Azure que vous attribuez à l’environnement connecté Azure Container Apps.
Définissez les variables d’environnement suivantes pour le nom souhaité de l’emplacement personnalisé et pour l’ID du cluster connecté 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)Créez l’emplacement personnalisé :
az customlocation create \ --resource-group $GROUP_NAME \ --name $CUSTOM_LOCATION_NAME \ --host-resource-id $CONNECTED_CLUSTER_ID \ --namespace $NAMESPACE \ --cluster-extension-ids $EXTENSION_IDRemarque
Si vous rencontrez des problèmes pour créer un emplacement personnalisé dans votre cluster, vous devrez peut-être activer la fonctionnalité d’emplacement personnalisé pour votre cluster. Activez cette fonctionnalité lors de la connexion à l’interface CLI à l’aide d’un principal de service ou d’un utilisateur Microsoft Entra disposant d’autorisations restreintes sur la ressource de cluster.
Vérifiez que l’emplacement personnalisé a été correctement créé avec la commande suivante. La sortie devrait afficher la propriété
provisioningStateavec la valeurSucceeded. Si ce n’est pas le cas, réexécutez la commande après une minute.az customlocation show --resource-group $GROUP_NAME --name $CUSTOM_LOCATION_NAMEEnregistrez l’ID d’emplacement personnalisé pour l’étape suivante.
CUSTOM_LOCATION_ID=$(az customlocation show \ --resource-group $GROUP_NAME \ --name $CUSTOM_LOCATION_NAME \ --query id \ --output tsv)
Créez l’environnement connecté Azure Container Apps
Avant de commencer à créer des applications à l’emplacement personnalisé, vous avez besoin d’un environnement connecté à Azure Container Apps.
Créez l’environnement connecté Container Apps :
az containerapp connected-env create \ --resource-group $GROUP_NAME \ --name $CONNECTED_ENVIRONMENT_NAME \ --custom-location $CUSTOM_LOCATION_ID \ --location $LOCATIONVérifiez que l’environnement connecté Container Apps est correctement créé avec la commande suivante. La sortie devrait afficher la propriété
provisioningStateavec la valeurSucceeded. Si ce n’est pas le cas, réexécutez la commande après une minute.az containerapp connected-env show --resource-group $GROUP_NAME --name $CONNECTED_ENVIRONMENT_NAME