Ajouter des plages d'adresses IP de pods


Cette page explique comment ajouter des plages d'adresses IP de pod secondaire, nouvelles ou existantes, à des clusters GKE avec un CIDR multipods non contigu.

Pourquoi ajouter davantage de plages IPv4 de pods ?

En tant qu'administrateur de plate-forme, vous pouvez ajouter d'autres plages IPv4 de pods en créant des plages secondaires supplémentaires. Cela peut s'avérer utile dans les scénarios suivants :

  • Lorsque votre cluster manque d'adresses IP de pods.
  • Lorsque vous souhaitez allouer efficacement des adresses IP en anticipant l'avenir.
  • Lorsque vous pouvez utiliser des espaces d'adresses IP fragmentés pour vos clusters.
  • Lorsque vous pouvez réallouer des adresses IP en réponse à l'évolution des besoins de votre entreprise.

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.

Ajouter davantage de plages IPv4 de pods avec GKE Autopilot

Pour les clusters GKE Autopilot version 1.26 ou ultérieure, vous pouvez ajouter davantage de plages IPv4 de pods en créant des plages secondaires supplémentaires et en les attribuant au cluster.

Créer une plage secondaire supplémentaire pour un sous-réseau

Console

  1. Accédez à la page Réseaux VPC de Google Cloud Console.

    Accéder aux réseaux VPC

  2. Dans la liste Réseaux VPC, sélectionnez le réseau que vous souhaitez étendre.

  3. Dans la liste Sous-réseaux, sélectionnez le sous-réseau souhaité.

  4. Cliquez sur Modifier.

  5. Cliquez sur Ajouter une plage d'adresses IP.

  6. Dans Nom de la plage du sous-réseau, saisissez le nom de la plage de pods supplémentaire. Par exemple, pod-range-2.

  7. Dans Plage d'adresses IP secondaire, saisissez la plage d'adresses IP. Par exemple, 10.2.204.0/22.

  8. Cliquez sur Enregistrer.

gcloud

gcloud compute networks subnets update SUBNET_NAME \
    --add-secondary-ranges ADDITIONAL_RANGE=RANGE \
    --location=COMPUTE_LOCATION

Remplacez les éléments suivants :

  • SUBNET_NAME : nom du sous-réseau auquel vous souhaitez ajouter une plage (doit être le sous-réseau attribué au cluster)
  • ADDITIONAL_RANGE : nom de la plage de pods à ajouter au cluster. Par exemple, pod-range-2. Pour spécifier plusieurs plages, séparez les noms de plages par une virgule. Par exemple, pod-range-1, pod-range-2.
  • RANGE : plage d'adresses IP à ajouter au cluster.
  • COMPUTE_LOCATION : emplacement Compute Engine sur le sous-réseau.

Attribuer des plages secondaires supplémentaires au cluster

Créez des plages secondaires supplémentaires et attribuez-les au cluster. Vous pouvez utiliser Google Cloud Console ou Google Cloud CLI:

Console

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

    Accéder à Google Kubernetes Engine

  2. À côté du cluster que vous souhaitez modifier, cliquez sur Actions, puis sur Modifier.

  3. Dans la section Mise en réseau, à côté de Plages IPv4 de pod du cluster (supplémentaires), cliquez sur Modifier.

  4. Dans la boîte de dialogue Modifier les plages IPv4 de pod de cluster supplémentaires, sélectionnez les plages CIDR secondaires des pods que vous souhaitez ajouter au cluster. Utilisez le même nom de plage de pods que celui créé dans le sous-réseau comme plages secondaires supplémentaires pour le cluster.

  5. Cliquez sur Save Changes (Enregistrer les modifications).

gcloud

  1. Mettez à jour votre cluster de façon à utiliser une plage d'adresses IP supplémentaire :

    gcloud container clusters update CLUSTER_NAME \
        --additional-pod-ipv4-ranges=ADDITIONAL_RANGE \
        --location=COMPUTE_LOCATION
    

    Remplacez les éléments suivants :

    • CLUSTER_NAME : nom du cluster. Le cluster doit exécuter la version 1.26.0 ou ultérieure.
    • ADDITIONAL_RANGE : nom de la plage de pods à ajouter au cluster. Utilisez le même nom de plage de pods que celui créé dans le sous-réseau comme plages secondaires supplémentaires pour le cluster.
    • COMPUTE_LOCATION : emplacement Compute Engine sur le sous-réseau.
  2. Vérifiez que la nouvelle adresse IP est attribuée au cluster :

    gcloud container clusters describe CLUSTER_NAME
    

    Le résultat ressemble à ce qui suit :

    ipAllocationPolicy:
    additionalPodRangesConfig:
      podRangeNames:
      - pod-range-1
      - pod-range-2
    clusterIpv4Cidr: 10.10.0.0/23
    clusterIpv4CidrBlock: 10.10.0.0/23
    clusterSecondaryRangeName: cluster-pods
    

Ajouter davantage de plages IPv4 de pods avec GKE Standard

Pour les clusters GKE Standard, vous pouvez ajouter davantage de plages IPv4 à l'aide de l'une des méthodes suivantes :

  • Créer et attribuer des plages secondaires supplémentaires au cluster : recommandé pour les utilisateurs qui n'ont pas besoin de contrôler les plages d'adresses IP des pods au niveau du pool de nœuds. Cette méthode est disponible sur GKE version 1.26.0 ou ultérieure. Pour en savoir plus, découvrez comment Ajouter davantage de plages IPv4 de pods avec GKE Autopilot.
  • Créer un pool de nœuds avec une nouvelle plage d'adresses IP de pod secondaire : recommandé pour les utilisateurs qui ont besoin de contrôler entièrement les plages d'adresses IP des pods de vos pools de nœuds. Cette méthode est disponible sur GKE version 1.20.4-gke.500 ou ultérieure.
  • Créer un pool de nœuds à l'aide d'une adresse IP de pod secondaire existante : recommandé pour les utilisateurs qui ont besoin de contrôler entièrement les plages d'adresses IP de pod existantes des pools de nœuds. Cette méthode est disponible sur GKE version 1.20.4-gke.500 ou ultérieure.

Créer un pool de nœuds avec une nouvelle plage d'adresses IP de pod secondaire

Par défaut, GKE associe une plage de pods au pool de nœuds. Il peut s'agir de la plage d'adresses IP de pods par défaut du cluster ou de l'une des plages de pods supplémentaires (le cas échéant) associées au cluster. Avec des plages secondaires supplémentaires, vous pouvez spécifier une plage d'adresses IPv4 de pod lors de la création du pool de nœuds, et le pool de nœuds utilise cette plage plutôt que la plage d'adresses IP de pod secondaire par défaut du cluster.

Dans cette section, vous allez créer un pool de nœuds avec une plage d'adresses IP de pod secondaire.

Vous pouvez utiliser Google Cloud CLI ou l'API GKE.

gcloud

gcloud container node-pools create POOL_NAME \
    --cluster CLUSTER_NAME \
    --create-pod-ipv4-range name=RANGE_NAME,range=RANGE

Remplacez les éléments suivants :

  • POOL_NAME : nom du nouveau pool de nœuds.
  • CLUSTER_NAME : nom du cluster.
  • RANGE_NAME : nom facultatif de la nouvelle plage d'adresses IP du pod secondaire.
  • RANGE : plage d'adresses IP facultative du pod fournie sous la forme d'un masque de réseau (/20) ou d'une plage CIDR (10.12.4.0/20). Si vous fournissez un masque de réseau, GKE alloue une plage à partir des plages disponibles dans le réseau de cluster. Si vous ne fournissez pas de valeur pour range, GKE attribue automatiquement un masque de réseau /14, la taille par défaut de la plage d'adresses IP secondaires pour les pods du sous-réseau.

API

"nodePool": {
  "name": "POOL_NAME",
  ...
  "networkConfig": {
    "createPodRange": true,
    "podRange": "RANGE_NAME",
    "podIpv4CidrBlock": "RANGE"
  }
}

Remplacez les éléments suivants :

  • POOL_NAME : nom du nouveau pool de nœuds.
  • RANGE_NAME : nom facultatif de la nouvelle plage d'adresses IP du pod secondaire.
  • RANGE : plage d'adresses IP facultative du pod fournie sous la forme d'un masque de réseau (/20) ou d'une plage CIDR (10.12.0.0/20). Si un masque de réseau est spécifié, la plage d'adresses IP est automatiquement attribuée à l'espace libre du réseau. Si aucune valeur n'est spécifiée, GKE alloue automatiquement un masque de réseau /14, la taille par défaut de la plage d'adresses IP secondaire du sous-réseau pour les pods.

Créer un pool de nœuds à l'aide d'une plage d'adresses IP de pod secondaire existante

Dans cette section, vous allez créer un pool de nœuds avec une plage d'adresses IP de pod secondaire existante.

Vous pouvez utiliser gCloud CLI ou l'API GKE.

gcloud

gcloud container node-pools create POOL_NAME \
    --cluster CLUSTER_NAME \
    --pod-ipv4-range RANGE_NAME

Remplacez les éléments suivants :

  • POOL_NAME : nom du nouveau pool de nœuds.
  • CLUSTER_NAME : nom du cluster.
  • RANGE_NAME : nom d'une plage d'adresses IP de pod secondaire existante dans le sous-réseau du cluster.

API

"nodePool": {
  "name": "POOL_NAME",
  ...
  "networkConfig": {
    "podRange": "RANGE_NAME"
  }
}

Remplacez les éléments suivants :

  • POOL_NAME : nom du nouveau pool de nœuds.
  • RANGE_NAME : nom d'une plage d'adresses IP de pod secondaire existante dans le sous-réseau du cluster.

Vérifier le bloc CIDR de pod d'un pool de nœuds

Pour identifier le bloc CIDR du pod utilisé pour les pods d'un pool de nœuds donné, exécutez la commande suivante :

gcloud container node-pools describe POOL_NAME \
    --cluster CLUSTER_NAME

Le résultat ressemble à ce qui suit :

...
networkConfig:
  podIpv4CidrBlock: 192.168.0.0/18
  podRange: podrange
...

Si le pool de nœuds utilise le CIDR multipods non contigu, podRange et podIpv4CidrBlock affichent les valeurs configurées pour ce pool de nœuds.

Si le pool de nœuds n'utilise pas un CIDR multipods non contigu, podRange et podIpv4CidrBlock affichent les valeurs par défaut du cluster, clusterSecondaryRangeName et clusterIpv4CidrBlock à partir d'IPAllocationPolicy.

Ajouter davantage de plages IPv4 de pods pour des cas d'utilisation spécifiques

  • Si vous utilisez ip-masq-agent configuré avec le paramètre nonMasqueradeCIDRs, vous devez mettre à jour nonMasqueradeCIDRs pour inclure toutes les plages secondaires supplémentaires.
  • Si vous utilisez NetworkPolicy configuré avec ipBlock pour spécifier le trafic, vous devez mettre à jour la valeur CIDR pour inclure toutes les plages CIDR des pods.
  • Pour le VPC partagé, vous devez prédéfinir un autre compte de service.
  • Pour ajouter une plage d'adresses IP de pod secondaire au cluster ou pour créer un pool de nœuds avec une nouvelle plage d'adresses IP de pod secondaire, vous devez disposer du rôle Administrateur réseau. Un rôle utilisateur ne peut utiliser ces ressources que si elles ont été créées par l'administrateur réseau.
  • Si votre projet comporte plusieurs clusters, veillez à créer et ajouter une plage d'adresses IP de pod secondaire sur chaque cluster.

Fonctionnement d'un CIDR multipods non contigu

Lorsque vous créez un pool de nœuds, celui-ci utilise par défaut la plage d'adresses IP des pods par défaut du cluster, également appelée CIDR du cluster. Cette fonctionnalité vous permet de spécifier une plage d'adresses IP de pod lors de la création du pool de nœuds. Le pool de nœuds utilise cette plage plutôt que la plage d'adresses IP des pods par défaut du cluster.

Le schéma suivant montre un cluster géré par l'utilisateur avec un bloc CIDR /24 en tant que plage d'adresses IP de pod secondaire (256 adresses IP) et deux nœuds utilisant /25 Blocs CIDR pour les adresses IP des pods (128 adresses IP chacune) La plage d'adresses IP du pod secondaire est épuisée, et vous ne pouvez pas ajouter un autre nœud au cluster. Au lieu de supprimer et de recréer le cluster, vous pouvez utiliser un CIDR multipods non contigu pour étendre les adresses IP des pods avec des blocs CIDR /20. Le cluster s'étend pour inclure un troisième nœud qui utilise un bloc CIDR /25 pour les adresses IP des pods provenant du bloc /20.

Ajouter un pool de nœuds à un cluster avec une plage d'adresses IP de pod secondaire épuisée à l'aide d'un masque CIDR multipod
Schéma : Utilisation d'un CIDR multipod non contigu

Règle de pare-feu modifiée

Lorsque GKE crée un cluster, il crée une règle de pare-feu pour permettre la communication entre les pods, gke-[cluster-name]-[cluster-hash]-all.

Lorsque vous créez ou supprimez un pool de nœuds avec le CIDR multipods non contigu activé, GKE met à jour la valeur source de cette règle de pare-feu vers tous les CIDR utilisés par le cluster pour les adresses IP de pod.

Dépannage

Vous pouvez activer les journaux de flux VPC pour déterminer si les paquets sont envoyés correctement aux nœuds.

Étape suivante