Installation d'un Cluster Kubernetes OVH géré avec Muppy¶
Ce document décrit comment configurer un OVH Managed Kubernetes Cluster OVH pour une utilisation avec muppy.io / Pack8s.
OVH Public Cloud - Managed Kubernetes Service¶
Tout d'abord vous devez sélectionner ou créer un projet OVH Public Cloud.
Création d'un VRACK¶
Si vous n'en avez pas, vous devez créer un vRack et y attacher votre projet Public Cloud.
Création d'un Private Network¶
Vous devez créer un réseau privé qui sera utilisé par le K8s et la base de données.
- Sélectionnez la Localisation
- Nommez votre réseau privé
- Cochez
Créez une Gateway et connectez-vous au réseau privé - Cochez
Définir un ID de VLAN
Lancer la création du Private Network.
Warning
L'ID du VLAN définit la plage d'addresse IP affectée: 10.{ID}.0.0/16
Création d'un Managed Kubernetes Service¶
- Sélectionnez
Managed Kubernetes Service - Cliquez sur
Créer un Cluster - Sélectionnez une localisation ; elle doit être la même que celle du cluster PostgreSQL.
- Sélectionnez la version de K8s ; prendre la version recommandée
- Sélectionnez un réseau privé pour ce cluster:
- Réseau privé attaché: Sélectionez le réseau privé que vous venez de créer
- Passerelle réseau: lorsque cette option est activée, le traffic sortant des nodes passe une passerelle ce qui permet de maitriser l'IP utilisée par les nodes pour se connecter à des ressources externes.
- Sélectionnez un type de noeud (Utilisez Discovery D2-8 pour les tests / dev)
-
Configurer la taille du pool de noeuds:
- Vous avez le choix entre l
Autoscalingou un nombre de noeuds fixe. CochezAutoscaling actifpour les Dev / Tests.
- Vous avez le choix entre l
-
Sélectionnez le monde de facturation (Vous pouvez utiliser Horaire pour les Dev / Tests, mais voud devrez penser à couper vos serveurs.)
Warning
L'utilisation d'une Gateway est obligatoire, si vous voulez que tous vos noeud (y compris ceux qui seront provisionnés dynamiquement) disposent d'une IP fixe et connue.
Création d'un cluster PostgreSQL¶
Créez une instance avec les caractéristiques suivantes:
- Modèle: il doit être identique entre toutes les instances PostgreSQL répliquées.
- Localisation: La localisation doit être compatible avec
Managed Kubernetes Clustersi vous l'utilisez. - Image:
Ubuntu 22.04 - Clé SSH: Celle de Muppy
- Nom de l'instance: le nom de doit pas contenir de référence au modèle de l'intance mais il est intéressant de laisser la localisation.
- Sauvegarde automatisée: Si la taille de vos bases de données le permet, prenez une
Rotation 7. - Réseau:
Mode Privéet sélectionnez le Private network que vous avez créé.- Cochez
Attachez une Floating IP à cette instance(cf. note ci-dessous )
- Période de Facturation: Si la base n'est pas destinée à des fins de tests (donc temporaire), sélectionnez
Mensuel
Note
La Floating IP est nécessaire pour:
- permettre au serveur d'être intégré dans un RCS
- permettre à muppy de se connecter au server.
Création d'un RCS¶
Sur le Cluster PostgreSQL Primary, vérifiez:
- La cohérence des IPs:
- Host IP: C'est l'IP Privé du Host
- Control: C'est l'IP utilisée par Muppy pour se connecter en SSH. En général, c'est une Floating IP Public chez OVH
- Public IP: Utilisez le bouton Detect (l'IP dépend de la gateway)
Warning
Si ces 3 IPs ne sont pas correctement configurées, le setup du RCS et de la Haute Disponibilité va échouer.
Enrollement du Cluster k8s dans Muppy¶
Ensuite, vous devez:
- Créer le Cluster k8s dans Muppy
- Installer les
Packages d'infrastructureMuppy
Création du Cluster k8s dans Muppy¶
Dans le menu Muppy / K8s / K8s Clusters:
- Créer un Cluster
- Uploader le fichier Kubeconfig du Cluster
- La procédure de récupération du fichier Kubeconfig dépend du provider
- Définissez le Qualifier, Provider et la Availability Zone
- Cliquez sur le bouton Update Info et vérifiez que Muppy récupère les Namespaces.
Installation des Packages d'infrastructure¶
L'installation des Packages d'Infrastructure est documentée içi: Packages Infrastructure
Veuillez noter les spécificités suivantes des clusters OVH Managed Kubernetes Cluster (OVH MKS):
* Cert-Manager est déployé dans le cluster
* Traefik est configuré en Ingress et connecté à un Kubernetes Load Balancer
* Les Certificats peuvent être vérifiés en HTTP ou en DNS.