Déploiement d'un cluster Kubernetes avec gestion DNS automatique pour plusieurs environnements

La gestion de la stratégie DNS cloud pour vos environnements internes et externes (développement, test et production, par exemple) peut s'avérer compliquée et chronophage sans solution automatisée. Idéalement, vos utilisateurs et vos clients doivent pouvoir accéder à un domaine et votre solution DNS doit diriger vers l'adresse IP de l'environnement approprié. Ce scénario idéal est convivial et peut prévenir les erreurs humaines.

Kubernetes ExternalDNS offre des fonctionnalités permettant d'automatiser une solution DNS afin de faciliter la navigation des utilisateurs vers le domaine qu'ils souhaitent, notamment des fonctionnalités avancées telles que l'équilibrage de charge global, le basculement automatique, la gestion du trafic DNS et des fonctionnalités de sécurité intégrées telles que les extensions DNSSEC (Domain Name System Security Extensions) pour aider à se protéger contre les attaques de falsification et d'usurpation.

Cette architecture de référence utilise un déploiement de cluster kubernetes unique avec des zones DNS Oracle Cloud Infrastructure et Kubernetes ExternalDNS pour configurer une solution DNS conçue pour plusieurs environnements.

Architecture

Cette architecture utilise un cluster Oracle Cloud Infrastructure Container Engine for Kubernetes (OCI OKE) déployé dans une zone DNS OCI pour contenir les "enregistrements A" pour vos services exposés via des équilibreurs de charge. Dans cette architecture, le cluster OKE comporte trois noeuds de processus actif et trois espaces de noms différents pour la séparation du déploiement. Utilisez cette architecture pour un déploiement OKE multi-environnement qui utilise un seul cluster au lieu de plusieurs.

Le diagramme suivant illustre cette architecture de référence.



multi-tenant-oke-dns-architecture.zip

Chaque environnement (développement, test et production) dispose de son propre ensemble de composants kubernetes tels que des espaces de noms, des pods et des services. Kubernetes ExternalDNS permet la création et la gestion automatiques des enregistrements DNS pour les services kubernetes exposés en externe. Cela facilite l'accès des clients externes aux services à l'intérieur du cluster. Les composants kubernetes acheminent vers Kubernetes ExternalDNS, qui crée ensuite des "enregistrements" pointant vers chaque équilibreur de charge de service dans OCI.

Le diagramme suivant illustre cette architecture logicielle.



kubernetes-external-dns.zip

L'architecture comporte les composants suivants :

  • Région

    Une région Oracle Cloud Infrastructure est une zone géographique précise 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 des pays voire des 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. Ainsi, il est peu probable qu'une panne sur un domaine de disponibilité affecte 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 alimentation et matériel indépendants. Lorsque vous répartissez des ressources entre plusieurs domaines de pannes, vos applications peuvent tolérer les pannes de serveur physiques, de maintenance du système et 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 un contrôle total 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é.

  • équilibreur de charge

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

  • Liste de sécurité

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

  • Container Engine for Kubernetes

    Oracle Cloud Infrastructure Container Engine for Kubernetes 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 dont vos applications ont besoin et Container Engine for Kubernetes les provisionne sur Oracle Cloud Infrastructure dans une location existante. Container Engine for Kubernetes utilise Kubernetes pour automatiser le déploiement, le redimensionnement et la gestion des applications en conteneur sur des clusters d'hôtes.

  • DNS

    Le service DNS (Domain Name System) Oracle Cloud Infrastructure est un réseau DNS (Domain Name System) anycast mondial hautement évolutif qui offre des performances, une résilience et une évolutivité DNS améliorées, afin que les utilisateurs finaux se connectent aux applications des clients le plus rapidement possible, où qu'ils se trouvent.

  • Zone DNS publique/privée

    Le service Oracle Cloud Infrastructure DNS vous permet de gérer des zones. Une zone est une partie de l'espace de noms DNS. Un enregistrement SOA (début d'autorité) définit une zone. Une zone contient tous les libellés se trouvant au niveau inférieur dans l'arborescence, sauf indication contraire.

Recommandations

Utilisez les recommandations suivantes comme point de départ. Vos exigences peuvent différer de l'architecture décrite ici.
  • Réseau cloud virtuel (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'adressage IP privé standard.

    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 d'équilibreur de charge

    Lors de la création de l'équilibreur de charge, vous pouvez sélectionner une forme prédéfinie fournissant 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. Selon l'une ou l'autre approche, vous pouvez modifier la forme à tout moment après avoir créé l'équilibreur de charge.

Points à prendre en compte

Lorsque vous déployez plusieurs environnements au sein d'un seul cluster Oracle Cloud Infrastructure Container Engine for Kubernetes, tenez compte des points suivants.

  • Sécurité

    Envisagez d'utiliser les stratégies réseau Kubernetes pour séparer la connectivité des espaces de noms et utilisez un contrôle d'accès basé sur les rôles pour contrôler l'accès à la gestion des espaces de noms.

Déployez

Les instructions de configuration de Kubernetes ExternalDNS pour utiliser Oracle Cloud Infrastructure DNS sont disponibles dans Configuration de ExternalDNS pour utiliser Oracle Cloud Infrastructure DNS dans la documentation Oracle Cloud Infrastructure.

En savoir plus

En savoir plus sur le déploiement d'un cluster Oracle Container Engine for Kubernetes avec la gestion DNS automatique.

Consultez les ressources supplémentaires suivantes :

Remerciements

Auteur:

  • Guido Alejandro Ferreyra