Maison  >  Article  >  Opération et maintenance  >  Comment utiliser Docker pour gérer et développer des clusters multi-nœuds

Comment utiliser Docker pour gérer et développer des clusters multi-nœuds

WBOY
WBOYoriginal
2023-11-07 10:06:581182parcourir

Comment utiliser Docker pour gérer et développer des clusters multi-nœuds

À l’ère actuelle du cloud computing, la technologie de conteneurisation est devenue l’une des technologies les plus populaires dans le monde open source. L'émergence de Docker a rendu le cloud computing plus pratique et efficace et est devenu un outil indispensable pour les développeurs et le personnel d'exploitation et de maintenance. L'application de la technologie de cluster multi-nœuds est largement utilisée sur la base de Docker. Grâce au déploiement de clusters multi-nœuds, nous pouvons utiliser les ressources plus efficacement, améliorer la fiabilité et l'évolutivité, et également être plus flexibles dans le déploiement et la gestion. Nous présenterons ensuite comment utiliser Docker pour gérer et développer des clusters multi-nœuds.

Étape 1 : Créer un environnement de cluster multi-nœuds
Afin de gérer et d'étendre le cluster multi-nœuds, nous devons d'abord créer plusieurs nœuds. Dans cet article, nous utilisons la technologie Docker Swarm, qui peut nous aider à gérer plus facilement les clusters multi-nœuds.

1) Installez Docker et Docker Compose sur plusieurs machines et assurez-vous qu'ils peuvent communiquer entre eux.

2) Sélectionnez l'une des machines comme "nœud de gestion" et exécutez la commande suivante :

docker swarm init --advertise-addr <管理节点IP>

Après l'exécution, un jeton sera renvoyé. Ce jeton est utilisé pour ajouter d'autres nœuds à ce Swarm. En même temps, après avoir exécuté cette commande, votre machine locale devient le nœud de gestion de Swarm.

3) Ajoutez d'autres machines à Swarm. Exécutez la commande suivante sur d'autres machines :

docker swarm join --token <token> <管理节点IP>:2377

À ce stade, d'autres machines seront ajoutées à Swarm. Nous pouvons utiliser la commande suivante pour afficher les nœuds dans Swarm :

docker node ls

Étape 2 : créer le service et étendre la capacité
Après avoir configuré un environnement de cluster multi-nœuds, nous pouvons commencer à créer le service. Un service fait référence à un groupe d'instances de conteneurs exécutées dans Swarm. Elles partagent des ressources d'hôte, de réseau et de stockage et peuvent automatiquement évoluer de manière à s'étendre horizontalement. Ici, nous prenons comme exemple une application Web simple pour présenter comment créer et développer des services.

1) Écrivez Dockerfile. Tout d'abord, nous devons écrire un fichier Dockerfile, spécifier l'image de base de l'application et les commandes en cours d'exécution, etc.

FROM node:latest
WORKDIR /app
COPY . /app
RUN npm install
CMD ["npm", "start"]

Parmi eux, nous avons choisi node:latest comme image de base, ajouté nos fichiers d'application au répertoire /app, installé les dépendances et démarré le programme.

2) Écrivez docker-compose.yml. docker-compose est un outil permettant de définir et d'exécuter des applications Docker multi-conteneurs. Ici, nous pouvons utiliser docker-compose pour définir un service appelé web.

version: '3'
services:
  web:
    build: .
    ports:
      - "8080:8080"
    environment:
      - NODE_ENV=production
    deploy:
      replicas: 5
      resources:
        limits:
          cpus: "0.1"
          memory: 50M
      restart_policy:
        condition: on-failure

Ce fichier docker-compose spécifie notre méthode de construction d'application, le mappage des ports, les variables d'environnement, le nombre de répliques, les limites de ressources, etc. À la troisième étape, nous utiliserons la commande docker stack déployer pour créer et exécuter le service.

3) Créez et développez les services. Après avoir terminé les deux étapes ci-dessus, nous pouvons commencer à créer et à faire évoluer notre service. Veuillez exécuter la commande suivante :

docker-compose build
docker stack deploy --compose-file docker-compose.yml web

Cette commande déploiera notre service dans Swarm et spécifiera 5 instances. Visitez http://:8080 dans le navigateur et vous pourrez consulter notre application Web.

Troisième étape : gérer et faire évoluer le service
Après avoir créé et déployé avec succès le service, nous devons le gérer et le faire évoluer. La gestion et l'expansion des services dans Swarm sont très simples, il vous suffit d'exécuter quelques commandes.

1) Vérifiez l'état du service. Nous pouvons utiliser la commande suivante pour afficher l'état d'un service :

docker service ls
docker service ps web

Cette commande affichera tous les services et instances de service en cours d'exécution. À ce stade, nous devrions voir 5 instances de service Web en cours d’exécution.

2) Service d'extension de capacité. Nous pouvons utiliser la commande suivante pour augmenter le nombre d'instances du service :

docker service scale web=8

Cette commande augmentera le nombre d'instances du service Web à 8.

3) Service de mise à jour. Afin de mettre à jour le service, nous devons modifier le fichier docker-compose.yml précédent et exécuter à nouveau la commande docker stack déployer. Une fois la modification terminée, exécutez la commande suivante pour mettre à jour le service :

docker stack deploy --compose-file docker-compose.yml web

Résumé
La technologie de cluster multi-nœuds est une technologie très pratique utilisée dans Docker, qui peut nous aider à gérer et à étendre nos applications plus facilement. Dans cet article, nous expliquons comment utiliser Docker Swarm pour créer un environnement de cluster multi-nœuds et utilisons une application Web comme exemple pour démontrer comment créer, déployer, gérer et étendre des services. Je pense que grâce à l'introduction de cet article, tout le monde a une compréhension plus approfondie de la technologie de cluster multi-nœuds Docker Swarm.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn