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 du 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, d'implémenter et de gérer l'architecture réseau.
Fonctionnement de l'isolation du réseau du cluster
Dans un cluster GKE, l'isolation du réseau dépend des personnes autorisées à accéder aux composants du cluster et de la manière dont elles y accèdent. Vous pouvez contrôler :
- Accès au plan de contrôle : vous pouvez personnaliser l'accès externe, limité ou illimité au plan de contrôle.
- Mise en réseau des clusters : 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 charges de travail sont-ils exposés ?
Pour répondre à ces questions, suivez les consignes de planification et de conception décrites dans À propos de l'isolation du 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.
Plages secondaires de pods au niveau du pool de nœuds : lorsque vous créez un cluster GKE, si vous spécifiez une plage secondaire de pods inférieure à /24
par pool de nœuds à l'aide de l'interface utilisateur, l'erreur suivante peut s'afficher :
Getting Pod secondary range 'pod' must have a CIDR block larger or equal to /24
GKE ne permet pas de spécifier une plage inférieure à /24
au niveau du pool de nœuds. Toutefois, il est possible de spécifier une plage plus petite au niveau du cluster. Pour ce faire, utilisez Google Cloud CLI avec l'argument --cluster-ipv4-cidr
. Pour en savoir plus, consultez Créer un cluster avec une plage CIDR spécifique.
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 Google Cloud CLI ou dans la version 1.29 et ultérieures à 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 les règles IAM.
- Accédez au plan de contrôle depuis d'autres réseaux VPC ou des emplacements externes sans avoir à configurer d'hôte bastion ni de nœuds de 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'adresse 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 à partir du trafic externe. Le point de terminaison interne est toujours activé lorsque vous activez les points de terminaison du plan de contrôle basés sur l'adresse IP.
- Ajoutez des réseaux autorisés à la liste d'autorisation ou refusez l'accès à partir d'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 les adresses IP externes ou Internet publiques sans restriction. Trusted Cloud
- Autorisez ou refusez l'accès depuis une ou plusieurs adresses IP privées du cluster.
- Autorisez ou refusez l'accès à partir d'Trusted Cloud adresses IP externes, qui sont des adresses IP externes attribuées à n'importe quelle VM utilisée par un client hébergé sur Trusted Cloud by S3NS.
- Autorisez ou refusez l'accès à partir d'adresses IP dans d'autres régions Trusted Cloud .
Avant de définir l'accès au plan de contrôle, consultez les limites de l'utilisation de points de terminaison basés sur des adresses IP.
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 Trusted Cloud .
Console
Pour créer un cluster, procédez comme suit :
Accédez à la page Google Kubernetes Engine dans la console Trusted Cloud .
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éder à l'aide du DNS pour activer les points de terminaison basés sur le DNS du plan de contrôle.
- Cochez la case Accéder à 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 les adresses 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 actions suivantes :
enable-dns-access
: permet d'accéder au plan de contrôle à l'aide du point de terminaison basé sur un DNS.enable-ip-access
: permet d'accéder au plan de contrôle à l'aide d'adresses IPv4. Si vous souhaitez désactiver les points de terminaison internes et externes du plan de contrôle, utilisez plutôt l'indicateurno-enable-ip-access
.
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 les adresses IP.
Définir l'accès au point de terminaison basé sur le DNS
Vous pouvez gérer l'authentification et l'autorisation pour le point de terminaison basé sur le DNS en configurant l'autorisation IAM container.clusters.connect
. Pour configurer cette autorisation, attribuez l'un des rôles IAM suivants à votre projetTrusted Cloud :
roles/container.developer
roles/container.viewer
Vous pouvez éventuellement gérer l'accessibilité du point de terminaison basé sur le DNS à l'aide des fonctionnalités suivantes :
VPC Service Controls : le point de terminaison basé sur le DNS est compatible avec VPC Service Controls pour ajouter un niveau de sécurité à votre accès au plan de contrôle. VPC Service Controls fonctionne de manière cohérente sur toutes les API Trusted Cloud .
Accès au point de terminaison basé sur le DNS depuis des clients sans accès à l'Internet public : le point de terminaison basé sur le DNS est accessible via les API Trusted Cloud disponibles sur l'Internet public. Pour accéder au point de terminaison basé sur le DNS à partir de clients privés, vous pouvez utiliser l'accès privé à Google, la passerelle Cloud NAT ou Private Service Connect pour les API. Trusted Cloud
Lorsque vous utilisez Private Service Connect pour les API Trusted Cloud , GKE redirige les requêtes pour les adresses
gke.goog
vers l'adresse IP interne ajoutée par Private Service Connect pour les API Google, et non vers l'adresse IP Google publique par défaut. Pour configurer Private Service Connect pour les API Trusted Cloud , suivez les étapes décrites dans Accéder aux API Google via des points de terminaison.Accès au point de terminaison basé sur le DNS à partir de clients sur site : le point de terminaison basé sur le DNS est accessible par les clients sur site via l'accès privé à Google. Pour configurer l'accès privé à Google, suivez la procédure décrite dans 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 pour les adresses IP du plan de contrôle
Pour définir les règles de pare-feu de l'adresse 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 du plan de contrôle pour 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 Trusted 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 des adresses IP externes Trusted Cloud aux réseaux autorisés. Toutes les adresses IP publiques de Trusted 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 indicateurs suivants :
enable-private-endpoint
: spécifie que l'accès au point de terminaison externe est désactivé. Omettez 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 des valeurs CIDR pour les 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 limiter l'accès au plan de contrôle.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
: refuse l'accès au plan de contrôle à partir des adresses IP externesTrusted Cloud .enable-master-global-access
: autorise l'accès à partir d'adresses IP dans d'autres régionsTrusted Cloud by S3NS .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œuds, 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 Trusted Cloud .
Console
Accédez à la page Google Kubernetes Engine dans la console Trusted Cloud .
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 indicateurs qui correspondent à votre cas d'utilisation. Vous pouvez utiliser les indicateurs suivants :
enable-dns-access
: permet d'accéder au plan de contrôle à l'aide du point de terminaison basé sur le DNS du plan de contrôle.enable-ip-access
: permet d'accéder au plan de contrôle à l'aide d'adresses IPv4. Si vous souhaitez désactiver les points de terminaison internes et externes du plan de contrôle, utilisez plutôt l'indicateurno-enable-ip-access
.enable-private-endpoint
: spécifie que l'accès au point de terminaison externe est désactivé. Omettez 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 des valeurs CIDR pour les 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 limiter l'accès au plan de contrôle.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
: refuse l'accès au plan de contrôle à partir des adresses IP externesTrusted Cloud .enable-master-global-access
: autorise l'accès à partir d'adresses IP dans d'autres régionsTrusted Cloud by S3NS .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 gcloud CLI ou de la consoleTrusted Cloud .
Console
Accédez à la page Google Kubernetes Engine dans la console Trusted Cloud .
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 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 cette option est activée, vous pouvez consulter les informations des points de terminaison publics et privés.
- L'option Accéder 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 provenant d'autres régions.
- Réseaux autorisés : affiche la liste des CIDR pouvant accéder au plan de contrôle, si vous avez activé les réseaux autorisés.
- L'option 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 CIDR du champ Réseaux autorisés peuvent accéder au point de terminaison interne.
- L'option Ajouter Trusted Cloud des adresses IP externes aux réseaux autorisés affiche l'état Activé si les adresses IP externes de Trusted 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
Le résultat comporte un bloc controlPlaneEndpointsConfig
qui décrit la définition du réseau. Vous devriez obtenir un résultat semblable à celui-ci :
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 présente la configuration suivante :
- Les points de terminaison basés sur le DNS et les adresses 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'adresses IP externes est refusé. Trusted Cloud by S3NS
Exemples de configuration de l'accès au plan de contrôle
Cette section décrit en détail 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 provenant d'autres régions Trusted Cloud ou d'adresses IP réservées par Google.
- Exemple 2 : Le plan de contrôle n'est accessible par aucune adresse IP externe.
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é pour le plan de contrôle.
- Le point de terminaison externe du plan de contrôle est activé en plus du point de terminaison interne, qui est activé par défaut.
- Le plan de contrôle comporte des réseaux autorisés définis, ce qui permet uniquement aux réseaux autorisés suivants d'atteindre le plan de contrôle :
- Une plage d'adresses IP externes que vous définissez.
- Toutes les adresses IP internes de votre cluster.
- Trusted Cloud adresses IP externes.
Pour créer ce cluster, utilisez la Google Cloud CLI ou la console Trusted Cloud .
Console
Accédez à la page Google Kubernetes Engine dans la console Trusted Cloud .
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éder à l'aide du DNS.
- Cochez la case Accéder à 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 Trusted Cloud peuvent accéder au plan de contrôle via l'adresse IP interne.
Sélectionnez Ajouter des adresses IP externes Trusted Cloud aux réseaux autorisés. Toutes les adresses IP externes de Trusted 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é pour le plan de contrôle.
- Le point de terminaison externe du plan de contrôle est désactivé.
- Les réseaux autorisés sont activés pour le plan de contrôle.
- Tous les accès au plan de contrôle via l'adresse IP interne depuis n'importe quelle régionTrusted Cloud sont autorisés.
- Les adresses IP externes n'ont pas accès à votre cluster.Trusted Cloud
Vous pouvez créer ce cluster à l'aide de Google Cloud CLI ou de la console Trusted Cloud .
Console
Accédez à la page Google Kubernetes Engine dans la console Trusted Cloud .
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éder à l'aide du DNS.
- Cochez la case Accéder à l'aide d'adresses IPV4.
Développez la section Afficher les règles de pare-feu basées sur les adresses IP.
Désélectionnez Accès via l'adresse IP externe du plan de contrôle. Le plan de contrôle n'est accessible par aucune adresse IP externe.
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 région Trusted Cloud peuvent accéder au plan de contrôle via l'adresse IP interne.
Vous pouvez poursuivre la configuration du réseau de 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 du 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 provisionne ses nœuds avec des adresses IP internes uniquement. 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 les nouveaux pools de nœuds ne disposent d'aucune configuration réseau.
- 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 du réseau de cluster d'une charge de travail individuelle.
Configurer le cluster
Dans cette section, configurez la mise en réseau du cluster au niveau du cluster. GKE prend en compte cette configuration lorsque votre pool de nœuds ou votre charge de travail ne l'ont pas définie.
Pour définir la configuration au niveau du cluster, utilisez Google Cloud CLI ou la consoleTrusted Cloud .
Console
Créer un cluster
Accédez à la page Google Kubernetes Engine dans la console Trusted Cloud .
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'accéder aux nœuds. Vous pouvez modifier ces paramètres à tout moment.
- Désélectionnez Activer les nœuds privés pour provisionner des nœuds avec uniquement des adresses IP externes (publiques), ce qui permet aux clients externes d'accéder aux nœuds.
Dans la section Options réseau avancées, configurez d'autres attributs natifs du VPC. 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 la console Trusted Cloud .
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 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'accéder aux nœuds. Vous pouvez modifier ces paramètres à tout moment.
- Désélectionnez Activer les nœuds privés pour provisionner des nœuds avec uniquement des adresses IP externes (publiques), ce qui permet aux clients externes d'accéder aux nœuds.
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 cette option, GKE crée un sous-réseau qui utilise les valeurs que vous avez définies dansmaster-ipv4-cidr
et l'utilise 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 mettez à jour 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'une fois que tous les pools de nœuds ont été reprogrammés. Ce processus peut prendre plusieurs heures.
Dans les clusters standards, créez ou mettez à jour 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 remplacé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 Standard, utilisez Google Cloud CLI ou la consoleTrusted 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 la console Trusted Cloud .
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.
Cochez la case 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ésélectionnez Activer les nœuds privés pour provisionner des nœuds avec uniquement des adresses IP externes (publiques), ce qui permet aux clients externes d'accéder aux nœuds. 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 Ajouter et gérer des pools de nœuds.
gcloud
Dans les clusters Autopilot et dans les pools de nœuds standards qui utilisent le provisionnement automatique des nœuds, ajoutez le
nodeSelector
suivant à la spécification de votre pod :cloud.google.com/private-node=true
Utilisez
private-node=true
pour planifier un pod sur des nœuds qui ne disposent 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 du réseau de votre cluster.
Accéder à un cluster dont le point de terminaison externe est désactivé à l'aide de 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 à l'aide de Cloud Shell, nous vous recommandons d'activer le point de terminaison basé sur le 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'adresse 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 la console Trusted Cloud .
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 dans la console Trusted 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 dans la console Trusted 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, reportez-vous à la documentation sur le pool de nœuds Windows.