Déployer un système MySQL Database hautement disponible dans un cluster 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 souhaitant déployer rapidement des applications cloud natives sécurisées. Vous pouvez utiliser l'opérateur de service OCI pour Kubernetes (OSOK) afin de provisionner et de gérer les systèmes MySQL Database pour les applications déployées dans Déployer un système MySQL Database hautement disponible dans un cluster Oracle Cloud Infrastructure Kubernetes Engine (clusters OCI Kubernetes Engine ou OKE).

L'utilisation d'OSOK simplifie la gestion des systèmes MySQL Database pour les administrateurs OKE et permet de déployer des instances de système MySQL Database avec des applications à l'aide de l'outil de gestion de packages Kubernetes, Helm.

Architecture

Cette architecture de référence présente une application déployée dans un cluster 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 du cluster OKE avec OSOK.

OSOK permet de gérer le système MySQL Database comme n'importe quelle 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 au cluster OKE.

Le système MySQL Database peut être déployé en tant que système autonome ou avec la haute disponibilité. Un système MySQL Database compatible avec la haute disponibilité contient trois instances déployées sur différents domaines de disponibilité ou domaines de pannes. L'application se connecte à une seule adresse pour lire et écrire dans la base de données. En cas de panne, le système de base de données bascule automatiquement vers une instance secondaire sans reconfiguration de l'application.

Le schéma suivant illustre cette architecture de référence.

Description de l'image oci-mysql-oke-ha-arch.png
Description de l'image 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 précise, incluant 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 (entre pays, voire continents).

  • Domaines de disponibilité

    Les domaines de disponibilité sont des centres de données autonomes indépendants au sein d'une région. Les ressources physiques de chaque domaine de disponibilité sont isolées de celles des autres, ce qui garantit la tolérance aux pannes. Les domaines de disponibilité ne partagent ni infrastructure (par exemple, alimentation, système de refroidissement), ni réseau de domaine de disponibilité interne. Par conséquent, une panne sur un domaine de disponibilité ne doit pas affecter les autres domaines de disponibilité de la région.

  • Domaines de pannes

    Un domaine de pannes est un regroupement de matériel et d'infrastructures au sein d'un domaine de disponibilité. Chaque domaine de disponibilité comporte trois domaines de pannes avec du matériel et une alimentation indépendants. Lorsque vous répartissez les ressources entre plusieurs domaines de pannes, vos applications peuvent tolérer les pannes physiques du serveur, la maintenance du système et les pannes d'alimentation au sein d'un domaine de pannes.

  • Réseau cloud virtuel (VCN) et sous-réseaux

    Un VCN est un réseau personnalisable défini par logiciel que vous configurez dans une région Oracle Cloud Infrastructure. Comme les réseaux de centre de données traditionnels, les réseaux cloud virtuels vous donnent le contrôle sur l'environnement réseau. Un réseau cloud virtuel peut comporter plusieurs blocs CIDR qui ne se chevauchent pas et que vous pouvez modifier après l'avoir créé. Vous pouvez segmenter un réseau cloud virtuel en plusieurs sous-réseaux ciblant une région ou un domaine de disponibilité. Chaque sous-réseau est composé d'une plage contiguë d'adresses qui ne chevauchent pas celles des autres sous-réseaux du réseau cloud 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é.

  • OCI Kubernetes Engine

    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 en conteneur vers le cloud. Indiquez les ressources de calcul requises par vos applications et Kubernetes Engine les provisionne sur Oracle Cloud Infrastructure dans une location existante. OKE utilise Kubernetes pour automatiser le déploiement, le redimensionnement et la gestion des applications en conteneur dans les clusters d'hôtes.

  • Oracle MySQL Database Service

    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 sécurisées natives du cloud. Optimisé pour et exclusivement disponible dans OCI, Oracle MySQL Database Service est conçu, 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é hautes performances (HeatWave) qui permet d'exécuter des analyses sophistiquées en temps réel directement sur une base de données MySQL opérationnelle.

  • Passerelle NAT (Network Address Translation)

    Une passerelle NAT permet aux ressources privées d'un VCN d'accéder aux hôtes sur Internet, sans les exposer aux connexions Internet entrantes.

  • Passerelle de service

    La passerelle de service fournit un accès à partir d'un VCN à d'autres services, tels qu'Oracle Cloud Infrastructure Object Storage. Le trafic entre le VCN et le service Oracle passe par la structure du réseau Oracle et ne traverse pas Internet.

  • Registry

    Oracle Cloud Infrastructure Registry est un registre géré par Oracle qui vous permet de simplifier votre workflow du développement jusqu'à la 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 garantit un déploiement et une gestion fiables des applications.

  • Equilibreur de charge

    Le service Oracle Cloud Infrastructure Load Balancing fournit une répartition de trafic automatique à partir d'un seul point d'entrée vers plusieurs serveurs dans le back-end.

  • 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 via des passerelles.

  • Liste de sécurité

    Pour chaque sous-réseau, vous pouvez créer des règles de sécurité qui indiquent la source, la destination et le type de trafic qui doivent être autorisés à entrer et à sortir du sous-réseau.

Recommandations

Utilisez les recommandations suivantes comme point de départ. Vos exigences peuvent être différentes de l'architecture décrite ici.
  • 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 à des sous-réseaux dans le VCN. Utilisez des blocs CIDR qui se trouvent dans l'espace d'adresse IP privée standard.

    Sélectionnez les blocs CIDR qui ne chevauchent aucun autre réseau (dans Oracle Cloud Infrastructure, votre centre de données sur site ou un autre fournisseur cloud) auquel vous avez l'intention de 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 du flux de trafic et des exigences 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 d'é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 indiquer une forme personnalisée (flexible) dans laquelle vous définissez une plage de bande passante et laisser le service redimensionner automatiquement la bande passante en fonction des modèles de trafic. Dans l'une ou l'autre approche, vous pouvez modifier la forme à tout moment après avoir créé l'équilibreur de charge.

  • Listes de sécurité

    Utilisez des listes de sécurité pour définir des règles entrantes et sortantes qui s'appliquent à l'ensemble du sous-réseau.

  • Oracle MySQL Database Service

    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 à prendre en compte

Lors du déploiement d'une application dans Oracle Cloud, tenez compte de ces options pour connaître la disponibilité.

  • Disponibilité de l'application

    L'application est déployée avec plusieurs pods dans le déploiement pour fournir une haute disponibilité.

  • Disponibilité et évolutivité de My SQL Database Service

    MySQL Database Service affiché dans l'architecture hautement disponible utilise l'option de haute disponibilité MySQL intégrée, qui crée trois instances et les place dans différents domaines de pannes.

  • Sécurité

    Utilisez des stratégies qui limitent l'accès aux ressources OCI disponibles. OKE est intégré à OCI Identity and Access Management (IAM). IAM facilite l'authentification avec la fonctionnalité d'identité OCI native.

Déployez

Cette architecture de référence peut être déployée et gérée à partir du cluster OKE sans utiliser la console ou l'interface de ligne de commande OCI 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'un cluster Kubernetes déployé dans OCI. Vous pouvez télécharger le code à partir de GitHub et le personnaliser en fonction de vos besoins spécifiques.

  1. Accédez à GitHub.
  2. Clonez ou téléchargez le référentiel sur votre ordinateur local.
  3. Suivez les instructions du document README.

Remerciements

Auteur : Chiping Hwang