Déployer un système MySQL Database hautement disponible dans une grappe Oracle Cloud Infrastructure Kubernetes Engine
Oracle MySQL Database Service est un service de base de données entièrement géré déployé dans Oracle Cloud Infrastructure (OCI) qui prend en charge les opérateurs et les développeurs cherchant à déployer rapidement des applications en nuage natives et sécurisées. Vous pouvez utiliser l'opérateur de service OCI pour Kubernetes (OSOK) pour provisionner et gérer les systèmes MySQL Database pour les applications déployées dans le déploiement d'un système MySQL Database hautement disponible dans une grappe Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes Engine ou OKE).
L'utilisation d'OSOK simplifie la gestion des systèmes MySQL Database pour les administrateurs OKE et permet le déploiement des instances du système MySQL Database aux côtés des applications à l'aide de l'outil de gestion des ensembles Kubernetes, Helm.
Architecture
Cette architecture de référence présente une application déployée dans une grappe OKE qui utilise un système MySQL Database hautement disponible pour sa base de données. Le système MySQL Database est déployé et géré entièrement à partir de la grappe OKE avec OSOK.
OSOK permet de gérer le système MySQL Database comme toute autre ressource Kubernetes à l'aide de l'interface de ligne de commande Kubernetes standard - kubectl, en modélisant le système MySQL Database en tant que définition de ressource personnalisée (CRD) et en appliquant ces définitions à la grappe OKE.
Le système MySQL Database peut être déployé en tant que système autonome ou avec haute disponibilité. Un système MySQL Database haute disponibilité contient trois instances déployées dans différents domaines de disponibilité ou domaines d'erreur. L'application se connecte à un seul point d'extrémité pour lire et écrire dans la base de données. En cas de défaillance, le système de base de données basculera automatiquement vers une instance secondaire sans reconfiguration de l'application.
Le diagramme suivant illustre cette architecture de référence.

Description de l'illustration oci-mysql-oke-ha-arch.png
oci-mysql-oke-ha-arch-oracle.zip
L'architecture comprend les composants suivants :
- Région
Une région Oracle Cloud Infrastructure est une zone géographique localisée qui contient un ou plusieurs centres de données, appelés domaines de disponibilité. Les régions sont indépendantes les unes des autres, et de grandes distances peuvent les séparer (dans différents pays ou continents).
- Domaines de disponibilité
Les domaines de disponibilité sont des centres de données indépendants et autonomes dans une région. Les ressources physiques de chaque domaine de disponibilité sont isolées des ressources des autres domaines de disponibilité, ce qui garantit la tolérance aux pannes. Les domaines de disponibilité ne partagent pas les éléments d'infrastructure (alimentation ou refroidissement, par exemple) ni le réseau de domaines de disponibilité interne. Par conséquent, une défaillance d'un domaine de disponibilité ne devrait pas affecter les autres domaines de disponibilité de la région.
- Domaines d'erreur
Un domaine d'erreur est un regroupement de matériel et d'infrastructure au sein d'un domaine de disponibilité. Chaque domaine de disponibilité comporte trois domaines d'erreur avec une puissance et un matériel indépendants. Lorsque vous répartissez des ressources entre plusieurs domaines d'erreur, vos applications peuvent tolérer les pannes physiques de serveur, la maintenance du système et les pannes d'alimentation au sein d'un domaine d'erreur.
- Réseau en nuage virtuel (VCN) et sous-réseau
Un VCN est un réseau défini par logiciel personnalisable que vous avez configuré dans une région Oracle Cloud Infrastructure. Comme les réseaux en nuage virtuels traditionnels, ils vous offrent un contrôle sur votre environnement de réseau. Un VCN peut disposer de plusieurs blocs CIDR sans chevauchement que vous pouvez modifier après avoir créé le VCN. Vous pouvez segmenter un VCN en sous-réseaux, dont la portée peut concerner une région ou un domaine de disponibilité. Un sous-réseau est constitué d'un intervalle contigu d'adresses qui ne chevauchent pas les autres sous-réseaux dans le réseau en nuage virtuel. Vous pouvez modifier la taille d'un sous-réseau après sa création. Un sous-réseau peut être public ou privé.
- Moteur Kubernetes pour OCI
Oracle Cloud Infrastructure Kubernetes Engine (Kubernetes Engine ou OKE) est un service entièrement géré, évolutif et hautement disponible que vous pouvez utiliser pour déployer vos applications conteneurisées dans le nuage. Vous indiquez les ressources de calcul dont vos applications ont besoin et Kubernetes Engine les provisionne sur Oracle Cloud Infrastructure dans une location existante. OKE utilise Kubernetes pour automatiser le déploiement, l'ajustement et la gestion des applications conteneurisées sur les grappes d'hôtes.
- Service Oracle MySQL Database
Oracle MySQL Database Service est un service de base de données Oracle Cloud Infrastructure (OCI) entièrement géré qui permet aux développeurs de développer et de déployer rapidement des applications natives en nuage sécurisées. Optimisé pour et exclusivement disponible dans OCI, Oracle MySQL Database Service est créé, géré et pris en charge à 100 % par les équipes d'ingénierie OCI et MySQL.
Oracle MySQL Database Service dispose d'un moteur d'analyse intégré à haute performance (HeatWave) pour exécuter des analyses en temps réel sophistiquées directement sur une base de données opérationnelle MySQL.
- Passerelle de traduction d'adresses de réseau (NAT)
Une passerelle NAT permet aux ressources privées d'un VCN d'accéder à des hôtes sur Internet, sans les exposer aux connexions Internet entrantes.
- Passerelle de service
La passerelle de service fournit l'accès d'un VCN à d'autres services, tels qu'Oracle Cloud Infrastructure Object Storage. Le trafic entre le réseau VCN et le service Oracle circule sur la matrice réseau Oracle et ne passe pas par Internet.
- Registre
Oracle Cloud Infrastructure Registry est un registre géré par Oracle qui vous permet de simplifier votre flux de travail, du développement à la mise en production. Le registre vous permet de stocker, de partager et de gérer facilement des artefacts de développement, tels que des images Docker. L'architecture hautement disponible et évolutive d'Oracle Cloud Infrastructure vous permet de déployer et de gérer vos applications en toute confiance.
- Équilibreur de charge
Le service Oracle Cloud Infrastructure Load Balancing permet une répartition automatisée du trafic à partir d'un point d'entrée unique vers plusieurs serveurs dorsaux.
- Table de routage
Les tables de routage virtuelles contiennent des règles pour acheminer le trafic des sous-réseaux vers des destinations en dehors d'un VCN, généralement au moyen de passerelles.
- Liste de sécurité
Pour chaque sous-réseau, vous pouvez créer des règles de sécurité qui spécifient la source, la destination et le type de trafic qui doivent être autorisés à entrer et à sortir du sous-réseau.
Recommandations
- VCN
Lorsque vous créez un VCN, déterminez le nombre de blocs CIDR requis et la taille de chaque bloc en fonction du nombre de ressources que vous prévoyez d'attacher aux sous-réseaux du VCN. Utilisez des blocs CIDR qui se trouvent dans l'espace d'adresses IP privées standard.
Sélectionnez les blocs CIDR qui ne chevauchent aucun autre réseau (dans Oracle Cloud Infrastructure, votre centre de données sur place ou un autre fournisseur de nuage) auquel vous voulez configurer des connexions privées.
Après avoir créé un VCN, vous pouvez modifier, ajouter et supprimer ses blocs CIDR.
Lorsque vous concevez les sous-réseaux, tenez compte de vos exigences en matière de flux de trafic et de sécurité. Attachez toutes les ressources d'un niveau ou d'un rôle spécifique au même sous-réseau, qui peut servir de limite de sécurité.
- Bande passante de l'équilibreur de charge
Lors de la création de l'équilibreur de charge, vous pouvez sélectionner une forme prédéfinie qui fournit une bande passante fixe, ou spécifier une forme personnalisée (flexible) dans laquelle vous définissez une plage de bande passante et laissez le service ajuster la bande passante automatiquement en fonction des modèles de trafic. Avec l'une ou l'autre approche, vous pouvez modifier la forme en tout temps après avoir créé l'équilibreur de charge.
- Listes de sécurité
Utilisez des listes de sécurité pour définir des règles de trafic entrant et sortant qui s'appliquent à l'ensemble du sous-réseau.
- Service Oracle de base de données MySQL
Dans cette architecture, l'application stocke les données relationnelles dans Oracle MySQL Database Service. Nous vous recommandons d'utiliser la dernière version.
Points à considérer
Lorsque vous déployez une application dans Oracle Cloud, tenez compte de ces options pour déterminer la disponibilité.
- Disponibilité d'application
L'application est déployée avec plusieurs pods dans le déploiement pour assurer une haute disponibilité.
- Disponibilité et évolutivité de mon service de base de données SQL
Le service MySQL Database affiché dans l'architecture hautement disponible utilise l'option de haute disponibilité intégrée MySQL, qui crée trois instances et les place dans différents domaines d'erreur.
- Sécurité
Utilisez des politiques qui limitent l'accès aux ressources OCI disponibles. OKE est intégré au service de gestion des identités et des accès pour OCI (IAM). Le service IAM facilite l'authentification grâce à la fonctionnalité d'identité OCI native.
Déployez
Cette architecture de référence peut être déployée et gérée à partir de la grappe OKE sans utiliser la console OCI ou l'interface de ligne de commande et automatisée avec un graphique Helm. L'exemple de graphique Helm pour cette architecture de référence facilite la création et la gestion d'un système MySQL Database à partir d'une grappe Kubernetes déployée dans OCI. Vous pouvez télécharger le code à partir de GitHub et le personnaliser en fonction de vos besoins spécifiques.
- Allez à GitHub.
- Clonez ou téléchargez le référentiel sur votre ordinateur local.
- Suivez les instructions du document
README
.
Informations complémentaires
Consultez ces ressources supplémentaires pour en savoir plus sur les fonctionnalités de cette architecture :
- Cadre des meilleures pratiques pour Oracle Cloud Infrastructure
- Déployer des applications natives en nuage qui utilisent MySQL dans Oracle Cloud Infrastructure
- En savoir plus sur le déploiement du service MySQL Database dans Oracle Cloud
- Opérateur de service OCI pour Kubernetes
- Aperçu du moteur Kubernetes pour OCI
- Blogue Oracle MySQL