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 votre trafic réseau en fonction des performances (niveau Premium) ou des économies (niveau Standard).
Avec le niveau Premium, le trafic est acheminé via le réseau principal Premium de Google, ce qui offre 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 pour leur organisation. Pour en savoir plus sur les rôles courants et les exemples de tâches que nous citons dans Google Cloud le contenu, 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 sur le niveau Standard ou Niveau Premium. Google Cloud 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éfinir un niveau de réseau lors de la création de clusters : vous pouvez configurer le niveau de réseau lorsque vous créez un cluster, quel que soit le paramètre de niveau de votre Google Cloud projet. Les nouveaux pools de nœuds utilisent le niveau de réseau au niveau du cluster, et cette configuration persiste même après la mise à niveau des pools de nœuds.
Définir un niveau de réseau lors de la mise à jour de clusters : vous pouvez configurer le niveau de 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 de niveau mise à jour, tandis que les pools de nœuds et les services existants continuent d'utiliser la configuration de niveau de réseau d'origine. 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 à la place.
Si vous utilisez des équilibreurs de charge d'application avec une passerelle, 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 la section 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 la Google Cloud CLI pour cette tâche, installez et initialisez la gcloud CLI. Si vous avez déjà installé la gcloud CLI, obtenez la dernière version en exécutant la commande
gcloud components update. Il est possible que les versions antérieures de la gcloud CLI ne permettent pas d'exécuter les commandes de ce document.
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 externes globales à double pile. Pour en savoir plus sur les types d'adresses IP, consultez la section 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 de niveau de réseau Utiliseznetwork-defaultpour le même paramètre de niveau que celui de votre Google Cloud projet,Standardpour le niveau Standard ouPremiumpour le niveau Premium.
Migrer un cluster existant vers un autre niveau
La mise à jour du niveau de réseau d'un cluster n'a pas d'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 les interruptions de service, procédez comme suit lorsque vous migrez votre cluster vers un nouveau niveau de réseau :
Mettre à 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 de niveau de réseau Utiliseznetwork-defaultpour le même paramètre de niveau que celui de votre Google Cloud projet,Standardpour le niveau Standard ouPremiumpour le niveau Premium.
Créer 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 de réseau d'origine.
Mettre à jour les enregistrements DNS : remplacez vos enregistrements DNS pour qu'ils pointent vers les nouvelles adresses IP des nouveaux services LoadBalancer.
Attendre la propagation du DNS : attendez l'expiration de la valeur TTL (Time To Live) du DNS pour vous assurer que les clients sont dirigés vers les nouveaux services et éviter de diffuser des enregistrements obsolètes.
Mettre à jour un équilibreur de charge externe avec des niveaux de service réseau
Pour les équilibreurs de charge réseau passthrough externes, GKE utilise par défaut le niveau de 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/network-tier: Standard
spec:
type: LoadBalancer
loadBalancerClass: networking.gke.io/l4-regional-external
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 la section Paramètres de service.
Adresse IP statique : lorsque vous créez un service avec une adresse IP statique, le niveau de réseau de l'adresse IP statique doit correspondre au niveau de réseau du service LoadBalancer. En cas de non-concordance, 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
Étape suivante
- 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.