Cette page explique comment contrôler la manière dont le trafic externe atteint vos services sur les clusters Google Kubernetes Engine (GKE) à l'aide des niveaux de service réseau. Les niveaux de service réseau vous permettent d'optimiser le trafic réseau en fonction des performances (niveau Premium) ou des économies (niveau Standard).
Le niveau Premium achemine le trafic sur le réseau backbone Premium de Google pour une vitesse et une fiabilité supérieures. En revanche, le niveau Standard utilise les réseaux ordinaires des fournisseurs d'accès à Internet (FAI), ce qui constitue une solution plus économique.
Cette page s'adresse aux architectes cloud et aux spécialistes de la mise en réseau qui conçoivent et implémentent le réseau de 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 GKE.
Fonctionnement des niveaux de service réseau dans GKE
Cette section explique comment gérer les niveaux de service réseau dans GKE.
Définir un niveau de réseau au niveau du projet : vous pouvez définir le niveau de réseau par défaut de votre projet Google Cloud sur le niveau Standard ou Premium. Tous les nouveaux clusters sont créés avec le paramètre
network-default
, qui hérite du paramètre de niveau au niveau du projet. Ce paramètre persiste lors des mises à niveau du cluster. Les pools de nœuds créés dans le cluster héritent du niveau de réseau de la configuration au niveau du projet.Définissez un niveau réseau lorsque vous créez des clusters : vous pouvez configurer le niveau réseau lorsque vous créez un cluster, quel que soit le paramètre de niveau de votre projet Google Cloud . Les nouveaux pools de nœuds utilisent le niveau réseau du cluster, et cette configuration persiste même après la mise à niveau des pools de nœuds.
Définir un niveau réseau lors de la mise à jour des clusters : vous pouvez configurer le niveau réseau lorsque vous mettez à jour un cluster existant. Les nouveaux pools de nœuds et les nouveaux services LoadBalancer héritent de la configuration mise à jour du niveau, tandis que les pools de nœuds et les services existants continuent d'utiliser la configuration d'origine du niveau réseau. La configuration de niveau mise à jour persiste après la mise à niveau de votre cluster.
Définir un niveau de réseau lors de la mise à jour des services LoadBalancer : les services LoadBalancer héritent du niveau de réseau du cluster. Toutefois, vous pouvez remplacer ce paramètre et mettre à jour le niveau de réseau dans le fichier manifeste du service.
Niveaux de service réseau et équilibrage de charge
Par défaut, les équilibreurs de charge réseau passthrough externes utilisent le niveau Premium. Vous pouvez mettre à jour cette configuration afin que le service LoadBalancer utilise le niveau Standard.
Si vous utilisez des équilibreurs de charge d'application avec Gateway, vous ne pouvez pas configurer les niveaux de service réseau. Les niveaux de service réseau sur la passerelle sont contrôlés par la ressource GatewayClass. Pour en savoir plus, consultez Adresse IP de la passerelle.
GKE Ingress pour les équilibreurs de charge d'application externes n'est pas compatible avec le niveau Standard pour le routage du trafic.
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 précédemment installé la gcloud CLI, obtenez la dernière version en exécutant la commande
gcloud components update
.
Restrictions
Les restrictions suivantes s'appliquent :
- Vous ne pouvez configurer les paramètres de niveau de réseau qu'au niveau du projet ou du cluster. Vous ne pouvez pas configurer directement le niveau de réseau des pools de nœuds.
- Le niveau Standard n'est pas compatible avec les adresses IPv4 ou IPv6 à double pile externes globales. Pour en savoir plus sur les types d'adresses IP, consultez Adresses IP.
Créer un cluster avec des niveaux de service réseau
Pour créer un cluster et spécifier le niveau de réseau, exécutez la commande suivante :
gcloud container clusters create CLUSTER_NAME \
--network-tier=NETWORK_TIER \
...
Remplacez les valeurs suivantes :
CLUSTER_NAME
: nom du clusterNETWORK_TIER
: paramètre du niveau de réseau. Utiliseznetwork-default
pour le même paramètre de niveau que celui de votre projet Google Cloud ,Standard
pour le niveau Standard ouPremium
pour le niveau Premium.
Migrer un cluster existant vers un autre niveau
La modification du niveau de réseau d'un cluster n'a aucune incidence sur le niveau de réseau des ressources existantes. Les ressources existantes continuent d'utiliser l'adresse IP associée à l'ancien niveau de réseau. Pour éviter toute interruption de service, procédez comme suit lorsque vous migrez votre cluster vers un nouveau niveau de réseau :
Mettez à jour le cluster : pour mettre à jour un cluster existant avec un niveau de réseau, exécutez la commande suivante :
gcloud container clusters update CLUSTER_NAME \ --network-tier=NETWORK_TIER \ ...
Remplacez les valeurs suivantes :
CLUSTER_NAME
: nom du clusterNETWORK_TIER
: paramètre du niveau de réseau. Utiliseznetwork-default
pour le même paramètre de niveau que celui de votre projet Google Cloud ,Standard
pour le niveau Standard ouPremium
pour le niveau Premium.
Créez des pools de nœuds et des services : pour que les clients externes utilisent les nouvelles adresses IP associées au nouveau niveau de réseau, vous devez créer des pools de nœuds et des services LoadBalancer. Les nouveaux pools de nœuds et les nouveaux services LoadBalancer héritent de la configuration de niveau mise à jour, tandis que les pools de nœuds et les services existants continuent d'utiliser la configuration de niveau réseau d'origine.
Mettez à jour les enregistrements DNS : modifiez vos enregistrements DNS pour qu'ils pointent vers les nouvelles adresses IP des nouveaux services LoadBalancer.
Attendez la propagation du DNS : attendez l'expiration du TTL (Time To Live) du DNS pour vous assurer que les clients sont redirigés vers les nouveaux services et éviter de diffuser des enregistrements obsolètes.
Mettre à jour un équilibreur de charge externe avec les niveaux de service réseau
Pour les équilibreurs de charge réseau passthrough externes, GKE utilise par défaut le niveau réseau configuré sur le cluster pour la règle de transfert externe et l'adresse IP. Si le niveau de réseau du cluster est défini sur network-default
, l'équilibreur de charge utilise le niveau Premium. Vous pouvez remplacer ce paramètre en configurant l'annotation cloud.google.com/network-tier
dans le fichier manifeste du service. Exemple :
```yaml
apiVersion: v1
kind: Service
metadata:
name: store-v1-lb-svc
annotations:
cloud.google.com/l4-rbs: "enabled"
cloud.google.com/network-tier: Standard
spec:
type: LoadBalancer
selector:
app: store
ports:
- name: tcp-port
protocol: TCP
port: 8080
targetPort: 8080
```
Pour en savoir plus sur les paramètres utilisés pour les services LoadBalancer, consultez Paramètres de service.
Adresse IP statique : lorsque vous créez un service avec une adresse IP statique, le niveau de service réseau de l'adresse IP statique doit correspondre à celui du service LoadBalancer. En cas d'incohérence, le message d'erreur suivant s'affiche lorsque vous exécutez la commande kubectl describe service
:
Error syncing load balancer: failed to ensure load balancer: requested ip "standard-service" is neither static nor assigned to the LB
Étapes suivantes
- Consultez la présentation des niveaux de service réseau.
- Découvrez comment créer un équilibreur de charge externe basé sur un service de backend.