Cet article présente la procédure minimale d'utilisation de l'Ultipa Deployer pour déployer un cluster Ultipa HTAP. Pour le déploiement sans Ultipa Deployer, veuillez vous référer à Deployment Procedure.
Exigences Matérielles
-
Minimum 3 nodes
-
Connexion réseau entre les nodes, il est suggéré que tous les nodes dans un seul cluster soient disposés sur le même segment de réseau
-
Tous les nodes peuvent être accédés par le client (backend d'application ou Ulitpa Manager)
-
CPU & Mémoire dépendent des exigences du projet ou des tests
Exigences Logicielles
-
Il y a une permission ssh entre le serveur actuel et le serveur cible
-
Lorsque le serveur cible connecte l'utilisateur à distance via ssh, il doit avoir la permission d'écriture sur le répertoire WORK_PATH dans le fichier de configuration
-
Docker CE 19+ ou équivalent Docker EE installé sur le serveur cible
-
Il y a un package image ultipaServer sur le serveur actuel
-
Il y a une licence ultipaServer sur le serveur actuel
Procédure de Déploiement
- Générer le modèle de fichier de configuration
./ultipa-deploy -g
- Modifier le fichier de configuration selon les instructions dans le fichier
mv example_config.yaml config.yaml
vim config.yaml
- Télécharger l'image docker hors ligne décrite dans LOCAL_IMAGE_TAR à tous les serveurs cibles, et exécuter
docker load
./ultipa-deploy -c config.yaml -o loadtar
- Vérifier l'environnement au préalable pour voir s'il répond aux exigences de déploiement
./ultipa-deploy -c config.yaml -o check
- Commencer le déploiement
./ultipa-deploy -c config.yaml -o deploy
- Vérifier le statut du déploiement
./ultipa-deploy -c config.yaml -o list
- Arrêter le cluster comme décrit dans le fichier de configuration si nécessaire
./ultipa-deploy -c config.yaml -o stop
- Démarrer le cluster comme décrit dans le fichier de configuration si nécessaire
./ultipa-deploy -c config.yaml -o start
Mise à Jour de la Licence
- Télécharger la licence serveur décrite par LOCAL_LICENSE au chemin LICENSE_ON_REMOTE_SERVER sur le serveur cible, l'ancienne licence sera renommée pour sauvegarde
./ultipa-deploy -c config.yaml -o uplic
- Redémarrer la licence serveur dans le chemin LICENSE_ON_REMOTE_SERVER
./ultipa-deploy -c config.yaml -o relic
- Dans Ulitpa Manager, se connecter au cluster qui vient de remplacer la licence, cliquer sur le menu Graph et vérifier la date d'expiration de la licence dans Infos de la base de données
Options de Démarrage
Option |
Explication |
---|---|
-h | Montrer l'aide |
-c | Spécifier le fichier de configuration |
-g | Générer un modèle de fichier de configuration |
-l | Si le serveur cible ne peut être connecté à distance via ssh, utiliser cette option pour créer localement un script de déploiement shell, puis télécharger le script de déploiement sur le serveur, exécuter bash deploy.sh pour déployer manuellement Note!! Cette méthode de déploiement passera tous les checks, donc ne devrait pas être utilisée si ultipa-server est disponible |
-f | Passer les vérifications et imposer le déploiement Cela peut causer des conséquences imprévisibles pour des clusters déjà existants, et cette option est suggérée uniquement pour être utilisée dans un environnement de développement ou de test |
-o loadtar | Télécharger l'image docker hors ligne décrite dans LOCAL_IMAGE_TAR vers tous les serveurs cibles et exécuter docker load |
-o deploy | Déployer un cluster ultipa-server à partir de zéro |
-o check | Vérifier au préalable l'environnement du serveur cible pour voir s'il répond aux exigences détaillées dans le fichier de configuration, comme les conflits de ports, les noms de conteneurs docker dupliqués, etc. |
-o list | Lister les clusters comme décrit dans le fichier, d'autres conteneurs seront filtrés donc ne s'afficheront pas |
-o stop | Arrêter le cluster comme décrit dans le fichier de configuration |
-o start | Démarrer le cluster comme décrit dans le fichier de configuration |
-o update | Exécuter une mise à jour après modification de IMAGE_TAG dans le fichier de configuration utilisera la nouvelle image pour redémarrer le cluster. Si l'image décrite n'existe soit pas sur le serveur cible ou ne peut être téléchargée à partir du serveur d'images, l'image hors ligne doit être téléchargée à l'avance par loadtar |
-o uplic | Télécharger la licence sur le serveur cible, l'ancienne licence sera renommée et sauvegardée. Se référer aux options LOCAL_LICENSE et LICENSE_ON_REMOTE_SERVER dans le fichier de configuration |
-o relic | Redémarrer la licence serveur comme décrit dans LICENSE_ON_REMOTE_SERVER Note : cela n'est pas pour re-télécharger la licence |
Fichier de Configuration
# Le chemin local pour stocker la licence, utilisé par '-o uplic'
LOCAL_LICENSE:
# Chemin du serveur cible pour stocker la licence, '-o uplic' télécharge la licence locale à cet emplacement, '-o deploy' copie cette licence dans docker
LICENSE_ON_REMOTE_SERVER: "/home/ultipa/license/ultipa.lic"
# Si ce fichier de configuration yaml doit être téléchargé sur le répertoire WORK_PATH sur le serveur, toute ancienne version du fichier de configuration yaml sera renommée
SAVE_THIS_CONFIG_TO_REMOTE_SERVER: true
# Description complète de l'image docker à déployer
IMAGE_TAG: localhost:beta.4.0.118-b4.0.0
# Image docker hors ligne sauvegardée localement. Lorsque le serveur cible ne peut pas se connecter au dépôt d'image docker, '-o loadtar' peut télécharger cette image hors ligne sur le serveur et exécuter 'docker load'
LOCAL_IMAGE_TAR: beta.4.0.118-b4.0.0.tar.gz
#LOCAL_IMAGE_TAR: /data1/abc/a.tar.gz
# Seulement 4.x ultipa-server est soutenu
ULTIPA_SERVER_VERSION: 4
# Les variables qui commencent par G_ sont des variables globales. La variable globale sera utilisée si la variable de serveur spécifique est vide
# Port public d'ultipa-server
G_PUBLIC_PORT: 61510
# Port HTAP d'ultipa-server
G_PRIVATE_PORT: 61511
# Nom du conteneur docker
G_SERVER_NAME: ultipa-61510
# Répertoire de la carte d'ultipa-server
G_WORK_PATH: "/data1/docker_mounts/ultipa-61510"
# Utilisateur de connexion ssh distante du serveur cible, cet utilisateur doit avoir une permission d'écriture sur le répertoire WORK_PATH
G_SSH_USER: root
# Port pour connexion ssh à distance
G_SSH_PORT: 22
# Connexion ssh à distance vérifiée par mot de passe
G_SSH_PASSWORD:
# Connexion ssh à distance vérifiée par clé
G_SSH_PRIVATE_KEY_PATH: id_rsa
# Cela peut être laissé vide
G_CONFLINE:
# FULL_HOST_LIST est un tableau, l'exemple donne la description d'un seul serveur cible, copier et modifier pour plusieurs serveurs cibles
FULL_HOST_LIST:
- PRIVATE_IP: 192.168.56.101 # IP privée du serveur cible
SERVER_ID: # SERVER_ID sera rempli séquentiellement si laissé vide
SERVER_ROLE: 1 # Doit être rempli, se référer au tableau ci-joint pour la définition des rôles
SSH_USER: # Utiliser G_SSH_USER si c'est vide
SSH_PORT: # Utiliser G_SSH_PORT si c'est vide
SSH_IP: # Utiliser PUBLIC_IP si c'est vide
SSH_PASSWORD: # Utiliser G_SSH_PASSWORD si c'est vide
SSH_PRIVATE_KEY_PATH: # Utiliser G_SSH_PRIVATE_KEY_PATH si c'est vide
HOST_LISTEN_IP: # IP pour qu'ultipa-server fournisse le service en externe, par défaut est 0.0.0.0
PUBLIC_IP: # Utiliser PRIVATE_IP si c'est vide
PUBLIC_PORT: # Utiliser G_PUBLIC_PORT si c'est vide
PRIVATE_PORT: # Utiliser G_PRIVATE_PORT si c'est vide
SERVER_NAME: # Utiliser G_SERVER_NAME si c'est vide
WORK_PATH: # Utiliser G_WORK_PATH si c'est vide
CONFLINE: # Cela peut être laissé vide
Rôle du Serveur | Définition |
---|---|
0 | Scénario de Lecture de Cohérence avec des suiveurs illisibles |
1 | Scénario Prêt pour l'Équilibrage de Charge avec des suiveurs lisibles |
2 | Node algo mais exclu de l'Équilibrage de Charge Prêt et ne peut pas être élu comme leader; le nombre de nodes algo dans un cluster ne peut pas dépasser la moitié |
3 | Node algo éligible pour l'Équilibrage de Charge Prêt |
4 | Node de sauvegarde exclu de l'élection et uniquement pour la synchronisation des données |