Cette page vous explique comment attribuer des sous-réseaux supplémentaires à un cluster de VPC natif. Les sous-réseaux supplémentaires attribués à un cluster vous permettent de créer des pools de nœuds dans lesquels les adresses IPv4 des nœuds et des pods proviennent des plages de sous-réseaux supplémentaires.
Cette page s'adresse aux spécialistes de la mise en réseau qui conçoivent et implémentent le réseau pour leur organisation. Pour en savoir plus sur les rôles courants et les exemples de tâches que nous citons dans le contenu Google Cloud , consultez Rôles utilisateur et tâches courantes de l'utilisateur dans GKE Enterprise.
Présentation
Lorsque vous créez un cluster GKE de VPC natif, vous sélectionnez un sous-réseau par défaut pour le cluster. Le sous-réseau par défaut du cluster fournit des adresses IPv4 pour les nœuds, les pods et les services, comme décrit dans Plages d'adresses IP pour les clusters de VPC natif.
Vous pouvez attribuer jusqu'à huit sous-réseaux supplémentaires à un cluster de VPC natif, ce qui permet une croissance importante du cluster. Chaque sous-réseau supplémentaire nouvellement attribué est appelé sous-réseau non défini par défaut.
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
.
Conditions requises et limites
Cette section décrit les exigences et les limites qui s'appliquent lorsque vous attribuez et utilisez des sous-réseaux supplémentaires à un cluster. Vous devez remplir toutes les conditions requises avant d'attribuer des sous-réseaux supplémentaires.
- Assurez-vous que votre cluster GKE est un cluster de VPC natif qui exécute GKE version 1.30.3-gke.1211000 ou ultérieure. Les clusters basés sur le routage et les clusters sur les anciens réseaux ne sont pas compatibles avec les sous-réseaux supplémentaires.
- Vous pouvez attribuer jusqu'à huit sous-réseaux supplémentaires par cluster.
- Les sous-réseaux supplémentaires ne fournissent que des adresses IPv4 pour les nœuds et les pods. Il n'est pas possible d'utiliser des sous-réseaux supplémentaires pour fournir des adresses IPv6 aux nœuds ou aux pods.
- Seuls les nouveaux pools de nœuds peuvent utiliser les sous-réseaux supplémentaires, et non les pools de nœuds existants. Lorsque vous créez un pool de nœuds et que plusieurs sous-réseaux non définis par défaut sont disponibles, GKE sélectionne le sous-réseau le mieux adapté au pool de nœuds en fonction des exigences en termes d'adresses IP et de la disponibilité des adresses IP dans tous les sous-réseaux du cluster.
- Les plages d'adresses IPv4 secondaires de sous-réseau dans un sous-réseau non défini par défaut ne peuvent être utilisées que par un seul cluster.
- Si vous utilisez la compatibilité multiréseau pour les pods, les plages d'adresses IPv4 principales et de pod d'un sous-réseau supplémentaire ne doivent pas chevaucher les plages CIDR configurées dans votre configuration multiréseau. Les sous-réseaux supplémentaires que vous configurez ne s'appliquent qu'au réseau par défaut. Cette limitation signifie que les interfaces réseau supplémentaires sur vos nœuds et pods ne peuvent pas utiliser les adresses IP fournies par ces sous-réseaux supplémentaires.
- Si le pool d'adresses IP du sous-réseau par défaut est épuisé, vous ne pouvez pas autoscaler votre cluster, même si vous utilisez des sous-réseaux supplémentaires.
Exigences relatives à l'équilibreur de charge pour les clusters avec des sous-réseaux supplémentaires
Cette section décrit les exigences relatives à l'équilibreur de charge qui s'appliquent lorsque vous utilisez des sous-réseaux supplémentaires sur votre cluster. Ces exigences s'appliquent chaque fois que vous créez un objet Ingress externe, une passerelle externe ou un service LoadBalancer externe.
- Pour utiliser un service Ingress, Gateway ou LoadBalancer externe dans un cluster avec des sous-réseaux supplémentaires, votre cluster doit exécuter GKE version 1.33.2-gke.4780000 ou ultérieure.
- Les objets Ingress externes utilisant le contrôleur GKE Ingress doivent utiliser l'équilibrage de charge natif en conteneurs.
- Activez le sous-paramètre GKE pour les services LoadBalancer internes. Le sous-paramètre GKE n'affecte que les nouveaux services LoadBalancer internes. Par conséquent, vous devez supprimer et recréer tous les services existants dans votre cluster après avoir activé le sous-paramètre GKE.
Pour créer un équilibreur de charge réseau passthrough externe basé sur un service de backend, les nouveaux services LoadBalancer externes doivent inclure l'annotation
cloud.google.com/l4-rbs: "enabled"
. Cette annotation n'affecte que les nouveaux services LoadBalancer externes et ne s'applique pas aux services LoadBalancer externes existants. Supprimez et recréez tous les services LoadBalancer externes qui ont été créés sans l'annotationcloud.google.com/l4-rbs: "enabled"
.Le type de backend utilisé (backends NEG
GCE_VM_IP
ou backends de groupe d'instances) dépend de la version de GKE lorsque vous créez le service LoadBalancer externe. Pour en savoir plus, consultez la section Regroupement de nœuds.
Ajouter un sous-réseau avec une plage d'adresses IPv4 de pods
Créez un sous-réseau et ajoutez une plage d'adresses IPv4 secondaire de sous-réseau. Le sous-réseau doit se trouver dans la même région et sur le même réseau VPC que le cluster :
gcloud compute networks subnets create SUBNET_NAME \ --network=NETWORK \ --region=REGION \ --range=PRIMARY_RANGE \ --add-secondary-ranges=POD_RANGE_NAME=SECONDARY_RANGE
Remplacez les éléments suivants :
SUBNET_NAME
: nom du nouveau sous-réseau.NETWORK
: nom du réseau VPC contenant le nouveau sous-réseau.REGION
est la région dans laquelle se trouve le sous-réseau.PRIMARY_RANGE
: plage d'adresses IPv4 principales pour le nouveau sous-réseau, au format CIDR. Pour en savoir plus, consultez la section sur les plages de sous-réseaux IPv4.POD_RANGE_NAME
: nom de la plage secondaire.SECONDARY_RANGE
correspond à la plage d'adresses IPv4 secondaire en notation CIDR. Pour connaître les plages valides, consultez la section sur les plages de sous-réseaux IPv4.
Pour plus d'informations, consultez la section Travailler avec des sous-réseaux.
Mettez à jour votre cluster pour utiliser le sous-réseau supplémentaire à l'aide de la gcloud CLI :
gcloud container clusters update CLUSTER_NAME \ --additional-ip-ranges=subnetwork=SUBNET_NAME,pod-ipv4-range=POD_RANGE_NAME
Remplacez les éléments suivants :
CLUSTER_NAME
: nom de votre cluster existant.SUBNET_NAME
: nom du nouveau sous-réseau que vous avez créé.POD_RANGE_NAME
: nom de la plage d'adresses IPv4 secondaire du sous-réseau que vous souhaitez utiliser pour la plage d'adresses IPv4 de pod.
Ajouter un sous-réseau avec plusieurs plages d'adresses IPv4 de pods
Créez un sous-réseau dans la même région et le même réseau VPC que le cluster. Définissez la plage d'adresses IPv4 principale du sous-réseau sur une plage d'adresses IPv4 supplémentaire pour les nœuds.
Pour chaque plage d'adresses IPv4 de pods supplémentaire dont vous avez besoin, ajoutez une plage d'adresses IPv4 secondaire de sous-réseau au sous-réseau que vous avez créé à l'étape précédente.
Mettez à jour votre cluster pour qu'il utilise le sous-réseau supplémentaire à l'aide de gcloud CLI. L'exemple suivant ajoute un sous-réseau comportant deux plages d'adresses IPv4 secondaires de sous-réseau pour les pods.
gcloud container clusters update CLUSTER_NAME \ --additional-ip-ranges=subnetwork=SUBNET_NAME,pod-ipv4-range=POD_RANGE_NAME_1 \ --additional-ip-ranges=subnetwork=SUBNET_NAME,pod-ipv4-range=POD_RANGE_NAME_2
Remplacez les éléments suivants :
CLUSTER_NAME
: nom de votre cluster existant.SUBNET_NAME
: nom du nouveau sous-réseau que vous avez créé.POD_RANGE_NAME_1
etPOD_RANGE_NAME_2
: noms des plages d'adresses IPv4 secondaires de sous-réseau que vous souhaitez utiliser pour les plages d'adresses IPv4 de pods.
Valider les sous-réseaux
Par cluster : pour afficher les détails de tous les sous-réseaux associés à un cluster, exécutez la commande suivante :
gcloud container clusters describe CLUSTER_NAME
Remplacez CLUSTER_NAME
par le nom de votre cluster.
Le résultat ressemble à ce qui suit :
ipAllocationPolicy:
additionalIPRangesConfig:
- podIpv4RangeNames:
- pod-range-1
subnetwork: projects/user-gke-dev-2/regions/us-central1/subnetworks/shared-msc-subnets
Par pool de nœuds : pour afficher les détails de tous les sous-réseaux associés à un pool de nœuds, exécutez la commande suivante :
gcloud container node-pools describe POOL_NAME \
--cluster=CLUSTER_NAME \
Remplacez les éléments suivants :
POOL_NAME
: nom du pool de nœuds.CLUSTER_NAME
: nom du cluster.
Le résultat ressemble à ce qui suit :
name: pool-1
networkConfig:
podRange: pod-range-1
subnetwork: projects/user-gke-dev-2/regions/us-central1/subnetworks/shared-msc-subnets
Supprimer un sous-réseau non défini par défaut
Si vous supprimez un sous-réseau non défini par défaut d'un cluster, le cluster n'utilisera plus les plages du sous-réseau dans aucun de ses pools de nœuds. La suppression a les effets suivants :
- La plage d'adresses IPv4 principale du sous-réseau non défini par défaut ne peut pas être utilisée pour les plages d'adresses IPv4 de nœud.
- Les plages d'adresses IPv4 secondaires de sous-réseau dans le sous-réseau non défini par défaut ne peuvent pas être utilisées pour les plages d'adresses IPv4 de pods.
Avant de supprimer un sous-réseau non défini par défaut, vous devez supprimer tous les pools de nœuds qui l'utilisent.
Pour supprimer un sous-réseau non défini par défaut du cluster, exécutez la commande suivante :
gcloud container clusters update CLUSTER_NAME \
--remove-additional-ip-ranges= subnetwork=SUBNET_NAME
Remplacez les éléments suivants :
CLUSTER_NAME
: nom du clusterSUBNET_NAME
: nom du sous-réseau que vous souhaitez supprimer du cluster.
Après avoir supprimé un sous-réseau non défini par défaut du cluster, vous pouvez supprimer le sous-réseau non défini par défaut.
Supprimer une plage d'adresses IPv4 secondaire d'un sous-réseau non défini par défaut
Lorsque vous supprimez une plage d'adresses IPv4 secondaire de sous-réseau non définie par défaut d'un cluster, GKE indique au cluster de ne pas utiliser cette plage pour les plages d'adresses IPv4 de pod dans un pool de nœuds. Si la plage d'adresses IPv4 secondaire du sous-réseau non défini par défaut que vous supprimez est la seule plage du sous-réseau non défini par défaut utilisée par ce cluster, GKE demande également au cluster d'arrêter d'utiliser l'adresse IPv4 principale de ce sous-réseau pour les adresses IPv4 des nœuds.
Avant de supprimer une plage d'adresses IPv4 secondaire de sous-réseau non définie par défaut, vous devez supprimer tous les pools de nœuds qui utilisent la plage pour les adresses IPv4 de pod.
Pour supprimer une plage IPv4 secondaire de sous-réseau non définie par défaut du cluster, exécutez la commande suivante :
gcloud container clusters update CLUSTER_NAME \
--remove-additional-ip-ranges=\
subnetwork=SUBNET_NAME,pod-ipv4-range=POD_RANGE_NAME
Remplacez les éléments suivants :
CLUSTER_NAME
: nom du cluster.SUBNET_NAME
: nom du sous-réseau non défini par défaut.POD_RANGE_NAME
: nom de la plage d'adresses IPv4 secondaire de sous-réseau non définie par défaut que vous souhaitez supprimer du cluster.
Après avoir supprimé une plage d'adresses IPv4 secondaire de sous-réseau non définie par défaut du cluster, vous pouvez supprimer la plage d'adresses IPv4 secondaire de sous-réseau non définie par défaut.
Étapes suivantes
- Documentez-vous plus avant sur les clusters de VPC natif.
- Découvrez comment ajouter des plages d'adresses IPv4 de pods.
- Découvrez comment optimiser l'allocation d'adresses IP en configurant le nombre maximal de pods par nœud.