Déployer 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 se révéler complexe et fastidieuse sans solution automatisée. Dans l'idéal, vos utilisateurs et vos clients doivent être en mesure d'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 pour 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 basée sur DNS et des fonctionnalités de sécurité intégrées telles que Domain Name System Security Extensions (DNSSEC) pour les protéger contre les attaques d'altération et d'usurpation d'identité.
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 OCI Kubernetes Engine déployé dans une zone DNS OCI pour contenir les enregistrements A de vos services exposés via des équilibreurs de charge. Dans cette architecture, le cluster OCI Kubernetes Engine (OKE) comporte trois noeuds de processus actif et trois espaces de noms différents pour la ségrégation de déploiement. Utilisez cette architecture pour un déploiement OKE multi-environnements qui utilise un seul cluster au lieu de plusieurs.
Le schéma suivant illustre cette architecture de référence.
multi-locataire-oke-dns-architecture.zip
Chaque environnement (développement, test et production) possè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 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 schéma suivant illustre cette architecture logicielle.
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é.
- 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.
- 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.
- 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.
- DNS
Le service DNS (Domain Name System) Oracle Cloud Infrastructure est un réseau DNS (Domain Name System) global hautement évolutif qui offre des performances DNS, une résilience et une évolutivité améliorées, de sorte 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 Oracle Cloud Infrastructure DNS vous permet de gérer des zones. Une zone est une partie de l'espace de noms DNS. Elle est définie par un enregistrement SOA (origine d'autorité). Une zone contient tous les libellés se trouvant au niveau inférieur dans l'arborescence, sauf indication contraire.
Recommandations
- Réseau cloud virtuel
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.
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.
Points à prendre en compte
Lors du déploiement de plusieurs environnements au sein d'un même cluster OCI Kubernetes Engine, tenez compte des points suivants.
- Sécurité
Envisagez d'utiliser des stratégies réseau Kubernetes pour séparer la connectivité des espaces de noms et utilisez le contrôle d'accès basé sur les rôles pour contrôler l'accès à la gestion des espaces de noms.