Maison >Opération et maintenance >exploitation et maintenance Linux >Linux et Docker : Comment implémenter un cluster de conteneurs hautement disponible ?
Linux et Docker : Comment implémenter un cluster de conteneurs hautement disponible ?
Résumé : Avec le développement de la technologie des conteneurs, de plus en plus d'entreprises déploient progressivement des applications dans des conteneurs. Dans un environnement de production, il est essentiel d'obtenir une haute disponibilité pour un cluster de conteneurs. Cet article expliquera comment utiliser Linux et Docker pour créer un cluster de conteneurs hautement disponible et démontrera la méthode d'implémentation spécifique à travers des exemples de code.
Tout d'abord, installez Docker sur chaque hôte Docker que vous souhaitez rejoindre le cluster. Ensuite, sélectionnez un hôte comme nœud de gestion du cluster Swarm et exécutez la commande suivante pour initialiser le cluster :
$ docker swarm init --advertise-addr <MANAGER-IP>
Où 50c92af3965d072a01ca8b69c30c4169 est l'adresse IP du nœud de gestion. Grâce à la commande ci-dessus, nous obtiendrons un jeton permettant aux autres hôtes de rejoindre le cluster. Ensuite, exécutez la commande suivante sur les autres hôtes qui souhaitent rejoindre le cluster :
$ docker swarm join --token <TOKEN> <MANAGER-IP>:<PORT>
Parmi eux, fe44cc81ab4c20272595cc1edf562112 est le jeton obtenu à l'étape précédente, 50c92af3965d072a01ca8b69c30c4169 des nœuds de gestion respectivement et le numéro de port.
Tout d'abord, installez et démarrez Consul sur tous les hôtes Docker. Ensuite, exécutez la commande suivante pour créer un service Consul :
$ docker service create --name consul --publish 8500:8500 --constraint 'node.role == manager' gliderlabs/consul-server -bootstrap
Cette commande crée un service nommé consul sur le nœud de gestion du cluster Swarm et mappe le port 8500 du conteneur au port 8500 de l'hôte.
Ensuite, exécutez la commande suivante sur d'autres nœuds pour rejoindre le service Consul :
$ docker service create --name consul --network <NETWORK> gliderlabs/consul-agent -join consul
Où, 1d4d001a3682e7356cdcdf6423e29e0f est le nom du réseau du cluster Swarm.
Tout d'abord, préparez une image Docker contenant l'application que nous souhaitons déployer. Ensuite, exécutez la commande suivante pour créer un service :
$ docker service create --name <SERVICE-NAME> --replicas <REPLICAS> --publish <PORT> <IMAGE>
où 1f69d38ff7f38c32e75a871d13a954c2 est le nom du service, f9137ba0285552c9339eaf6686d35256 est le nombre d'instances de conteneur à déployer, a3b0c87895079be75e30be94102cc20b à mapper, < ;IMAGE> est l'image Docker où réside l'application.
Vous pouvez utiliser la commande suivante pour afficher l'état d'exécution du service et la distribution des instances de conteneur :
$ docker service ls $ docker service ps <SERVICE-NAME>
Vous pouvez utiliser la commande suivante pour augmenter le nombre d'instances d'un service :
$ docker service scale <SERVICE-NAME>=<REPLICAS>
où 1f69d38ff7f38c32e75a871d13a954c2 est le nom du service et f9137ba0285552c9339eaf6686d35256
Résumé : L'utilisation de Linux et de Docker pour créer un cluster de conteneurs hautement disponible améliore non seulement la disponibilité des applications, mais fournit également des capacités de mise à l'échelle élastique et d'équilibrage de charge. Grâce à une configuration et une gestion raisonnables, nous pouvons obtenir des services de conteneurs efficaces et stables.
Exemple de code :
Initialiser le cluster Swarm :
$ docker swarm init --advertise-addr 192.168.0.1
Rejoindre le cluster Swarm :
$ docker swarm join --token <TOKEN> 192.168.0.1:2377
Créer le service Consul :
$ docker service create --name consul --publish 8500:8500 --constraint 'node.role == manager' gliderlabs/consul-server -bootstrap
Rejoindre le service Consul :
$ docker service create --name consul --network my-network gliderlabs/consul-agent -join consul
Créer un service d'application :
$ docker service create --name my-service --replicas 3 --publish 8080:8080 my-app
Augmentez le nombre d'instances de service :
$ docker service scale my-service=5
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!