Cette page vous explique comment modifier l'isolation réseau pour le plan de contrôle et les nœuds de votre cluster. La modification du mode d'isolation d'un cluster public n'est possible que pour les clusters publics qui utilisent Private Service Connect pour connecter en mode privé le plan de contrôle et les nœuds.
Pourquoi modifier l'isolation d'un cluster ?
Par défaut, lorsque vous créez des clusters qui utilisent Private Service Connect, GKE attribue une adresse IP externe (point de terminaison externe) au plan de contrôle. Cela signifie que n'importe quelle VM avec une adresse IP externe peut atteindre le plan de contrôle.
Si vous configurez des réseaux autorisés, vous pouvez limiter les plages d'adresses IP ayant accès à votre plan de contrôle de cluster, mais le plan de contrôle de cluster reste accessible à partir d'adresses IP appartenant à Google Cloud. Par exemple, n'importe quelle VM avec une adresse IP externe attribuée dans Google Cloud peut atteindre l'adresse IP externe de votre plan de contrôle. Toutefois, une VM sans identifiant correspondant ne peut pas atteindre vos nœuds.
Avantages
L'isolation réseau offre les avantages suivants :
- Vous pouvez configurer dans le même cluster une combinaison de nœuds privés et publics. Cela peut réduire les coûts pour les nœuds qui n'exigent pas d'adresse IP externe pour accéder à des services publics sur Internet.
- Vous pouvez bloquer l'accès au plan de contrôle depuis des adresses IP appartenant à Google Cloud ou depuis des adresses IP externes, afin d'isoler complètement le plan de contrôle du cluster.
Cette page vous explique comment modifier ce comportement par défaut en effectuant les actions suivantes :
- Activer ou désactiver l'accès au plan de contrôle à partir d'adresses IP appartenant à Google Cloud. Cette action empêche toute VM disposant d'adresses IP appartenant à Google Cloud d'atteindre votre plan de contrôle. Pour en savoir plus, consultez la section Bloquer l'accès au plan de contrôle depuis des adresses IP appartenant à Google Cloud.
- Activer ou désactiver l'accès public au point de terminaison externe du plan de contrôle. Cette action isole complètement votre cluster et le plan de contrôle est inaccessible depuis une adresse IP publique. Pour en savoir plus, consultez la section Isoler le plan de contrôle du cluster.
- Supprimer les adresses IP publiques des nœuds Cette action isole complètement vos charges de travail. Pour en savoir plus, consultez la section Isoler des pools de nœuds.
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
.
- Consultez les limites applicables à Private Service Connect.
Bloquer l'accès au plan de contrôle à partir de VM Google Cloud, de Cloud Run et de Cloud Functions
Par défaut, si vous avez créé un cluster avec Private Service Connect prédéfini comme public, la fonctionnalité de réseaux autorisés est désactivée par défaut.
Si vous avez créé un cluster avec Private Service Connect prédéfini comme privé, la fonctionnalité de réseaux autorisés est activée par défaut. Pour savoir quelles adresses IP peuvent toujours accéder au plan de contrôle GKE, consultez la page Accès aux points de terminaison du plan de contrôle.
Pour supprimer l'accès au plan de contrôle de votre cluster depuis les VM Google Cloud, Cloud Run et Cloud Functions, utilisez gcloud CLI ou la console Google Cloud:
gcloud
Mettez à jour votre cluster pour utiliser l'option
--no-enable-google-cloud-access
:gcloud container clusters update CLUSTER_NAME \ --no-enable-google-cloud-access
Remplacez
CLUSTER_NAME
par le nom du cluster.Vérifiez que l'option
--no-enable-google-cloud-access
est appliquée:gcloud container clusters describe CLUSTER_NAME | grep "gcpPublicCidrsAccessEnabled"
Le résultat ressemble à ce qui suit :
gcpPublicCidrsAccessEnabled: false
Console
Accédez à la page Google Kubernetes Engine dans Google Cloud Console.
Cliquez sur le nom du cluster que vous souhaitez modifier.
Sous Mise en réseau, dans le champ Réseaux autorisés pour le plan de contrôle, cliquez sur edit Modifier les réseaux autorisés pour le plan de contrôle.
Décochez la case Autoriser l'accès via des adresses IP publiques Google Cloud.
Cliquez sur Save Changes (Enregistrer les modifications).
Autoriser l'accès au plan de contrôle depuis des adresses IP appartenant à Google Cloud
Pour autoriser l'accès au plan de contrôle du cluster depuis des adresses IP publiques appartenant à Google Cloud, exécutez la commande suivante :
gcloud
gcloud container clusters update CLUSTER_NAME \
--enable-google-cloud-access
Remplacez CLUSTER_NAME
par le nom du cluster.
Les adresses IP appartenant à Google Cloud peuvent accéder au plan de contrôle du cluster.
Console
Accédez à la page Google Kubernetes Engine dans Google Cloud Console.
Cliquez sur le nom du cluster que vous souhaitez modifier.
Sous Mise en réseau, dans le champ Réseaux autorisés pour le plan de contrôle, cliquez sur edit Modifier les réseaux autorisés pour le plan de contrôle.
Cochez la case Autoriser l'accès via des adresses IP publiques Google Cloud.
Cliquez sur Save Changes (Enregistrer les modifications).
Désactiver l'accès externe au plan de contrôle dans les clusters qui utilisent Private Service Connect
Clusters créés en tant que clusters publics
Par défaut, lorsque vous créez un cluster public GKE, GKE attribue une adresse IP externe (point de terminaison externe) au plan de contrôle. Si vous indiquez à GKE d'annuler l'attribution de ce point de terminaison externe, GKE active un point de terminaison privé. L'accès à votre plan de contrôle depuis des adresses IP externes est désactivé, à l'exception des services Google Cloud qui exécutent des processus de gestion de cluster. Pour en savoir plus sur le point de terminaison privé activé et sa limitation, consultez la page Clusters publics avec Private Service Connect.
Pour modifier l'isolation du plan de contrôle pour un cluster créé en tant que public, utilisez gcloud CLI:
Mettez à jour votre cluster pour utiliser l'option
--enable-private-endpoint
:gcloud container clusters update CLUSTER_NAME \ --enable-private-endpoint
Remplacez
CLUSTER_NAME
par le nom du cluster public.Vérifiez que l'option
--enable-private-endpoint
est appliquée:gcloud container clusters describe CLUSTER_NAME | grep "enablePrivateEndpoint"
Le résultat ressemble à ce qui suit :
enablePrivateEndpoint:true
Clusters créés comme privés
Par défaut, lorsque vous créez un cluster privé GKE, GKE attribue une adresse IP externe (point de terminaison externe) et une adresse IP interne (point de terminaison interne) au plan de contrôle. Vous pouvez annuler l'attribution de ce point de terminaison externe, mais vous ne pouvez pas annuler l'attribution du point de terminaison interne.
Si vous indiquez à GKE d'annuler l'attribution du point de terminaison externe, l'accès externe à votre plan de contrôle à partir d'adresses IP externes est désactivé.
Pour supprimer le point de terminaison externe d'un cluster créé en tant que cluster privé, utilisez gcloud CLI ou la console Google Cloud :
gcloud
Mettez à jour votre cluster pour utiliser l'option
--enable-private-endpoint
:gcloud container clusters update CLUSTER_NAME \ --enable-private-endpoint
Remplacez
CLUSTER_NAME
par le nom du cluster public.Vérifiez que l'option
--enable-private-endpoint
est appliquée:gcloud container clusters describe CLUSTER_NAME | grep "enablePrivateEndpoint"
Le résultat ressemble à ce qui suit :
enablePrivateEndpoint: true
Console
Accédez à la page Google Kubernetes Engine dans Google Cloud Console.
Cliquez sur le nom du cluster que vous souhaitez modifier.
Sous Paramètres de base du cluster, dans le champ Point de terminaison externe, cliquez sur edit Modifier l'accès externe au plan de contrôle.
Décochez la case Autoriser l'accès via des adresses IP publiques Google Cloud.
Cliquez sur Save Changes (Enregistrer les modifications).
Activer l'accès externe au plan de contrôle dans les clusters qui utilisent Private Service Connect
Pour attribuer une adresse IP externe (point de terminaison externe) au plan de contrôle dans les clusters créés en tant que clusters publics ou privés, utilisez gcloud CLI ou la console Google Cloud:
gcloud
Exécutez la commande ci-dessous.
gcloud container clusters update CLUSTER_NAME \
--no-enable-private-endpoint
Remplacez CLUSTER_NAME
par le nom du cluster public.
Les adresses IP externes peuvent accéder au plan de contrôle du cluster.
Console
Accédez à la page Google Kubernetes Engine dans Google Cloud Console.
Cliquez sur le nom du cluster que vous souhaitez modifier.
Sous Paramètres de base du cluster, dans le champ Point de terminaison externe, cliquez sur edit Modifier l'accès externe au plan de contrôle.
Cochez la case Accéder au plan de contrôle à l'aide de son adresse IP externe.
Cliquez sur Save Changes (Enregistrer les modifications).
Isoler des pools de nœuds
Vous pouvez indiquer à GKE de ne provisionner des pools de nœuds qu'avec des adresses IP privées. Une fois que vous avez mis à jour un pool de nœuds public en mode privé, les charges de travail nécessitant un accès à l'Internet public peuvent échouer. Avant de modifier l'isolation des nœuds, consultez les limites des clusters Private Service Connect. Vous pouvez modifier ce paramètre sur les clusters créés en tant que publics ou privés:
Autopilot
Dans les clusters Autopilot, ajoutez un rejet sur les pods existants afin que GKE ne les provisionne que sur les nœuds privés :
Pour demander à GKE de programmer un pod sur des nœuds privés, ajoutez le champ nodeSelector suivant à la spécification de pod :
cloud.google.com/private-node=true
GKE recrée vos pods sur des nœuds privés. Pour éviter toute interruption de charge de travail, migrez chaque charge de travail indépendamment et surveillez la migration.
Si vous utilisez un VPC partagé, activez l'accès privé à Google après avoir modifié le mode d'isolation du cluster. Si vous utilisez Cloud NAT, vous n'avez pas besoin d'activer l'accès privé à Google.
Standard
gcloud
Pour provisionner des nœuds via des adresses IP privées dans un pool de nœuds existant, exécutez la commande suivante :
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--enable-private-nodes
Remplacez les éléments suivants :
NODE_POOL_NAME
: nom du pool de nœuds que vous souhaitez modifier.CLUSTER_NAME
: nom du cluster GKE.Si vous utilisez un VPC partagé, activez l'accès privé à Google après avoir modifié le mode d'isolation du cluster. Si vous utilisez Cloud NAT, vous n'avez pas besoin d'activer l'accès privé à Google.
Console
Accédez à la page Google Kubernetes Engine dans Google Cloud Console.
Dans la liste des clusters, cliquez sur le nom du cluster.
Sur la page Clusters, cliquez sur l'onglet Nœuds.
Sous Pools de nœuds, cliquez sur le nom du pool de nœuds.
Cliquez sur Modifier.
Cochez la case Activer les nœuds privés.
Cliquez sur Enregistrer.
Annuler l'isolation du pool de nœuds
Dans les clusters Standard, pour indiquer à GKE de provisionner des pools de nœuds avec des adresses IP publiques, exécutez la commande suivante :
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--no-enable-private-nodes
Remplacez les éléments suivants :
NODE_POOL_NAME
: nom du pool de nœuds que vous souhaitez modifier.CLUSTER_NAME
: nom du cluster GKE.
Les adresses IP publiques peuvent accéder aux nœuds de votre cluster.
Limites
Avant de modifier le mode d'isolation du cluster, tenez compte des limitations suivantes :
- Vous ne pouvez modifier le mode d'isolation que pour les clusters qui utilisent Private Service Connect.
- La modification du mode d'isolation n'est pas disponible sur les clusters publics exécutés sur d'anciens réseaux.
- Une fois que vous avez mis à jour un pool de nœuds public en mode privé, les charges de travail nécessitant un accès Internet public peuvent échouer dans les scénarios suivants :
- Clusters d'un réseau VPC partagé où l'accès privé à Google n'est pas activé. Activez manuellement l'accès privé à Google pour vous assurer que GKE télécharge l'image de nœud attribuée. Pour les clusters qui ne font pas partie d'un réseau VPC partagé, GKE active automatiquement l'accès privé à Google.
- Les charges de travail qui nécessitent un accès à Internet lorsque Cloud NAT n'est pas activé ou pour lesquelles aucune solution NAT personnalisée n'est pas définie. Pour autoriser le trafic sortant vers Internet, activez Cloud NAT ou une solution NAT personnalisée.
Clusters Private Service Connect créés en tant que clusters publics ou privés
Un point de terminaison privé est activé pour les clusters créés comme publics et qui utilisent Private Service Connect. Dans ce point de terminaison privé, les adresses IP internes des URL de webhooks nouveaux ou existants que vous configurez ne sont pas acceptées. Pour atténuer cette incompatibilité, procédez comme suit:
- Configurez un webhook avec une adresse privée par URL.
- Créez un service sans interface graphique et sans sélecteur.
- Créez un point de terminaison correspondant à la destination requise.
Clusters Private Service Connect créés en tant que clusters publics
Uniquement dans les clusters Private Service Connect créés en tant que comptes publics, toutes les adresses IP privées du réseau du cluster peuvent toujours atteindre le point de terminaison privé du cluster. Pour en savoir plus sur l'accès au plan de contrôle, consultez la page Réseaux autorisés pour l'accès au plan de contrôle.