Créer un cluster basé sur le routage


Cette page montre comment créer un cluster basé sur le routage dans Google Kubernetes Engine (GKE).

Présentation

GKE comprend deux types de clusters, caractérisés par la manière dont ils acheminent le trafic d'un pod à un autre. Un cluster qui utilise des routes Google Cloud est appelé cluster basé sur le routage. Un cluster qui s'appuie sur des adresses IP d'alias est appelé cluster de VPC natif.

Le VPC natif est le type recommandé et est utilisé par défaut pour les nouveaux clusters dans GKE 1.21.0-gke.1500 et versions ultérieures. Pour créer un cluster basé sur le routage, vous devez désactiver explicitement l'option VPC natif.

Avant de commencer

Avant de commencer, effectuez les tâches suivantes :

  • Activez l'API Google Kubernetes Engine.
  • Activer l'API Google Kubernetes Engine
  • Si vous souhaitez utiliser Google Cloud CLI pour cette tâche, installez puis initialisez gcloud CLI. Si vous avez déjà installé gcloud CLI, assurez-vous de disposer de la dernière version en exécutant la commande gcloud components update.

Créer un cluster basé sur des routes

Vous pouvez créer un cluster basé sur le routage à l'aide de gcloud CLI ou de Google Cloud Console.

gcloud

Pour créer un cluster basé sur le routage, ajoutez l'option --no-enable-ip-alias dans la commande de création de cluster :

gcloud container clusters create CLUSTER_NAME --no-enable-ip-alias

Remplacez CLUSTER_NAME par le nom que vous avez choisi pour votre cluster.

Console

  1. Accédez à la page Google Kubernetes Engine dans Google Cloud Console.

    Accéder à Google Kubernetes Engine

  2. Cliquez sur Créer.

  3. Saisissez le nom voulu pour votre cluster.

  4. Dans le volet de navigation, cliquez sur Réseau sous Cluster.

  5. Sous Options de mise en réseau avancées, décochez la case Activer le routage du trafic de VPC natif (utilisation d'une adresse IP d'alias).

  6. Cliquez sur Créer.

Créer un cluster basé sur le routage et sélectionner la plage d'adresses IP du plan de contrôle

Par défaut, les clusters dotés de Private Service Connect utilisent la plage de sous-réseaux principale pour provisionner l'adresse IP interne attribuée au point de terminaison du plan de contrôle. Vous pouvez remplacer ce paramètre par défaut seulement au moment de la création du cluster en sélectionnant une autre plage de sous-réseaux. Les sections suivantes expliquent comment créer un cluster avec Private Service Connect et remplacer la plage de sous-réseaux.

gcloud

Créez un cluster avec Private Service Connect :

gcloud container clusters create CLUSTER_NAME --no-enable-ip-alias \
    --private-endpoint-subnetwork=SUBNET_NAME \
    --region=COMPUTE_REGION

Remplacez les éléments suivants :

  • CLUSTER_NAME : nom du cluster GKE.
  • SUBNET_NAME : nom d'un sous-réseau existant.
  • COMPUTE_REGION : région de calcul du cluster. Pour créer un cluster zonal, remplacez cette option par --zone=COMPUTE_ZONE, où COMPUTE_ZONE correspond à une zone de calcul.

Console

Conditions préalables

Pour attribuer un sous-réseau au plan de contrôle d'un nouveau cluster, vous devez d'abord ajouter un sous-réseau.

Créer un cluster et attribuer la plage d'adresses IP du plan de contrôle

  1. Accédez à la page Google Kubernetes Engine dans Google Cloud Console.

    Accéder à Google Kubernetes Engine

  2. Cliquez sur Créer.

  3. Saisissez le nom voulu pour votre cluster.

  4. Dans le volet de navigation, cliquez sur Réseau sous Cluster.

  5. Dans la section Accès au réseau IPv4, procédez comme suit :

    1. Pour créer un cluster GKE public, sélectionnez la case d'option Cluster public.
    2. Pour créer un cluster GKE privé, sélectionnez la case d'option Cluster privé.

    Dans les deux cas, vous pouvez ensuite modifier le mode d'isolation du cluster lors de la modification de sa configuration.

  6. Dans la section Options de mise en réseau avancées, cochez la case Remplacer le sous-réseau du point de terminaison privé par défaut du plan de contrôle.

  7. Dans la liste Sous-réseau du point de terminaison privé, sélectionnez le sous-réseau que vous avez créé.

  8. Décochez la case Activer le routage du trafic de VPC natif (utilisation d'une adresse IP d'alias).

  9. Cliquez sur Créer.

Vérifier que votre cluster utilise des routes

gcloud

Affichez la liste des nœuds de votre cluster :

kubectl get nodes

Le résultat affiche les adresses IP externes de vos nœuds :

NAME                                 STATUS   ...     AGE    VERSION
gke-xxx-default-pool-83e239a7-kcg8   Ready    ...     42m    v1.9.7-gke.6
gke-xxx-default-pool-83e239a7-qm6b   Ready    ...     42m    v1.9.7-gke.6
gke-xxx-default-pool-83e239a7-wnrq   Ready    ...     42m    1.9.7-gke.6

Affichez la liste de vos routes :

gcloud compute routes list

Dans le résultat, repérez la colonne NEXT_HOP et recherchez le nom de l'un des nœuds de votre cluster :

NAME                 NETWORK        DEST_RANGE         NEXT_HOP
...
[ROUTE_NAME]         default        10.24.0.0/24       [YOUR_NODE_NAME]
...

Dans ce résultat, la route fournit un saut suivant pour tout paquet destiné à une plage d'adresses déterminée du pod.

Console

  1. Accédez à la page Google Kubernetes Engine dans Google Cloud Console.

    Accéder à Google Kubernetes Engine

  2. Dans la liste des clusters, cliquez sur le nom du cluster que vous souhaitez inspecter.

  3. Sur la page Détails du cluster, cliquez sur l'onglet Nœuds.

  4. Dans la section Nœuds, notez les noms des nœuds.

  5. Accédez à la page Routes dans la console Google Cloud.

    Accéder à la page Routes

  6. Dans la liste des routes, repérez la colonne Saut suivant et recherchez le nom de l'un des nœuds de votre cluster. Cliquez sur le nom de route pour la ligne associée.

  7. Sur la page Détails de la route, consultez la section Saut suivant pour vérifier que la route fournit un saut suivant pour tout paquet destiné à une plage d'adresses déterminée du pod.

Nombre de pods par nœud

Dans un cluster basé sur le routage, chaque nœud se voit allouer une plage d'adresses IP de taille /24 pour les pods. Une plage de taille /24 comprend 256 adresses, mais le nombre maximal de pods par nœud est fixé à 110. Avec un nombre d'adresses IP disponibles environ deux fois plus grand que le nombre de pods autorisé, Kubernetes est en mesure de limiter la réutilisation des adresses IP lorsque des pods sont ajoutés et supprimés d'un nœud.

Plage d'adresses du pod

Un cluster basé sur le routage possède une plage d'adresses IP utilisables pour les pods et les services. Bien que cette plage soit destinée à la fois aux pods et aux services, elle est désignée par le terme plage d'adresses des pods. Le dernier bloc /20 de la plage d'adresses des pods est utilisé pour les services. Une plage de taille /20 contient 212 = 4 096 adresses. Ainsi, 4 096 adresses sont réservées aux services, le reste de la plage étant utilisé pour les pods.

Dans le résultat de la commande, la plage d'adresses des pods se nomme clusterIpv4Cidr, tandis que la plage d'adresses destinée aux services se nomme servicesIpv4Cidr. Par exemple, la sortie de gcloud container clusters describe inclut une sortie semblable à ce qui suit :

clusterIpv4Cidr: 10.96.0.0/16
...
servicesIpv4Cidr: 10.96.240.0/20

La plage d'adresses des pods peut provenir de n'importe quel bloc RFC 1918 : 10.0.0.0/8, 172.16.0.0/12 ou 192.168.0.0/16.

Vous pouvez personnaliser la plage d'adresses des pods en spécifiant une plage CIDR, telle que 10.96.0.0/16.

gcloud

gcloud container clusters create CLUSTER_NAME \
    --no-enable-ip-alias \
    --cluster-ipv4-cidr 10.96.0.0/16

Remplacez CLUSTER_NAME par le nom que vous avez choisi pour votre cluster.

Console

  1. Accédez à la page Google Kubernetes Engine dans Google Cloud Console.

    Accéder à Google Kubernetes Engine

  2. Cliquez sur Créer.

  3. Saisissez le nom voulu pour votre cluster.

  4. Dans le volet de navigation, cliquez sur Réseau sous Cluster.

  5. Sous Options de mise en réseau avancées, décochez la case Activer le routage du trafic de VPC natif (utilisation d'une adresse IP d'alias).

  6. Dans le champ Plage d'adresses du pod, saisissez 10.96.0.0/16.

  7. Cliquez sur Create (Créer).

Informations spécifiques au dimensionnement d'un cluster

Le nombre maximal de nœuds, de pods et de services pour un cluster GKE donné est déterminé par la taille du sous-réseau du cluster et la taille de la plage d'adresses des pods. Vous ne pouvez pas modifier la taille de la plage d'adresses des pods après la création d'un cluster. Lorsque vous créez un cluster, veillez à choisir une plage d'adresses des pods suffisamment grande pour prendre en charge la croissance prévue du cluster.

Le tableau suivant explique comment choisir des plages d'adresses suffisantes pour un cluster comportant 900 nœuds :

Plage Conseils
Nœuds

Les adresses IP des nœuds proviennent de la plage principale du sous-réseau du cluster. Le sous-réseau de votre cluster doit être suffisamment grand pour contenir le nombre total de nœuds de ce cluster.

Par exemple, si vous envisagez de créer un cluster de 900 nœuds, la taille du sous-réseau correspondant doit être au moins égale à /22. Une plage de /22 contient 210 = 1 024 adresses. Soustrayez les 4 adresses IP inutilisables et vous obtenez 1 020, ce qui est suffisant pour les 900 nœuds.

Plage d'adresses du pod

Chaque nœud dispose d'une plage d'adresses IP de taille /24 pour les pods. Une plage de taille /24 contient 28 = 256 adresses. Rappelez-vous que 4 096 adresses de la plage d'adresses des pods sont utilisées pour les services. La partie restante de la plage d'adresses des pods est utilisée pour les pods, et doit être suffisamment grande pour contenir un nombre d'adresses égal au nombre de nœuds multiplié par 256.

Supposons que vous envisagiez de créer un cluster de 900 nœuds. Vous avez donc besoin de 900 x 256 = 230 400 adresses pour les pods. Supposons à présent que vous disposiez d'une plage d'adresses des pods de taille /14. Une plage de taille /14 contient 218 = 262 144 adresses. Soustrayez les 4 096 adresses utilisées pour les services, et vous obtenez 258 048, ce qui est suffisant pour 900 nœuds.

Valeurs par défaut et limites pour les tailles de plage

Le tableau suivant indique les tailles minimale, maximale et par défaut du sous-réseau de cluster et de la plage d'adresses des pods.

Plage Taille par défaut Taille minimale Taille maximale
Nœuds

/20, soit 212 = 4 096 adresses. Soustrayez les 4 adresses réservées et vous obtenez 4 092 adresses pour les nœuds.

/29, soit 23 = 8 adresses. Soustrayez les 4 adresses réservées et vous obtiendrez 4 adresses pour les nœuds.

/7, soit 225 adresses. Cela représente environ 33 millions d'adresses pour les nœuds.

Plage d'adresses du pod

/14, soit 218 = 262 114 adresses.

/19, soit 213 = 8 192 adresses.

/9, soit 223 = 8 388 608 adresses.

Restrictions

  • Vous ne pouvez pas migrer un cluster de VPC natif vers un cluster basé sur le routage.
  • Vous ne pouvez pas migrer un cluster basé sur le routage vers un cluster de VPC natif.
  • Les clusters basés sur le routage ne peuvent utiliser que des adresses de la plage RFC 1918 pour les adresses IP privées. Les clusters de VPC natif ont une plus grande plage d'adresses utilisables.
  • Les clusters basés sur le routage ne sont pas compatibles avec la mise en réseau à double pile.

Étapes suivantes