Cette page explique comment configurer l'isolation réseau pour les clusters Google Kubernetes Engine (GKE) lorsque vous créez ou mettez à jour votre cluster.
Planifiez et concevez l'isolation réseau de votre cluster avec les architectes réseau, les administrateurs réseau ou toute autre équipe d'ingénieurs réseau de votre organisation chargée de définir, implémenter et gérer l'architecture réseau.
Fonctionnement de l'isolation du réseau du cluster
Dans un cluster GKE, l'isolation réseau dépend de qui peut accéder aux composants du cluster et comment. Vous pouvez contrôler les éléments suivants:
- Accès au plan de contrôle: vous pouvez personnaliser l'accès externe, l'accès limité ou l'accès illimité au plan de contrôle.
- Mise en réseau de cluster: vous pouvez choisir qui peut accéder aux nœuds des clusters standards ou aux charges de travail des clusters Autopilot.
Avant de créer votre cluster, tenez compte des points suivants:
- Qui peut accéder au plan de contrôle et comment est-il exposé ?
- Comment vos nœuds ou vos charges de travail sont-ils exposés ?
Pour répondre à ces questions, suivez les consignes de planification et de conception dans la section À propos de l'isolation réseau.
Restrictions et limitations
Par défaut, GKE crée vos clusters en tant que clusters de VPC natif. Les clusters de VPC natif ne sont pas compatibles avec les anciens réseaux.
Développez les sections suivantes pour afficher les règles concernant les plages d'adresses IP et le trafic lors de la création d'un cluster.
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
.
Configurer l'accès au plan de contrôle
Lorsque vous créez un cluster GKE dans n'importe quelle version à l'aide de la Google Cloud CLI ou dans la version 1.29 ou ultérieure à l'aide de la console, le plan de contrôle est accessible via les interfaces suivantes:
Point de terminaison basé sur le DNS
L'accès au plan de contrôle dépend de la résolution DNS du trafic source. Activez le point de terminaison basé sur le DNS pour bénéficier des avantages suivants:
- Créez une règle d'accès dynamique basée sur des stratégies IAM.
- Accédez au plan de contrôle à partir d'autres réseaux VPC ou d'emplacements externes sans avoir à configurer d'hôte bastion ni de nœuds proxy.
Pour configurer l'accès au point de terminaison basé sur le DNS, consultez Définir l'accès au point de terminaison basé sur le DNS.
Points de terminaison basés sur l'adresse IP
L'accès aux points de terminaison du plan de contrôle dépend de l'adresse IP source et est contrôlé par vos réseaux autorisés. Vous pouvez gérer l'accès aux points de terminaison basés sur l'IP du plan de contrôle, y compris:
- Activez ou désactivez le point de terminaison basé sur l'adresse IP.
- Activez ou désactivez le point de terminaison externe pour autoriser l'accès du trafic externe. Le point de terminaison interne est toujours activé lorsque vous activez les points de terminaison basés sur l'adresse IP du plan de contrôle.
- Ajoutez des réseaux autorisés pour ajouter à la liste d'autorisation ou refuser l'accès des adresses IP publiques. Si vous ne configurez pas de réseaux autorisés, le plan de contrôle est accessible depuis n'importe quelle adresse IP externe. Cela inclut l'Internet public ou les Google Cloud adresses IP externes sans restriction.
- Ajoutez à la liste d'autorisation ou refusez l'accès de l'une ou de toutes les adresses IP privées du cluster.
- Ajoutez à la liste d'autorisation ou refusez l'accès des adresses IP externesGoogle Cloud , qui sont des adresses IP externes attribuées à toute VM utilisée par un client hébergé sur Google Cloud.
- Ajoutez à la liste d'autorisation ou refusez l'accès des adresses IP d'autres Google Cloud régions.
Consultez les limites de l'utilisation de points de terminaison basés sur les adresses IP avant de définir l'accès au plan de contrôle.
Créer un cluster et définir l'accès au plan de contrôle
Pour créer ou mettre à jour un cluster Autopilot ou Standard, utilisez la Google Cloud CLI ou la console Google Cloud.
Console
Pour créer un cluster, procédez comme suit :
Accédez à la page Google Kubernetes Engine dans Google Cloud Console.
Cliquez sur add_box Créer.
Configurez les attributs de votre cluster en fonction des besoins de votre projet.
Dans le menu de navigation, cliquez sur Mise en réseau.
Sous Accès au plan de contrôle, configurez les points de terminaison du plan de contrôle:
- Cochez la case Accès via DNS pour activer les points de terminaison basés sur DNS du plan de contrôle.
- Cochez la case Accès à l'aide d'adresses IPv4 pour activer les points de terminaison basés sur l'adresse IP du plan de contrôle. Utilisez la configuration incluse dans Définir les adresses IP pouvant accéder au plan de contrôle pour personnaliser l'accès aux points de terminaison basés sur l'adresse IP.
gcloud
Pour les clusters Autopilot, exécutez la commande suivante :
gcloud container clusters create-auto CLUSTER_NAME \
--enable-ip-access \
--enable-dns-access
Pour les clusters Standard, exécutez la commande suivante :
gcloud container clusters create CLUSTER_NAME \
--enable-ip-access \
--enable-dns-access
Remplacez les éléments suivants :
CLUSTER_NAME
: nom du cluster
Les deux commandes incluent des options qui permettent les opérations suivantes:
enable-dns-access
: permet d'accéder au plan de contrôle à l'aide du point de terminaison basé sur DNS du plan de contrôle.enable-ip-access
: permet d'accéder au plan de contrôle à l'aide d'adresses IPv4. Ne renseignez pas cette option si vous souhaitez désactiver à la fois les points de terminaison internes et externes du plan de contrôle.
Utilisez les indicateurs listés dans Définir les adresses IP pouvant accéder au plan de contrôle pour personnaliser l'accès aux points de terminaison basés sur l'adresse IP.
Définir l'accès au point de terminaison basé sur le DNS
Vous pouvez gérer l'authentification et l'autorisation au point de terminaison basé sur DNS en configurant l'autorisation IAM container.clusters.connect
. Pour configurer cette autorisation, attribuez les rôles IAM suivants à votre Google Cloud projet:
roles/container.developer
roles/container.viewer
Vous pouvez éventuellement gérer la connectivité du point de terminaison basé sur le DNS à l'aide des fonctionnalités suivantes:
VPC Service Controls: le point de terminaison basé sur DNS est compatible avec VPC Service Controls pour ajouter une couche de sécurité à votre accès au plan de contrôle. VPC Service Controls fonctionne de manière cohérente entre les API Google Cloud .
Accès au point de terminaison basé sur le DNS à partir de clients sans accès à Internet public: le point de terminaison basé sur le DNS est accessible via des API Google Cloud disponibles sur Internet public. Pour accéder au point de terminaison basé sur le DNS à partir de clients privés, vous pouvez utiliser Accès privé à Google, la passerelle Cloud NAT ou Private Service Connect pour les API Google Cloud .
Lorsque vous utilisez Private Service Connect pour les API Google Cloud , GKE redirige les requêtes d'adresses
gke.goog
vers l'adresse IP interne ajoutée par Private Service Connect pour les API Google, et non vers l'adresse IP publique Google par défaut. Pour configurer Private Service Connect pour les API Google Cloud , suivez la procédure décrite dans Accéder aux API Google via des points de terminaison.Accès au point de terminaison basé sur DNS à partir de clients sur site: les clients sur site peuvent accéder au point de terminaison basé sur DNS via l'accès privé à Google. Pour configurer l'accès privé à Google, suivez la procédure décrite dans la section Configurer l'accès privé à Google pour les hôtes sur site.
Définir les adresses IP pouvant accéder au plan de contrôle
Pour définir les adresses IP pouvant accéder au plan de contrôle, procédez comme suit:
Console
- Sous Accès au plan de contrôle, sélectionnez Activer les réseaux autorisés.
- Cliquez sur Ajouter un réseau autorisé.
- Saisissez un Nom pour le réseau.
- Pour Réseau, saisissez une plage CIDR à laquelle vous souhaitez accorder l'accès au plan de contrôle du cluster.
- Cliquez sur OK.
- Ajoutez d'autres réseaux autorisés si nécessaire.
Définir les règles de pare-feu basées sur les adresses IP du plan de contrôle
Pour définir les règles de pare-feu des adresses IP du plan de contrôle, procédez comme suit:
- Développez la section Afficher les règles de pare-feu basées sur les adresses IP.
Cochez la case Accès via l'adresse IP externe du plan de contrôle pour autoriser l'accès au plan de contrôle à partir d'adresses IP publiques.
Bonne pratique: Définissez des réseaux autorisés pour le plan de contrôle afin de limiter l'accès au plan de contrôle.
Cochez la case Accéder via l'adresse IP interne du plan de contrôle depuis n'importe quelle région. Les adresses IP internes de n'importe quelle région Google Cloudpeuvent accéder au point de terminaison interne du plan de contrôle.
Sélectionnez Forcer l'application des réseaux autorisés sur les points de terminaison internes du plan de contrôle. Seules les adresses IP que vous avez définies dans la liste Ajouter des réseaux autorisés peuvent accéder au point de terminaison interne du plan de contrôle. Le point de terminaison interne est activé par défaut.
Sélectionnez Ajouter Google Cloud des adresses IP externes aux réseaux autorisés. Toutes les adresses IP publiques de Google Cloud peuvent accéder au plan de contrôle.
gcloud
Vous pouvez configurer les adresses IP pouvant accéder aux points de terminaison externes et internes du plan de contrôle à l'aide des options suivantes:
enable-private-endpoint
: indique que l'accès au point de terminaison externe est désactivé. Omettre cet indicateur si vous souhaitez autoriser l'accès au plan de contrôle à partir d'adresses IP externes. Dans ce cas, nous vous recommandons vivement de contrôler l'accès au point de terminaison externe avec l'indicateurenable-master-authorized-networks
.enable-master-authorized-networks:
Spécifie que l'accès au point de terminaison externe est limité aux plages d'adresses IP que vous autorisez.master-authorized-networks
: liste les valeurs CIDR des réseaux autorisés. Cette liste est une liste d'éléments séparés par une virgule. Exemple :8.8.8.8/32,8.8.8.0/24
Bonne pratique: Utilisez l'option
enable-master-authorized-networks
pour que l'accès au plan de contrôle soit limité.enable-authorized-networks-on-private-endpoint
: spécifie que l'accès au point de terminaison interne est limité aux plages d'adresses IP que vous autorisez avec l'indicateurenable-master-authorized-networks
.no-enable-google-cloud-access
: interdit l'accès au plan de contrôle à partir d'adresses IP externesGoogle Cloud .enable-master-global-access
: permet l'accès à partir d'adresses IP d'autres régionsGoogle Cloud .Vous pouvez continuer à configurer le réseau du cluster en définissant l'isolation des nœuds ou des pods au niveau du cluster.
Vous pouvez également créer un cluster et définir des attributs au niveau du cluster, tels que le réseau et le sous-réseau de nœud, le type de pile IP et l'allocation d'adresses IP. Pour en savoir plus, consultez Créer un cluster de VPC natif.
Modifier l'accès au plan de contrôle
Pour modifier l'accès au plan de contrôle d'un cluster, utilisez gcloud CLI ou la console Google Cloud.
Console
Accédez à la page Google Kubernetes Engine dans Google Cloud Console.
Dans la liste des clusters, cliquez sur le nom du cluster.
Dans l'onglet Détails du cluster, sous Mise en réseau du plan de contrôle, cliquez sur edit.
Dans la boîte de dialogue Modifier la mise en réseau du plan de contrôle, modifiez l'accès au plan de contrôle en fonction des exigences de votre cas d'utilisation.
gcloud
Exécutez la commande suivante et ajoutez les options qui correspondent à votre cas d'utilisation. Vous pouvez utiliser les options suivantes:
enable-dns-access
: permet d'accéder au plan de contrôle à l'aide du point de terminaison basé sur DNS du plan de contrôle.enable-ip-access
: permet d'accéder au plan de contrôle à l'aide d'adresses IPv4. Ne renseignez pas cette option si vous souhaitez désactiver à la fois les points de terminaison internes et externes du plan de contrôle.enable-private-endpoint
: indique que l'accès au point de terminaison externe est désactivé. Omettre cet indicateur si vous souhaitez autoriser l'accès au plan de contrôle à partir d'adresses IP externes. Dans ce cas, nous vous recommandons vivement de contrôler l'accès au point de terminaison externe avec l'indicateurenable-master-authorized-networks
.enable-master-authorized-networks:
Spécifie que l'accès au point de terminaison externe est limité aux plages d'adresses IP que vous autorisez.master-authorized-networks
: liste les valeurs CIDR des réseaux autorisés. Cette liste est une liste d'éléments séparés par une virgule. Exemple :8.8.8.8/32,8.8.8.0/24
Bonne pratique: Utilisez l'option
enable-master-authorized-networks
pour que l'accès au plan de contrôle soit limité.enable-authorized-networks-on-private-endpoint
: spécifie que l'accès au point de terminaison interne est limité aux plages d'adresses IP que vous autorisez avec l'indicateurenable-master-authorized-networks
.no-enable-google-cloud-access
: interdit l'accès au plan de contrôle à partir d'adresses IP externesGoogle Cloud .enable-master-global-access
: permet l'accès à partir d'adresses IP d'autres régionsGoogle Cloud .gcloud container clusters update CLUSTER_NAME
Remplacez
CLUSTER_NAME
par le nom du cluster.
Vérifier la configuration de votre plan de contrôle
Vous pouvez afficher les points de terminaison de votre cluster à l'aide de la CLI gcloud ou de la console Google Cloud.
Console
Accédez à la page Google Kubernetes Engine dans Google Cloud Console.
Dans la liste des clusters, cliquez sur le nom du cluster.
Dans l'onglet Détails du cluster, sous Plan de contrôle, vous pouvez vérifier les caractéristiques suivantes des points de terminaison du plan de contrôle:
- Le point de terminaison DNS inclut le nom du point de terminaison basé sur le DNS de votre cluster, si vous l'avez activé.
- Accès au plan de contrôle via des adresses IPv4 inclut l'état du point de terminaison basé sur l'adresse IP. Si elle est activée, vous pouvez afficher les informations des points de terminaison publics et privés.
- Accès via l'adresse IP interne du plan de contrôle depuis n'importe quelle région affiche l'état Activé lorsque le plan de contrôle est accessible par les adresses IP Google d'autres régions.
- Réseaux autorisés affiche la liste des plages CIDR pouvant accéder au plan de contrôle, si vous avez activé les réseaux autorisés.
- Forcer l'application des réseaux autorisés sur les points de terminaison internes du plan de contrôle affiche l'état Activé si seuls les plages CIDR du champ Réseaux autorisés peuvent accéder au point de terminaison interne.
- Ajouter des adresses IP externes Google Cloud aux réseaux autorisés affiche l'état Activé si les adresses IP externes de Google Cloudpeuvent accéder au plan de contrôle.
Pour modifier un attribut, cliquez sur edit Accès au plan de contrôle via des adresses IPv4, puis ajustez-le en fonction de votre cas d'utilisation.
gcloud
Pour vérifier la configuration du plan de contrôle, exécutez la commande suivante:
gcloud container clusters describe CLUSTER_NAME
La sortie comporte un bloc controlPlaneEndpointsConfig
qui décrit la définition du réseau. Un résultat semblable aux lignes suivantes s'affiche:
controlPlaneEndpointsConfig:
dnsEndpointConfig:
allowExternalTraffic: true
endpoint: gke-dc6d549babec45f49a431dc9ca926da159ca-518563762004.us-central1-c.autopush.gke.goog
ipEndpointsConfig:
authorizedNetworksConfig:
cidrBlocks:
- cidrBlock: 8.8.8.8/32
- cidrBlock: 8.8.8.0/24
enabled: true
gcpPublicCidrsAccessEnabled: false
privateEndpointEnforcementEnabled: true
enablePublicEndpoint: false
enabled: true
globalAccess: true
privateEndpoint: 10.128.0.13
Dans cet exemple, le cluster a la configuration suivante:
- Les points de terminaison basés sur le DNS et sur l'adresse IP sont activés.
- Les réseaux autorisés sont activés et les plages CIDR sont définies. Ces réseaux autorisés sont appliqués à l'adresse IP interne.
- L'accès au plan de contrôle à partir d' Google Cloud adresses IP externes est refusé.
Exemples de configuration de l'accès au plan de contrôle
Cette section décrit la configuration des exemples d'isolation réseau suivants. Évaluez la similitude de ces exemples avec votre cas d'utilisation:
- Exemple 1: Le plan de contrôle est accessible depuis certaines adresses IP que vous définissez. Il peut s'agir d'adresses IP d'autres Google Cloud régions ou d'adresses IP réservées par Google.
- Exemple 2: Aucune adresse IP externe n'est accessible au plan de contrôle.
Exemple 1: Le plan de contrôle est accessible depuis certaines adresses IP
Dans cette section, vous allez créer un cluster avec les configurations d'isolation réseau suivantes:
- Le point de terminaison basé sur un DNS est activé dans le plan de contrôle.
- Le point de terminaison externe est activé en plus du point de terminaison interne activé par défaut dans le plan de contrôle.
- Le plan de contrôle définit des réseaux autorisés, qui ne permettent qu'aux réseaux autorisés suivants d'atteindre le plan de contrôle :
- Plage d'adresses IP externes que vous définissez.
- Toutes les adresses IP internes de votre cluster
- Google Cloud adresses IP externes.
Pour créer ce cluster, utilisez la Google Cloud CLI ou la console Google Cloud.
Console
Accédez à la page Google Kubernetes Engine dans Google Cloud Console.
Cliquez sur add_box Créer.
Configurez votre cluster en fonction de vos besoins.
Dans le menu de navigation, cliquez sur Mise en réseau.
Sous Accès au plan de contrôle, configurez les points de terminaison du plan de contrôle:
- Cochez la case Accès via le DNS.
- Cochez la case Accès à l'aide d'adresses IPV4.
Sélectionnez Activer les réseaux autorisés.
Cliquez sur Ajouter un réseau autorisé.
Saisissez un Nom pour le réseau.
Pour Réseau, saisissez une plage CIDR à laquelle vous souhaitez accorder l'accès au plan de contrôle du cluster.
Cliquez sur OK.
Ajoutez d'autres réseaux autorisés si nécessaire.
Développez la section Afficher les règles de pare-feu basées sur les adresses IP.
Sélectionnez Accéder via l'adresse IP interne du plan de contrôle depuis n'importe quelle région. Les adresses IP internes de n'importe quelle région peuvent accéder au plan de contrôle via l'adresse IP interne. Google Cloud
Sélectionnez Ajouter Google Cloud des adresses IP externes aux réseaux autorisés. Toutes les adresses IP externes de Google Cloud peuvent accéder au plan de contrôle.
Vous pouvez continuer à configurer le réseau du cluster en définissant l'isolation des nœuds ou des pods au niveau du cluster.
gcloud
Exécutez la commande ci-dessous.
gcloud container clusters create-auto CLUSTER_NAME \
--enable-dns-access \
--enable-ip-access \
--enable-master-authorized-networks \
--enable-master-global-access \
--master-authorized-networks CIDR1,CIDR2,...
Remplacez les éléments suivants :
CLUSTER_NAME
: nom du cluster GKE.CIDR1,CIDR2,...
: liste des valeurs CIDR séparées par une virgule pour les réseaux autorisés. Exemple :8.8.8.8/32,8.8.8.0/24
Exemple 2: Le plan de contrôle est accessible à partir d'adresses IP internes
Dans cette section, vous allez créer un cluster avec les configurations d'isolation réseau suivantes:
- Le point de terminaison basé sur un DNS est activé dans le plan de contrôle.
- Le point de terminaison externe est désactivé dans le plan de contrôle.
- Les réseaux autorisés sont activés pour le plan de contrôle.
- Tout accès au plan de contrôle via l'adresse IP interne depuis n'importe quelle régionGoogle Cloud est autorisé.
- Les adresses IP externesGoogle Cloud n'ont pas accès à votre cluster.
Vous pouvez créer ce cluster à l'aide de Google Cloud CLI ou de la console Google Cloud.
Console
Accédez à la page Google Kubernetes Engine dans Google Cloud Console.
Cliquez sur add_box Créer.
Configurez votre cluster en fonction de vos besoins.
Dans le menu de navigation, cliquez sur Mise en réseau.
Sous Accès au plan de contrôle, configurez les points de terminaison du plan de contrôle:
- Cochez la case Accès via le DNS.
- Cochez la case Accès à l'aide d'adresses IPV4.
Développez la section Afficher les règles de pare-feu basées sur les adresses IP.
Décochez Accès via l'adresse IP externe du plan de contrôle. Aucune adresse IP externe ne peut accéder au plan de contrôle.
Sous Accès au plan de contrôle, sélectionnez Activer les réseaux autorisés.
Cochez la case Accéder via l'adresse IP interne du plan de contrôle depuis n'importe quelle région. Les adresses IP internes de n'importe quelle Google Cloud région peuvent accéder au plan de contrôle via l'adresse IP interne.
Vous pouvez poursuivre la configuration du réseau du cluster en définissant l'isolation des nœuds ou des pods au niveau du cluster.
gcloud
Exécutez la commande ci-dessous.
gcloud container clusters create-auto CLUSTER_NAME \
--enable-dns-access \
--enable-ip-access \
--enable-private-endpoint \
--enable-master-authorized-networks \
--master-authorized-networks CIDR1,CIDR2,... \
--no-enable-google-cloud-access \
--enable-master-global-access
Remplacez les éléments suivants :
CLUSTER_NAME
: nom du cluster.CIDR1,CIDR2,...
: liste des valeurs CIDR séparées par une virgule pour les réseaux autorisés. Exemple :8.8.8.8/32,8.8.8.0/24
Configurer la mise en réseau d'un cluster
Dans cette section, vous allez configurer votre cluster pour qu'il comporte des nœuds avec un accès interne (privé) ou externe (public). GKE vous permet de combiner la configuration réseau des nœuds en fonction du type de cluster que vous utilisez:
- Cluster standard: vous pouvez créer ou mettre à jour vos pools de nœuds pour provisionner des nœuds privés ou publics dans le même cluster. Par exemple, si vous créez un pool de nœuds avec des nœuds privés, GKE ne provisionne ses nœuds qu'avec des adresses IP internes. GKE ne modifie pas les pools de nœuds existants. Vous pouvez également définir la configuration réseau par défaut au niveau du cluster. GKE n'applique cette configuration réseau par défaut que lorsque aucune configuration réseau n'est définie pour les nouveaux pools de nœuds.
- Clusters Autopilot: vous pouvez créer ou mettre à jour votre cluster pour définir la configuration réseau par défaut de toutes vos charges de travail. GKE planifie les charges de travail nouvelles et existantes sur des nœuds publics ou privés en fonction de votre configuration. Vous pouvez également définir explicitement la configuration réseau du cluster d'une charge de travail individuelle.
Configurer le cluster
Dans cette section, vous allez configurer la mise en réseau du cluster au niveau du cluster. GKE tient compte de cette configuration lorsque votre pool de nœuds ou votre charge de travail ne la définit pas.
Pour définir une configuration au niveau du cluster, utilisez Google Cloud CLI ou la console Google Cloud.
Console
Créer un cluster
Accédez à la page Google Kubernetes Engine dans Google Cloud Console.
Cliquez sur add_box Créer, puis sur Configurer dans la section Standard ou Autopilot.
Configurez votre cluster en fonction de vos besoins.
Dans le menu de navigation, cliquez sur Mise en réseau.
Dans la section Mise en réseau du cluster, procédez comme suit en fonction de votre cas d'utilisation:
- Sélectionnez Activer les nœuds privés pour provisionner des nœuds avec des adresses IP internes uniquement (nœuds privés), ce qui empêche les clients externes d'y accéder. Vous pouvez modifier ces paramètres à tout moment.
- Décochez Activer les nœuds privés pour ne provisionner les nœuds qu'avec des adresses IP externes (publiques), ce qui permet aux clients externes d'y accéder.
Dans la section Options réseau avancées, configurez des attributs VPC natifs supplémentaires. Pour en savoir plus, consultez Créer un cluster de VPC natif.
Cliquez sur Créer.
Mettre à jour un cluster existant
Accédez à la page Google Kubernetes Engine dans Google Cloud Console.
Dans la liste des clusters, cliquez sur le nom du cluster.
Dans Nœuds privés, sous l'onglet Configuration par défaut des nouveaux pools de nœuds, cliquez sur edit Modifier les nœuds privés.
Dans la boîte de dialogue Edit Private Nodes (Modifier les nœuds privés), effectuez l'une des opérations suivantes:
- Sélectionnez Activer les nœuds privés pour provisionner des nœuds avec des adresses IP internes uniquement (nœuds privés), ce qui empêche les clients externes d'y accéder. Vous pouvez modifier ces paramètres à tout moment.
- Décochez Activer les nœuds privés pour ne provisionner les nœuds qu'avec des adresses IP externes (publiques), ce qui permet aux clients externes d'y accéder.
Cliquez sur Enregistrer les modifications.
gcloud
Utilisez l'une des options suivantes pour définir la mise en réseau du cluster:
enable-private-nodes
: pour provisionner des nœuds avec uniquement des adresses IP internes (nœuds privés). Tenez compte des conditions suivantes lorsque vous utilisez cet indicateur :- L'option
enable-ip-alias
est obligatoire lorsque vous utilisezenable-private-nodes
. - L'indicateur
master-ipv4-cidr
est facultatif pour créer des sous-réseaux privés. Si vous utilisez cet indicateur, GKE crée un sous-réseau qui utilise les valeurs que vous avez définies dansmaster-ipv4-cidr
et utilise ce sous-réseau pour provisionner l'adresse IP interne du plan de contrôle.
- L'option
no-enable-private-nodes
: pour provisionner des nœuds avec uniquement des adresses IP externes (nœuds publics).
Dans les clusters Autopilot, créez ou modifiez le cluster avec l'indicateur enable-private-nodes
.
Pour créer un cluster, utilisez la commande suivante:
gcloud container clusters create-auto CLUSTER_NAME \ --enable-private-nodes \ --enable-ip-alias
Pour mettre à jour un cluster, utilisez la commande suivante.
gcloud container clusters update CLUSTER_NAME \ --enable-private-nodes \ --enable-ip-alias
La mise à jour du cluster ne prend effet qu'après la reprogrammation de tous les pools de nœuds. Ce processus peut prendre plusieurs heures.
Dans les clusters standards, créez ou modifiez le cluster avec l'option enable-private-nodes
.
Pour créer un cluster, utilisez la commande suivante:
gcloud container clusters create CLUSTER_NAME \ --enable-private-nodes \ --enable-ip-alias
Pour mettre à jour un cluster, utilisez la commande suivante:
gcloud container clusters update CLUSTER_NAME \ --enable-private-nodes \ --enable-ip-alias
La mise à jour du cluster ne prend effet que sur les nouveaux pools de nœuds. GKE ne met pas à jour cette configuration sur les pools de nœuds existants.
La configuration du cluster est écrasée par la configuration réseau au niveau du pool de nœuds ou de la charge de travail.
Configurer vos pools de nœuds ou vos charges de travail
Pour configurer des nœuds privés ou publics au niveau de la charge de travail pour les clusters Autopilot, ou des pools de nœuds pour les clusters standards, utilisez Google Cloud CLI ou la console Google Cloud. Si vous ne définissez pas la configuration réseau au niveau de la charge de travail ou du pool de nœuds, GKE applique la configuration par défaut au niveau du cluster.
Console
Dans les clusters standards, procédez comme suit:
Accédez à la page Google Kubernetes Engine dans Google Cloud Console.
Sur la page Détails du cluster, cliquez sur le nom du cluster que vous souhaitez modifier.
Cliquez sur add_box Ajouter un pool de nœuds.
Configurez la case à cocher Activer les nœuds privés en fonction de votre cas d'utilisation:
- Sélectionnez Activer les nœuds privés pour provisionner des nœuds avec uniquement des adresses IP internes (nœuds privés).
- Décochez Activer les nœuds privés pour ne provisionner les nœuds qu'avec des adresses IP externes (publiques), ce qui permet aux clients externes d'y accéder. Vous pouvez modifier cette configuration à tout moment.
Configurez votre nouveau pool de nœuds.
Cliquez sur Créer.
Pour en savoir plus sur la gestion des pools de nœuds, consultez la page Ajouter et gérer des pools de nœuds.
gcloud
Dans les clusters Autopilot, pour demander à GKE de planifier un pod sur des nœuds privés, ajoutez le
nodeSelector
suivant à la spécification de votre pod:cloud.google.com/private-node=true
Utilisez
private-node=true
dans lenodeSelector
du pod pour planifier un pod sur des nœuds ne disposant que d'adresses IP internes (nœuds privés).GKE recrée vos pods sur des nœuds privés ou publics, en fonction de votre configuration. Pour éviter toute interruption de charge de travail, migrez chaque charge de travail indépendamment et surveillez la migration.
Dans les clusters Standard, 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 \ --enable-ip-alias
Remplacez les éléments suivants :
NODE_POOL_NAME
: nom du pool de nœuds que vous souhaitez modifier.CLUSTER_NAME
: nom de votre cluster existant.
Utilisez l'une des options suivantes pour définir la configuration réseau du pool de nœuds:
enable-private-nodes
: pour provisionner des nœuds avec uniquement des adresses IP internes (nœuds privés).no-enable-private-nodes
: pour provisionner des nœuds avec uniquement des adresses IP externes (nœuds publics).
Configurations avancées
Les sections suivantes décrivent les configurations avancées que vous pouvez choisir lors de la configuration de l'isolation réseau de votre cluster.
Accéder à un cluster avec le point de terminaison externe désactivé via Cloud Shell
Si le point de terminaison externe du plan de contrôle de votre cluster est désactivé, vous ne pouvez pas accéder à votre plan de contrôle GKE avec Cloud Shell. Si vous souhaitez accéder à votre cluster via Cloud Shell, nous vous recommandons d'activer le point de terminaison basé sur DNS.
Pour vérifier l'accès à votre cluster, procédez comme suit:
Si vous avez activé le point de terminaison basé sur le DNS, exécutez la commande suivante pour obtenir les identifiants de votre cluster:
gcloud container clusters get-credentials CLUSTER_NAME \ --dns-endpoint
Si vous avez activé le point de terminaison basé sur l'adresse IP, exécutez la commande suivante pour obtenir les identifiants de votre cluster:
gcloud container clusters get-credentials CLUSTER_NAME \ --project=PROJECT_ID \ --internal-ip
Remplacez
PROJECT_ID
par l'ID du projet.Utilisez
kubectl
dans Cloud Shell pour accéder à votre cluster:kubectl get nodes
Le résultat ressemble à ce qui suit :
NAME STATUS ROLES AGE VERSION gke-cluster-1-default-pool-7d914212-18jv Ready <none> 104m v1.21.5-gke.1302 gke-cluster-1-default-pool-7d914212-3d9p Ready <none> 104m v1.21.5-gke.1302 gke-cluster-1-default-pool-7d914212-wgqf Ready <none> 104m v1.21.5-gke.1302
La commande get-credentials
utilise automatiquement le point de terminaison basé sur le DNS si l'accès au point de terminaison basé sur l'IP est désactivé.
Ajouter des règles de pare-feu pour des cas d'utilisation spécifiques
Cette section explique comment ajouter une règle de pare-feu à un cluster. Par défaut, les règles de pare-feu limitent le plan de contrôle de cluster de sorte qu'il ne lance que des connexions TCP vers vos nœuds et pods sur les ports 443
(HTTPS) et 10250
(kubelet).
Pour certaines fonctionnalités Kubernetes, vous devrez peut-être ajouter des règles de pare-feu pour autoriser l'accès sur des ports supplémentaires. Ne créez pas de règles de pare-feu ni de règles de stratégies de pare-feu hiérarchiques ayant une priorité plus élevée que les règles de pare-feu créées automatiquement.
Les fonctionnalités de Kubernetes nécessitant des règles de pare-feu supplémentaires sont les suivantes :
- Webhooks d'admission
- Serveurs d'API agrégés
- Conversion de webhooks
- Configuration de l'audit dynamique
- En règle générale, toutes les API qui possèdent un champ ServiceReference nécessitent des règles de pare-feu supplémentaires.
L'ajout d'une règle de pare-feu autorise le trafic provenant du plan de contrôle de cluster vers tous les éléments suivants :
- Port spécifié de chaque nœud (hostPort)
- Port spécifié de chaque pod exécuté sur ces nœuds
- Port spécifié de chaque service exécuté sur ces nœuds
Pour en savoir plus sur les règles de pare-feu, reportez-vous à la section Règles de pare-feu de la documentation de Cloud Load Balancing.
Pour ajouter une règle de pare-feu dans un cluster, vous devez enregistrer le bloc CIDR du plan de contrôle de cluster et la cible utilisée. Une fois l'enregistrement effectué, vous pouvez créer la règle.
Afficher le bloc CIDR du plan de contrôle
Vous avez besoin du bloc CIDR du plan de contrôle de cluster pour ajouter une règle de pare-feu.
Console
Accédez à la page Google Kubernetes Engine dans Google Cloud Console.
Dans la liste des clusters, cliquez sur le nom du cluster.
Dans l'onglet Détails, sous Mise en réseau, notez la valeur du champ Plage d'adresses du plan de contrôle.
gcloud
Exécutez la commande suivante :
gcloud container clusters describe CLUSTER_NAME
Remplacez CLUSTER_NAME
par le nom de votre cluster.
Dans le résultat de la commande, notez la valeur du champ masterIpv4CidrBlock.
Afficher les règles de pare-feu existantes
Vous devez spécifier la cible (dans ce cas, les nœuds de destination) utilisée par les règles de pare-feu existantes du cluster.
Console
Accédez à la page Stratégies de pare-feu de la console Google Cloud.
Dans le champ Filtrer le tableau des Règles de pare-feu VPC, saisissez
gke-CLUSTER_NAME
.
Dans les résultats, notez la valeur du champ Cibles.
gcloud
Exécutez la commande suivante :
gcloud compute firewall-rules list \
--filter 'name~^gke-CLUSTER_NAME' \
--format 'table(
name,
network,
direction,
sourceRanges.list():label=SRC_RANGES,
allowed[].map().firewall_rule().list():label=ALLOW,
targetTags.list():label=TARGET_TAGS
)'
Dans le résultat de la commande, notez la valeur du champ Targets.
Pour afficher les règles de pare-feu d'un VPC partagé, ajoutez l'option --project HOST_PROJECT_ID
à la commande.
Ajouter une règle de pare-feu
Console
Accédez à la page Stratégies de pare-feu de la console Google Cloud.
Cliquez sur add_box Créer une règle de pare-feu.
Dans la section Nom, saisissez le nom pour la règle de pare-feu.
Dans la liste Réseau, sélectionnez le réseau approprié.
Dans la section Sens du trafic, cliquez sur Entrée.
Dans Action en cas de correspondance, cliquez sur Autoriser.
Dans la liste Cibles, sélectionnez Tags cibles spécifiés.
Dans le champ Tags cibles, saisissez la valeur cible que vous avez notée précédemment.
Dans la liste Filtre source, sélectionnez Plages IPv4.
Sous Plages d'adresses IPv4 sources, saisissez le bloc CIDR du plan de contrôle du cluster.
Sous Protocoles et ports, cliquez surProtocoles et ports spécifiés, cochez la case correspondant au protocole approprié (tcp ou udp ) puis saisissez le numéro de port dans le champ du protocole.
Cliquez sur Créer.
gcloud
Exécutez la commande ci-dessous.
gcloud compute firewall-rules create FIREWALL_RULE_NAME \
--action ALLOW \
--direction INGRESS \
--source-ranges CONTROL_PLANE_RANGE \
--rules PROTOCOL:PORT \
--target-tags TARGET
Remplacez les éléments suivants :
FIREWALL_RULE_NAME
: nom choisi pour la règle de pare-feu.CONTROL_PLANE_RANGE
: plage d'adresses IP du plan de contrôle du cluster (masterIpv4CidrBlock
) que vous avez collectée précédemment.PROTOCOL:PORT
: port et son protocole,tcp
ouudp
.TARGET
: valeur cible (Targets
) que vous avez collectée précédemment.
Pour ajouter une règle de pare-feu pour un VPC partagé, ajoutez les options suivantes à la commande:
--project HOST_PROJECT_ID
--network NETWORK_ID
Octroyer un accès Internet sortant aux nœuds privés
Pour fournir un accès Internet sortant à vos nœuds privés, par exemple pour extraire des images d'un registre externe, utilisez Cloud NAT pour créer et configurer une instance Cloud Router. Cloud NAT permet aux nœuds privés d'établir des connexions sortantes via Internet pour envoyer et recevoir des paquets.
Cloud Router permet à tous vos nœuds de la région d'utiliser Cloud NAT pour toutes les plages d'adresses IP principales et plages d'adresses IP d'alias. De plus, il attribue automatiquement les adresses IP externes de la passerelle NAT.
Pour obtenir des instructions sur la création et la configuration de Cloud Router, reportez-vous à la section Créer une configuration Cloud NAT à l'aide de Cloud Router dans la documentation de Cloud NAT.
Déployer une application de conteneur Windows Server
Pour savoir comment déployer une application de conteneur Windows Server sur un cluster avec des nœuds privés, consultez la documentation sur le pool de nœuds Windows.