Cette page explique comment configurer les clusters créés dans le mode Autopilot de Google Kubernetes Engine (GKE) pour effectuer un masquage d'adresses IP avec la règle NAT de sortie.
Pour en savoir plus sur le masquage d'adresses IP en mode GKE standard, consultez la section Configurer un agent de masquage d'adresses IP.
Présentation
La règle NAT de sortie de GKE vous permet de configurer le comportement du masquage d'adresses IP pour les clusters Autopilot.
GKE accepte deux règles de sortie NAT générées automatiquement :
- Les règles gérées par GKE qui sont fixes et non modifiables.
- Les règles par défaut qui sont modifiables.
Cette page explique comment modifier et déployer une règle NAT de sortie en modifiant la règle par défaut ou en créant une règle NAT de sortie. Cette page vous explique également comment supprimer une règle NAT de sortie créée.
Pour en savoir plus sur le comportement des règles NAT de sortie, consultez la section Comportement du masquage du trafic pour les clusters Autopilot.
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
.
Assurez-vous de disposer d'un cluster Autopilot exécutant la version 1.23.4-gke.1600 ou ultérieure, ou 1.22.7-gke.1500 ou ultérieure. GKE Dataplane V2 doit être activé sur votre cluster.
Assurez-vous qu'une charge de travail est en cours d'exécution sur votre cluster. Pour en savoir plus, consultez la section Demander des ressources.
Vérifier l'état de la règle NAT de sortie
Vous pouvez vérifier si votre cluster exécute la définition de ressource personnalisée (CRD) de la règle NAT de sortie à l'aide de l'outil Google Cloud CLI :
Récupérez les identifiants de votre cluster :
gcloud container clusters get-credentials CLUSTER-NAME
Remplacez
CLUSTER_NAME
par le nom du cluster.Vérifiez si la règle NAT de sortie est en cours d'exécution :
kubectl get crds egressnatpolicies.networking.gke.io
Si la règle NAT de sortie est en cours d'exécution, le résultat ressemble à ce qui suit :
NAME CREATED AT egressnatpolicies.networking.gke.io 2022-03-16T21:05:43Z
Récupérez la liste des règles NAT de sortie créées :
kubectl get egressnatpolicies
Le résultat ressemble à ce qui suit :
NAME AGE default 44h gke-bbfa6c0e-1 44h
Modifier la règle par défaut existante
GKE accepte deux règles NAT générées automatiquement, la règle par défaut et la règle gérée par GKE. La règle par défaut est modifiable et configure les destinations non masquées par défaut.
Pour modifier la règle par défaut existante, procédez comme suit :
Récupérez les identifiants de votre cluster :
gcloud container clusters get-credentials CLUSTER_NAME
Remplacez
CLUSTER_NAME
par le nom de votre cluster.Modifiez la règle NAT de sortie par défaut :
kubectl edit egressnatpolicies default
Ajoutez ou supprimez des destinations avec l'action NoSNAT en tant qu'attribut
cidr
au format CIDR :apiVersion: networking.gke.io/v1 kind: EgressNATPolicy metadata: name: default spec: action: NoSNAT destinations: - cidr: 10.0.0.0/8 - cidr: 172.16.0.0/12 - cidr: 192.168.0.0/16 - cidr: 240.0.0.0/4 - cidr: 192.0.2.0/24 - cidr: 198.51.100.0/24 - cidr: 203.0.113.0/24 - cidr: 100.64.0.0/10 - cidr: 198.18.0.0/15 - cidr: 192.0.0.0/24 - cidr: 192.88.99.0/24
Lorsque des paquets sont envoyés à ces destinations, votre cluster ne masque pas les sources d'adresses IP et conserve les adresses IP des pods sources.
Vérifiez que la règle par défaut modifiée est déployée en consultant les événements Kubernetes :
kubectl get events
Le résultat ressemble à ce qui suit :
LAST SEEN TYPE REASON OBJECT MESSAGE 13s Normal EnsuringPolicy egressnatpolicy/default Ensuring IP masquerade config for policy "default"
L'application de vos modifications peut prendre jusqu'à trois minutes.
Déployer une nouvelle règle NAT de sortie
Pour ajouter des destinations avec l'action NoSNAT, vous pouvez utiliser l'une des options suivantes :
- Vous pouvez modifier la règle par défaut existante.
- Vous pouvez créer une règle NAT de sortie.
Pour créer une règle NAT de sortie qui ne fait pas partie de la règle par défaut, procédez comme suit :
Enregistrez le manifeste suivant sous le nom
egress_nat_policy.yaml
:kind: EgressNATPolicy apiVersion: networking.gke.io/v1 metadata: name: POLICY_NAME spec: action: NoSNAT destinations: - cidr: CIDR_1 - cidr: CIDR_2
Remplacez les éléments suivants :
POLICY_NAME
: nom de votre nouvelle règleCIDR_1
etCIDR_2
: plages d'adresses IP au format CIDR Lorsque des paquets sont envoyés à ces destinations, votre cluster ne masque pas les sources d'adresses IP et conserve les adresses IP des pods sources. Si vous avez besoin de plus de deux CIDR, ajoutez d'autres entrées à la listedestinations
en suivant le même format.
Déployez la nouvelle règle :
kubectl create -f egress_nat_policy.yaml
Vérifiez que votre règle est déployée en consultant les événements Kubernetes :
kubectl get events
Le résultat ressemble à ce qui suit :
LAST SEEN TYPE REASON OBJECT MESSAGE 13s Normal EnsuringPolicy egressnatpolicy/mypolicy Ensuring IP masquerade config for policy "mypolicy"
Supprimer une règle NAT de sortie
Pour supprimer complètement une règle NAT de sortie, exécutez la commande suivante :
kubectl delete egressnatpolicies POLICY_NAME
Remplacez POLICY_NAME
par le nom de la règle que vous souhaitez supprimer.
Étape suivante
- Apprenez à créer un cluster de VPC natif.
- Lisez la présentation du réseau GKE.
- Familiarisez-vous avec la configuration des réseaux autorisés.