Ce document explique comment allouer des adresses IP à un cluster d'administrateur haute disponibilité (HA) et à deux clusters d'utilisateurs HA.
Avant de commencer
Pour en savoir plus sur les clusters d'administrateur, les clusters d'utilisateur et la haute disponibilité, consultez la section Choisir un modèle de déploiement.
Exemple d'allocation d'adresses IP
Cette section donne un exemple d'allocation d'adresses IP dans une installation comprenant les éléments suivants:
Adresses IP des nœuds de cluster
Adresses IP pour les pods
Adresses IP de cluster pour les services
Adresses IP virtuelles (VIP) pour les plans de contrôle et les proxys d'entrée
Adresses IP virtuelles à utiliser comme adresses IP externes pour les services
Nœuds du cluster d'administrateur
Dans cet exemple, le cluster d'administrateur comporte trois nœuds. Chaque nœud exécute des composants du plan de contrôle.
Nœuds de cluster d'utilisateur
Dans cet exemple, chaque cluster d'utilisateur comporte six nœuds: trois nœuds de plan de contrôle et trois nœuds de calcul.
Équilibrage de charge
Pour cet exemple, supposons que les clusters utilisent l'équilibreur de charge MetalLB fourni. L'équilibreur de charge s'exécute sur les nœuds du cluster. Aucune machine supplémentaire n'est donc nécessaire pour l'équilibrage de charge.
Sous-réseaux
Pour cet exemple, supposons que chaque cluster se trouve dans son propre domaine de couche 2 et que les clusters se trouvent dans les sous-réseaux suivants:
Cluster | Sous-réseau | Passerelle par défaut |
---|---|---|
Cluster d'administrateur | 172.16.20.0/24 | 172.16.20.1 |
Cluster d'utilisateur 1 | 172.16.21.0/24 | 172.16.21.1 |
Cluster d'utilisateur 2 | 172.16.22.0/24 | 172.16.22.1 |
Le schéma suivant illustre les trois sous-réseaux. Notez que les adresses IP virtuelles ne sont associées à aucun nœud particulier d'un cluster. En effet, l'équilibreur de charge MetalLB peut choisir le nœud qui annonce l'adresse IP virtuelle pour un service individuel. Par exemple, dans le cluster d'utilisateur 1, un nœud peut annoncer 172.16.21.52 et un autre nœud peut annoncer 172.16.21.53.
Exemples d'adresses IP : nœuds de cluster d'administrateur
Vous avez besoin de trois adresses IP pour les nœuds de votre cluster d'administrateur, qui exécutent tous des composants du plan de contrôle. Par exemple, vous pouvez utiliser les adresses IP suivantes pour les nœuds de votre cluster d'administrateur. Les adresses de cet exemple sont consécutives, mais ce n'est pas obligatoire:
Adresses IP des nœuds du cluster d'administrateur |
---|
172.16.20.2 - 172.16.20.4 |
Exemple d'adresse IP: adresse IP virtuelle du plan de contrôle pour le cluster d'administrateur
Vous devez réserver une adresse IP virtuelle pour le serveur d'API Kubernetes du cluster d'administrateur.
Dans le fichier de configuration du cluster, il s'agit de controlPlaneVIP
.
Par exemple, vous pouvez réserver l'adresse IP suivante pour l'adresse IP virtuelle du plan de contrôle du cluster d'administrateur:
Adresse IP virtuelle du plan de contrôle pour le cluster d'administrateur |
---|
172.16.20.50 |
Exemples d'adresses IP : nœud de cluster utilisateur 1
Par exemple, vous pouvez utiliser les adresses IP suivantes pour trois nœuds de plan de contrôle et trois nœuds de calcul dans le cluster d'utilisateur 1. Les adresses de cet exemple sont consécutives, mais ce n'est pas obligatoire:
Adresses IP des nœuds du cluster d'utilisateur 1 |
---|
172.16.21.2 - 172.16.21.7 |
Exemples d'adresses IP : adresses IP virtuelles pour le cluster d'utilisateur 1
Le tableau suivant montre comment désigner des adresses IP virtuelles à configurer sur l'équilibreur de charge pour le cluster d'utilisateur 1. Les adresses VIP de cet exemple sont consécutives, mais ce n'est pas une exigence:
VIP | Description | Adresse IP |
---|---|---|
Adresse IP virtuelle du plan de contrôle pour le cluster d'utilisateur 1 | Configuré sur l'équilibreur de charge pour le cluster d'utilisateur 1 | 172.16.21.50 |
Adresse IP virtuelle d'entrée pour le cluster d'utilisateur 1 | Configuré sur l'équilibreur de charge pour le cluster d'utilisateur 1 | 172.16.21.51 |
Adresses IP virtuelles de service pour le cluster d'utilisateur 1 | Dix adresses pour les services de type LoadBalancer .Configuré selon les besoins sur l'équilibreur de charge pour le cluster d'utilisateur 1. Notez que cette plage inclut l'adresse IP virtuelle d'entrée. Il s'agit d'une exigence pour l'équilibreur MetalLB. |
172.16.21.51 - 172.16.21.60 |
Exemples d'adresses IP : nœud de cluster utilisateur 2
Par exemple, vous pouvez utiliser les adresses IP suivantes pour les nœuds du cluster d'utilisateur 2. Les adresses de cet exemple sont consécutives, mais ce n'est pas obligatoire:
Adresses IP des nœuds du cluster d'utilisateur 2 |
---|
172.16.22.2 - 172.16.22.7 |
Exemples d'adresses IP : adresses IP virtuelles pour le cluster d'utilisateur 2
Le tableau suivant montre comment désigner des adresses IP virtuelles à configurer sur l'équilibreur de charge pour le cluster d'utilisateur 2. Les adresses VIP de cet exemple sont consécutives, mais ce n'est pas obligatoire.
VIP | Description | Adresse IP |
---|---|---|
Adresse IP virtuelle du plan de contrôle pour le cluster d'utilisateur 2 | Configuré sur l'équilibreur de charge pour le cluster d'utilisateur 2 | 172.16.22.50 |
Adresse IP virtuelle d'entrée pour le cluster d'utilisateur 2 | Configuré sur l'équilibreur de charge pour le cluster d'utilisateur 2 | 172.16.22.51 |
Adresses IP virtuelles de service pour le cluster d'utilisateur 2 | Dix adresses pour les services de type LoadBalancer .Configuré selon les besoins sur l'équilibreur de charge pour le cluster d'utilisateur 2. Notez que cette plage inclut l'adresse IP virtuelle d'entrée. Il s'agit d'une exigence pour l'équilibreur de charge MetalLB. |
172.16.22.51 - 172.16.22.60 |
Exemples d'adresses IP : pods et services
Avant de créer un cluster, vous devez spécifier une plage CIDR à utiliser pour les adresses IP des pods et une autre à utiliser pour les adresses ClusterIP
de Services Kubernetes.
Déterminez les plages CIDR que vous souhaitez utiliser pour les pods et les services. Exemple :
Objectif | Plage CIDR |
---|---|
Pods dans le cluster d'administrateur | 192.168.0.0/16 |
Pods dans le cluster d'utilisateur 1 | 192.168.0.0/16 |
Pods dans le cluster d'utilisateur 2 | 192.168.0.0/16 |
Services dans le cluster d'administrateur | 10.96.0.0/20 |
Services dans le cluster d'utilisateur 1 | 10.96.0.0/20 |
Services dans le cluster d'utilisateur 2 | 10.96.0.0/20 |
Les exemples précédents illustrent ces points :
La plage CIDR du pod peut être identique pour plusieurs clusters dans le modèle de réseau par défaut en mode île. Dans un réseau en mode plat, les pods doivent disposer d'adresses IP uniques sur tous les clusters. Pour en savoir plus sur les modèles de réseau affectant les pods, consultez la section Modèles réseau en mode plat ou en mode île.
La plage CIDR du service peut être identique pour plusieurs clusters.
Généralement, vous avez besoin de plus de pods que de services. Par conséquent, pour un cluster donné, vous souhaiterez probablement une plage CIDR de pods plus grande que la plage CIDR de service. L'exemple de plage de pods pour un cluster d'utilisateur est 192.168.0.0/16, avec 2^(32-16) = 2^16 adresses. Toutefois, l'exemple de plage de services pour un cluster d'utilisateur est 10.96.0.0/20, qui ne contient que 2^(32-20) = 2^12 adresses.
Éviter le chevauchement
Veillez à ce que vos plages CIDR ne chevauchent pas les adresses IP accessibles sur votre réseau. Les plages de services et de pods ne doivent chevaucher aucune adresse en dehors du cluster que vous souhaitez atteindre depuis l'intérieur du cluster.
Par exemple, supposons que votre plage de services soit 10.96.0.0/20 et que votre plage de pods soit 192.168.0.0/16. Tout trafic envoyé depuis un pod vers une adresse dans l'une de ces plages est traité comme étant dans un cluster et n'atteint aucune destination en dehors du cluster.
En particulier, les plages de services et de pods ne doivent pas chevaucher les éléments suivants :
Adresses IP des nœuds d'un cluster
Adresses IP utilisées par les machines des équilibreurs de charge
Adresses IP virtuelles utilisées par les nœuds de plan de contrôle et les équilibreurs de charge
Adresses IP des serveurs DNS et NTP
Nous vous recommandons de placer vos plages de services et de pods dans l'espace d'adressage RFC 1918.
Voici l'une des raisons pour lesquelles il est recommandé d'utiliser les adresses RFC 1918 Supposons que votre plage de services et de pods contienne des adresses IP externes. Tout trafic envoyé depuis un pod vers l'une de ces adresses externes sera traité comme du trafic interne au cluster et n'atteindra pas la destination externe.
Variantes d'allocation d'adresses IP
L'exemple donné dans ce document montre une façon d'allouer des adresses IP pour un type d'installation particulier. Toutefois, il existe plusieurs façons d'installer Google Distributed Cloud, et la variante que vous choisissez aura une incidence sur la façon dont vous planifiez vos adresses IP.
Par exemple, vous pouvez décider d'utiliser des clusters non HA ou de répartir vos nœuds de cluster sur plusieurs domaines de couche 2. Vous pouvez décider d'utiliser un réseau en mode plat au lieu d'un réseau en mode île.
Pour obtenir des exemples de la manière dont les adresses IP sont spécifiées dans les fichiers de configuration de cluster pour différents types d'installations, consultez la section Exemples de configuration de cluster.
Pour en savoir plus sur la planification de vos adresses IP pour différents types d'installations, consultez les documents suivants:
Modèle de réseau en mode plat ou en mode île
En mode plat, les pods disposent d'adresses uniques sur plusieurs clusters. Ajustez les plages CIDR des pods en conséquence.
Mise en réseau de la double pile IPv4/IPv6
Les nœuds, les pods et les services disposent à la fois d'adresses IPv4 et IPv6. Le réseau IPv6 est en mode plat, mais le réseau IPv4 peut être en mode île ou en mode plat. Pour les réseaux en mode plat, vous devez assurer la connectivité des pods.
Implémenter un modèle de réseau en mode IPv4 plat
Vous devez vous assurer que le pod est accessible. Faites des sous-ensembles de la plage de pods et de la plage de nœuds d'une plage plus étendue.
Mise en œuvre d'un modèle de réseau en mode plat avec compatibilité BGP
Vous avez besoin d'adresses IP flottantes pour les émetteurs BGP de votre cluster, et vous devez spécifier les adresses IP des routeurs pairs.
Configurer des équilibreurs de charge groupés avec BGP
Vous avez besoin d'adresses IP flottantes pour les annonceurs BGP de votre cluster, et vous devez spécifier les adresses IP des routeurs pairs.
Configurer Network Connectivity Gateway
Vous devez spécifier les adresses IP des pairs et les adresses IP des tunnels locaux.