Créer des clusters Kubernetes à l’aide d’Azure CLI
S’applique à : Azure Stack HCI, version 23H2
Cet article explique comment créer des clusters Kubernetes dans Azure Stack HCI à l’aide d’Azure CLI. Le flux de travail s’articule de la façon suivante :
- Créez un cluster Kubernetes dans Azure Stack HCI 23H2 à l’aide d’Azure CLI. Le cluster est connecté à Azure Arc par défaut.
- Lors de la création du cluster, vous fournissez un groupe Microsoft Entra qui contient la liste des utilisateurs Microsoft Entra disposant d’un accès administrateur de cluster Kubernetes.
- Accédez au cluster à l’aide de kubectl et de votre Microsoft Entra ID.
- Exécutez un exemple d’application à plusieurs conteneurs avec un serveur web frontal et une instance Redis dans le cluster.
Avant de commencer
- Avant de commencer, vérifiez que vous disposez des informations suivantes de votre administrateur d’infrastructure local :
- ID d’abonnement Azure : ID d’abonnement Azure où Azure Stack HCI est utilisé pour le déploiement et l’inscription.
- ID d’emplacement personnalisé : ID de Resource Manager Azure de l’emplacement personnalisé. L’emplacement personnalisé est configuré pendant le déploiement du cluster Azure Stack HCI. Votre administrateur d’infrastructure doit vous donner l’ID Resource Manager de l’emplacement personnalisé. Ce paramètre est requis pour créer des clusters Kubernetes. Vous pouvez également obtenir l’ID de Resource Manager à l’aide
az customlocation show --name "<custom location name>" --resource-group <azure resource group> --query "id" -o tsv
de , si l’administrateur d’infrastructure fournit un nom d’emplacement personnalisé et un nom de groupe de ressources. - ID réseau : ID de Resource Manager Azure du réseau logique Azure Stack HCI créé en suivant ces étapes. Votre administrateur doit vous donner l’ID du réseau logique. Ce paramètre est requis pour créer des clusters Kubernetes. Vous pouvez également obtenir l’ID de Resource Manager Azure à l’aide
az stack-hci-vm network lnet show --name "<lnet name>" --resource-group <azure resource group> --query "id" -o tsv
de si vous connaissez le groupe de ressources dans lequel le réseau logique a été créé.
- Vous pouvez exécuter les étapes décrites dans cet article sur un ordinateur de développement local pour créer un cluster Kubernetes sur votre déploiement Azure Stack HCI distant. Vérifiez que vous disposez de la dernière version d’Az CLI sur votre ordinateur de développement. Vous pouvez également choisir de mettre à niveau votre version d’Az CLI à l’aide de
az upgrade
. - Pour vous connecter au cluster Kubernetes en tout lieu, créez un groupe Microsoft Entra et ajoutez-y des membres. Tous les membres du groupe Microsoft Entra disposent d’un accès administrateur au cluster. Veillez à vous ajouter en tant que membre au groupe Microsoft Entra. Si vous ne vous ajoutez pas, vous ne pouvez pas accéder au cluster Kubernetes à l’aide de kubectl. Pour plus d’informations sur la création de groupes Microsoft Entra et l’ajout d’utilisateurs, consultez Gérer les groupes Microsoft Entra et l’appartenance aux groupes.
- Téléchargez et installez kubectl sur votre ordinateur de développement. L’outil en ligne de commande Kubernetes, kubectl, vous permet d’exécuter des commandes sur des clusters Kubernetes. Vous pouvez utiliser kubectl pour déployer des applications, inspecter et gérer les ressources de cluster et afficher les journaux.
Installer l’extension Azure CLI
Exécutez la commande suivante pour installer les extensions Azure CLI nécessaires :
az extension add -n aksarc --upgrade
az extension add -n customlocation --upgrade
az extension add -n stack-hci-vm --upgrade
az extension add -n connectedk8s --upgrade
Créer un cluster Kubernetes
Utilisez la az aksarc create
commande pour créer un cluster Kubernetes dans AKS Arc. Veillez à vous connecter à Azure avant d’exécuter cette commande. Si vous avez plusieurs abonnements Azure, sélectionnez l’ID d’abonnement approprié à l’aide de la commande az account set .
az aksarc create -n $aksclustername -g $resource_group --custom-location $customlocationID --vnet-ids $logicnetId --aad-admin-group-object-ids $aadgroupID --generate-ssh-keys --load-balancer-count 0 --control-plane-ip $controlplaneIP
Au bout de quelques minutes, la commande se termine et retourne des informations au format JSON sur le cluster.
Se connecter au cluster Kubernetes
Vous pouvez maintenant vous connecter à votre cluster Kubernetes en exécutant la az connectedk8s proxy
commande à partir de votre ordinateur de développement. Veillez à vous connecter à Azure avant d’exécuter cette commande. Si vous avez plusieurs abonnements Azure, sélectionnez l’ID d’abonnement approprié à l’aide de la commande az account set .
Cette commande télécharge le kubeconfig de votre cluster Kubernetes sur votre ordinateur de développement et ouvre un canal de connexion proxy vers votre cluster Kubernetes local. Le canal est ouvert aussi longtemps que la commande s’exécute. Laissez cette commande s’exécuter aussi longtemps que vous souhaitez accéder à votre cluster. S’il expire, fermez la fenêtre CLI, ouvrez-en une nouvelle, puis réexécutez la commande.
Vous devez disposer des autorisations Contributeur sur le groupe de ressources qui héberge le cluster Kubernetes pour exécuter correctement la commande suivante :
az connectedk8s proxy --name $aksclustername --resource-group $resource_group --file .\aks-arc-kube-config
Sortie attendue :
Proxy is listening on port 47011
Merged "aks-workload" as current context in .\\aks-arc-kube-config
Start sending kubectl requests on 'aks-workload' context using
kubeconfig at .\\aks-arc-kube-config
Press Ctrl+C to close proxy.
Maintenez cette session en cours d’exécution et connectez-vous à votre cluster Kubernetes à partir d’un autre terminal/invite de commandes. Vérifiez que vous pouvez vous connecter à votre cluster Kubernetes en exécutant la commande kubectl get. Cette commande retourne une liste des nœuds de cluster :
kubectl get node -A --kubeconfig .\aks-arc-kube-config
L’exemple de sortie suivant montre le nœud créé dans les étapes précédentes. Assurez-vous que l’état du nœud est Prêt :
NAME STATUS ROLES AGE VERSION
moc-l0ttdmaioew Ready control-plane,master 34m v1.24.11
moc-ls38tngowsl Ready <none> 32m v1.24.11
Déployer l’application
Un fichier manifeste Kubernetes définit un état souhaité d’un cluster, notamment les images conteneur à exécuter.
Vous pouvez utiliser un manifeste pour créer tous les objets nécessaires à l’exécution de l’application Vote Azure. Ce manifeste comprend deux déploiements Kubernetes :
- Exemples d’applications Python pour Azure Vote.
- Une instance Redis.
Deux services Kubernetes sont également créés :
- Un service interne pour l’instance Redis.
- Un service externe pour accéder à l’application Azure vote à partir d’Internet.
Créez un fichier nommé azure-vote.yaml et copiez-le dans le manifeste suivant :
apiVersion: apps/v1
kind: Deployment
metadata:
name: azure-vote-back
spec:
replicas: 1
selector:
matchLabels:
app: azure-vote-back
template:
metadata:
labels:
app: azure-vote-back
spec:
nodeSelector:
"kubernetes.io/os": linux
containers:
- name: azure-vote-back
image: mcr.microsoft.com/oss/bitnami/redis:6.0.8
env:
- name: ALLOW_EMPTY_PASSWORD
value: "yes"
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
ports:
- containerPort: 6379
name: redis
---
apiVersion: v1
kind: Service
metadata:
name: azure-vote-back
spec:
ports:
- port: 6379
selector:
app: azure-vote-back
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: azure-vote-front
spec:
replicas: 1
selector:
matchLabels:
app: azure-vote-front
template:
metadata:
labels:
app: azure-vote-front
spec:
nodeSelector:
"kubernetes.io/os": linux
containers:
- name: azure-vote-front
image: mcr.microsoft.com/azuredocs/azure-vote-front:v1
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
ports:
- containerPort: 80
env:
- name: REDIS
value: "azure-vote-back"
---
apiVersion: v1
kind: Service
metadata:
name: azure-vote-front
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: azure-vote-front
Déployez l’application à l’aide de la commande kubectl apply et spécifiez le nom de votre YAML :
kubectl apply -f azure-vote.yaml --kubeconfig .\\aks-arc-kube-config
L’exemple de sortie suivant montre les déploiements et services créés :
deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created
Test de l’application
Quand l’application s’exécute, un service Kubernetes expose le front-end de l’application sur Internet. L’exécution de ce processus peut prendre plusieurs minutes.
Surveillez la progression avec la commande kubectl get service et l’argument --watch
.
kubectl get service azure-vote-front --watch --kubeconfig .\aks-arc-kube-config
La sortie EXTERNAL-IP pour le service azure-vote-front s’affiche initialement comme étant en attente.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
azure-vote-front LoadBalancer 10.0.37.27 <pending> 80:30572/TCP 6s
Une fois que l’adresse EXTERNAL-IP passe de en attente à une adresse IP publique réelle, utilisez CTRL-C pour arrêter le processus kubectl watch. L’exemple de sortie suivant montre une adresse IP publique valide affectée au service :
azure-vote-front LoadBalancer 10.0.37.27 52.179.23.131 80:30572/TCP 2m
Pour voir l’application Azure Vote en action, ouvrez un navigateur web en utilisant l’adresse IP externe de votre service.
Supprimer le cluster
Exécutez la az aksarc delete
commande pour propre le cluster que vous avez créé :
az aksarc delete --resource-group $aksclustername --name $resource_group
Étapes suivantes
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour