Créer un cluster basé sur le routage


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

Présentation

Google Kubernetes Engine 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. 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 :

Configurez les paramètres gcloud par défaut à l'aide de l'une des méthodes suivantes :

  • Utilisez gcloud init pour suivre les instructions permettant de définir les paramètres par défaut.
  • Utilisez gcloud config pour définir individuellement l'ID, la zone et la région de votre projet.

Utiliser gcloud init

Si le message d'erreur One of [--zone, --region] must be supplied: Please specify location s'affiche, effectuez les tâches ci-dessous.

  1. Exécutez gcloud init et suivez les instructions :

    gcloud init

    Si vous utilisez SSH sur un serveur distant, utilisez l'option --console-only pour empêcher la commande d'ouvrir un navigateur :

    gcloud init --console-only
  2. Suivez les instructions pour autoriser gcloud à utiliser votre compte Google Cloud.
  3. Créez ou sélectionnez une configuration.
  4. Choisissez un projet Google Cloud.
  5. Choisissez une zone Compute Engine par défaut pour les clusters zonaux ou une région pour les clusters régionaux ou Autopilot.

Utiliser gcloud config

  • Définissez votre ID de projet par défaut :
    gcloud config set project PROJECT_ID
  • Si vous utilisez des clusters zonaux, définissez votre zone de calcul par défaut :
    gcloud config set compute/zone COMPUTE_ZONE
  • Si vous utilisez des clusters Autopilot ou régionaux, définissez votre région de calcul par défaut :
    gcloud config set compute/region COMPUTE_REGION
  • Mettez à jour gcloud vers la dernière version :
    gcloud components update

Créer un cluster basé sur le routage

Vous pouvez créer un cluster basé sur le routage à l'aide de l'outil gcloud 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

[CLUSTER_NAME] est un nom que vous choisissez pour votre cluster.

Console

  1. Accédez au menu Google Kubernetes Engine de Cloud Console.

    Accéder au menu 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.

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]
...

Ce résultat indique que la route considérée fournit un saut suivant pour tout paquet destiné à une plage d'adresses déterminée du pod.

Console

  1. Accédez au menu Google Kubernetes Engine de Cloud Console.

    Accéder au menu 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 Cloud Console.

    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 commande gcloud container clusters describe affiche un résultat semblable à ce qui suit :

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

Pour GKE version 1.7 ou ultérieure, la plage d'adresses des pods peut provenir de n'importe lequel des blocs RFC 1918 : 10.0.0.0/8, 172.16.0.0/12 ou 192.168.0.0/16. Pour les versions antérieures, la plage d'adresses des pods doit obligatoirement provenir du bloc 10.0.0.0/8.

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

où [CLUSTER_NAME] est un nom que vous choisissez pour votre cluster.

Console

  1. Accédez au menu Google Kubernetes Engine de Cloud Console.

    Accéder au menu 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 réservées 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.

Étape suivante