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.
S’applique à : AKS sur Windows Server
Ce guide explique comment déployer une application multiconteneur qui inclut un serveur frontal web et une instance de base de données Redis sur votre cluster Kubernetes dans AKS sur Windows Server. Vous découvrez également comment tester et mettre à l’échelle votre application.
Ce guide pratique suppose une compréhension de base des concepts kubernetes. Pour plus d’informations, consultez les concepts fondamentaux de Kubernetes.
Avant de commencer
Vérifiez que vous disposez des conditions préalables suivantes :
- Un cluster AKS avec au moins un nœud Worker Linux opérationnel.
- Un fichier kubeconfig pour accéder au cluster.
- Le module PowerShell AksHci est installé. Pour plus d’informations, consultez Install-AksHci.
Lorsque vous effectuez les procédures :
- Exécutez les commandes dans une fenêtre PowerShell ouverte avec des privilèges d’administration.
- Vérifiez que les charges de travail spécifiques au système d’exploitation se trouvent sur l’hôte de conteneur approprié. Si votre cluster Kubernetes comprend à la fois des nœuds de travail Linux et Windows, vous pouvez utiliser soit des sélecteurs de nœuds, soit des taints et des tolerations. Pour plus d’informations, consultez l’utilisation des sélecteurs de nœuds et des taints et tolérances.
Note
Le déploiement d’un cluster cible qui partage un réseau avec un autre cluster cible peut entraîner des conflits d’adresses IP d’équilibreur de charge.
Les conflits d’adresses IP peuvent se produire si vous déployez deux charges de travail qui utilisent des ports différents dans des clusters cibles partageant le même AksHciClusterNetwork objet. En raison de la façon dont les adresses IP et les mappages de ports sont alloués à l’intérieur du proxy haute disponibilité, il peut entraîner l’affectation d’adresses IP dupliquées. Si cela se produit, une ou les deux charges de travail peuvent rencontrer des problèmes de connectivité réseau aléatoires jusqu’à ce que vous redéployiez vos charges de travail. Lorsque vous redéployez vos charges de travail, vous pouvez utiliser le même port, qui affecte une adresse IP de service à chaque charge de travail, ou vous pouvez redéployer vos charges de travail sur des clusters cibles qui utilisent différents AksHciClusterNetwork objets.
Déployer l’application
Un fichier manifeste Kubernetes définit un état souhaité pour le cluster, comme les images conteneur à exécuter. Ce tutoriel utilise un manifeste pour créer tous les objets nécessaires pour exécuter l’application de vote Azure. Ce manifeste inclut deux déploiements Kubernetes : un pour l’exemple Azure voter Python applications, et l’autre pour une instance Redis. Deux services Kubernetes sont également créés : un service interne pour l’instance Redis et un service externe pour accéder à l’application Azure Vote à partir d’Internet.
Créez un fichier nommé azure-vote.yaml et copiez/collez la définition YAML suivante :
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:
"beta.kubernetes.io/os": linux
containers:
- name: azure-vote-back
image: redis
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:
"beta.kubernetes.io/os": linux
containers:
- name: azure-vote-front
image: <path to image>/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 kubectl apply commande et spécifiez le nom de votre manifeste YAML :
kubectl apply -f azure-vote.yaml
L’exemple de sortie suivant montre les déploiements et services qui ont été créés avec succès :
deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created
Tester l’application
Lorsque l’application s’exécute, un service Kubernetes expose l’application frontale à Internet. L’exécution de ce processus peut prendre plusieurs minutes.
Pour surveiller la progression, utilisez la kubectl get service commande avec l’argument --watch :
kubectl get service azure-vote-front --watch
Initialement, l’ADRESSE IP EXTERNE du service azure-vote-front s’affiche 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 22m
Lorsque l’adresse EXTERNAL-IP passe de l’attente à une adresse IP publique réelle, utilisez Ctrl-C pour arrêter le kubectl processus de surveillance. L’exemple de sortie suivant montre une adresse IP publique valide affectée au service :
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
azure-vote-front LoadBalancer 10.0.37.27 52.179.23.131 80:30572/TCP 24m
Pour voir l’application Azure Vote en action, ouvrez un navigateur web en utilisant l’adresse IP externe de votre service.
Mettre à l’échelle les pods d’application
Nous avons créé une réplique unique du front-end d’Azure Voting App et de l’instance Redis. Pour afficher le nombre et l’état des pods dans votre cluster, utilisez la kubectl get commande :
kubectl get pods -n default
L’exemple de sortie suivant montre un pod frontal et un pod principal :
NAME READY STATUS RESTARTS AGE
azure-vote-back-6bdcb87f89-g2pqg 1/1 Running 0 25m
azure-vote-front-84c8bf64fc-cdq86 1/1 Running 0 25m
Pour modifier le nombre de pods dans le déploiement azure-vote-front , utilisez la kubectl scale commande. L’exemple suivant augmente le nombre de pods frontaux à 5 :
kubectl scale --replicas=5 deployment/azure-vote-front
Réexécutez kubectl get pods pour vérifier que des pods supplémentaires ont été créés. Au bout d’une minute environ, les pods supplémentaires sont disponibles dans votre cluster :
kubectl get pods -n default
Name READY STATUS RESTARTS AGE
azure-vote-back-6bdcb87f89-g2pqg 1/1 Running 0 31m
azure-vote-front-84c8bf64fc-cdq86 1/1 Running 0 31m
azure-vote-front-84c8bf64fc-56h64 1/1 Running 0 80s
azure-vote-front-84c8bf64fc-djkp8 1/1 Running 0 80s
azure-vote-front-84c8bf64fc-jmmvs 1/1 Running 0 80s
azure-vote-front-84c8bf64fc-znc6z 1/1 Running 0 80s
Étapes suivantes
Utiliser Azure Monitor pour surveiller votre cluster et votre application