Certaines architectures à haute disponibilité nécessitent une adresse IP flottante. Cette fonctionnalité est disponible sur la plate-forme Vultr une fois que la mise en réseau privée a été activée. Vultr propose une plage d'adresses IP dans chaque réseau privé: "Vous pouvez utiliser toutes les adresses IP que vous aimez sur le réseau privé. Nous attribuons une adresse IP par défaut, mais vous pouvez l'ignorer et en utiliser d'autres si vous le souhaitez." . Par conséquent, nous pouvons utiliser n'importe quelle adresse IP virtuelle dans la plage d'adresses IP privées. Cet exemple présente une configuration passive / active. Le serveur maître revendiquera l'IP flottante à moins que le serveur ne tombe en panne. Si le serveur maître est en panne, l'IP flottante sera revendiquée par le serveur de sauvegarde.
Conditions préalables
- Deux instances de serveur Ubuntu 16.04 LTS x64 (serveur maître et serveur de sauvegarde).
- Un utilisateur sudo (ou compte root) .
Préparation du système
Commencez par activer le réseau privé sur chaque VPS. Cette fonctionnalité a été bien documentée .
Connectez-vous à chaque système en tant sudo
qu'utilisateur et mettez à jour le système et ses packages:
apt-get update && apt-get upgrade
Une fois cela fait, nous sommes prêts à commencer l'installation et la configuration de Keepalived.
Installation de Keepalived
Maintenant que chaque système est à jour et possède une adresse IP privée, vous pouvez installer Keepalived sur les deux.
apt-get install keepalived
Cela installera le démon haute disponibilité. Keepalived est un programme qui offre une fonctionnalité de haute disponibilité et d'équilibrage de charge basée sur le protocole VRRP (Virtual Router Redundancy Protocol).
Serveur maître
Sur le serveur maître, modifiez le fichier de configuration Keepalived.
nano /etc/keepalived/keepalived.conf
C'est virtual_ipaddress
l'IP que nous allons flotter entre les serveurs. Le priority
définit qui sera propriétaire de l'IP. Pour le maître, nous utiliserons une priorité de 200
. Nous utiliserons le 10.99.0.200
comme notre IP virtuelle flottante.
vrrp_instance VI_1 {
state MASTER
interface ens7
virtual_router_id 51
priority 200
advert_int 1
authentication {
auth_type PASS
auth_pass thisismysupersecretpassword
}
virtual_ipaddress {
10.99.0.200
}
}
Serveur de sauvegarde
Sur le serveur de sauvegarde, modifiez le fichier de configuration Keepalived.
nano /etc/keepalived/keepalived.conf
Ici, nous définirons le virtual_ipaddress
tout comme sur le serveur maître. La différence ici est que la priorité de ce serveur est inférieure, donc il ne revendiquera l'IP que lorsque le maître n'est pas en ligne.
vrrp_instance VI_1 {
state BACKUP
interface ens7
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass thisismysupersecretpassword
}
virtual_ipaddress {
10.99.0.200
}
}
Utilisation et test
Une fois les deux services Keepalived configurés, démarrez chaque service et activez-le au démarrage.
systemctl start keepalived
systemctl enable keepalived
Sur un troisième serveur (ou sur le serveur de sauvegarde) commencez par cingler notre IP partagée:
ping 10.99.0.200
Redémarrez maintenant le serveur maître et regardez l'IP se déplacer vers le serveur de sauvegarde. Ceci est généralement indiqué par une petite augmentation de la latence ping.
64 bytes from 10.99.0.200: icmp_seq=80 ttl=64 time=0.384 ms
64 bytes from 10.99.0.200: icmp_seq=81 ttl=64 time=1.33 ms <<< failover has happened
64 bytes from 10.99.0.200: icmp_seq=82 ttl=64 time=0.388 ms
64 bytes from 10.99.0.200: icmp_seq=83 ttl=64 time=0.339 ms
64 bytes from 10.99.0.200: icmp_seq=84 ttl=64 time=0.570 ms
Conclusion
Keepalived fonctionne sans problème sur Vultr et est prêt pour toutes vos conceptions d'architecture à haute disponibilité.