Déployer une grappe Kubernetes avec la gestion automatique de DNS pour plusieurs environnements
La gestion de la stratégie DNS en nuage pour vos environnements internes et externes (développement, test et production, par exemple) peut devenir complexe et prendre beaucoup de temps sans solution automatisée. Idéalement, vos utilisateurs et vos clients devraient être en mesure de naviguer vers un domaine, et votre solution DNS devrait 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 pour automatiser une solution DNS afin que les utilisateurs puissent facilement accéder au domaine voulu, notamment des fonctions avancées telles que l'équilibrage de charge global, le basculement automatique, la gestion du trafic basé sur DNS et des fonctions de sécurité intégrées telles que les extensions de sécurité du système de noms de domaine (DNSSEC) pour se protéger contre les attaques d'altération et d'usurpation.
Cette architecture de référence utilise un déploiement de grappe kubernetes unique avec les zones DNS d'Oracle Cloud Infrastructure et Kubernetes ExternalDNS pour configurer une solution DNS conçue pour plusieurs environnements.
Architecture
Cette architecture utilise une grappe du moteur Kubernetes pour OCI déployée dans une zone DNS pour OCI pour contenir les "enregistrements A" pour vos services exposés au moyen d'équilibreurs de charge. Dans cette architecture, la grappe OCI Kubernetes Engine (OKE) comporte trois noeuds de travail et trois espaces de noms différents pour la séparation des déploiements. Utilisez cette architecture pour un déploiement OKE multienvironnement qui utilise un seul cluster au lieu de plusieurs.
Le diagramme suivant illustre cette architecture de référence.
multilocataire-oke-dns-architecture.zip
Chaque environnement (développement, test et production) possède son propre jeu 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 permet aux clients externes d'accéder plus facilement aux services du cluster. Les composants Kubernetes sont acheminés vers Kubernetes ExternalDNS, qui crée ensuite des "enregistrements A" pointant vers chaque équilibreur de charge de service dans OCI.
Le diagramme suivant illustre cette architecture logicielle.
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é.
- É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.
- 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.
- 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.
- DNS
Le service de système de noms de domaine (DNS) d'Oracle Cloud Infrastructure est un réseau de système de noms de domaine d'unidiffusion aléatoire mondial hautement évolutif qui offre une performance, une résilience et une extensibilité améliorées du DNS, afin que les utilisateurs finaux se connectent à l'application des clients le plus rapidement possible, où qu'ils se trouvent.
- Zone DNS publique/privée
Le service DNS pour Oracle Cloud Infrastructure vous permet de gérer les zones. Une zone est une partie de l'espace de noms DNS. Un enregistrement SOA (Start of Authority) définit une zone. Une zone contient toutes les étiquettes situées en dessous d'elle dans l'arbre, sauf indication contraire.
Recommandations
- Réseau en nuage 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'adresses IP privées 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 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.
Points à considérer
Lors du déploiement de plusieurs environnements dans une seule grappe OCI Kubernetes Engine, tenez compte des éléments suivants.
- Sécurité
Envisagez d'utiliser des politiques de réseau Kubernetes pour séparer la connectivité des espaces de noms et de compter sur le contrôle d'accès basé sur les rôles pour contrôler l'accès à la gestion des espaces de noms.