Clusters privés

Cette page explique comment fonctionnent les clusters privés dans Google Kubernetes Engine (GKE). Vous pouvez également apprendre à créer et gérer des clusters privés.

Les clusters privés vous permettent d'isoler les nœuds de la connectivité entrante et sortante depuis/vers l'Internet public. Cela est possible, car les nœuds ne disposent que d'adresses IP internes.

Si vous souhaitez fournir un accès Internet sortant à certains nœuds privés, vous pouvez utiliser Cloud NAT ou gérer votre propre passerelle NAT.

Même si les adresses IP des nœuds sont privées, les clients externes peuvent accéder aux services de votre cluster. Par exemple, vous pouvez créer un service de type LoadBalancer et les clients externes peuvent appeler l'adresse IP de l'équilibreur de charge. Vous pouvez également créer un service de type NodePort, puis créer un objet Ingress. GKE utilise les informations des objets Service et Ingress pour configurer un équilibreur de charge HTTP(S). Les clients externes peuvent ensuite appeler l'adresse IP externe de l'équilibreur de charge HTTP(S).

Le schéma suivant présente l'architecture d'un cluster privé :

Architecture d'un cluster privé

Utiliser l'accès privé à Google dans des clusters privés

Par défaut, l'accès privé à Google est activé. L'accès privé à Google fournit des nœuds privés et leurs charges de travail avec un accès sortant limité aux API et services Google Cloud via le réseau privé de Google. Par exemple, l'accès privé à Google permet aux nœuds privés d'extraire des images de conteneur d'Artifact Registry et d'envoyer des journaux à Cloud Logging.

Plan de contrôle des clusters privés

Chaque cluster GKE dispose d'un serveur d'API Kubernetes géré par le plan de contrôle (maître). Ce plan de contrôle s'exécute sur une VM située dans un réseau VPC d'un projet appartenant à Google. Un cluster régional comporte plusieurs plans de contrôle, chacun s'exécutant sur sa propre VM.

Dans les clusters privés, le réseau VPC du plan de contrôle est connecté au réseau VPC de votre cluster via l'appairage de réseaux VPC. Votre réseau VPC contient les nœuds du cluster et le plan de contrôle se trouve dans un réseau VPC Google Cloud distinct. Le réseau VPC du plan de contrôle est situé dans un projet contrôlé par Google. Le trafic entre les nœuds et le plan de contrôle est entièrement routé à l'aide d'adresses IP internes. Si vous utilisez l'appairage de réseaux VPC pour connecter le réseau VPC de votre cluster à un autre réseau, ce réseau ne peut pas atteindre les ressources du réseau VPC du plan de contrôle. En effet, l'appairage de réseaux VPC ne prend en charge que la communication entre réseaux directement appairés. Pour en savoir plus, consultez la section Restrictions concernant l'appairage de réseaux VPC.

Réutilisation de l'appairage de réseaux VPC

Tous les clusters privés récemment créés réutilisent automatiquement les connexions d'appairage de réseaux VPC existantes. Le premier cluster privé zonal ou régional que vous créez génère une nouvelle connexion d'appairage de réseaux VPC. Les clusters privés supplémentaires de la même zone ou région et du même réseau peuvent utiliser le même appairage, sans créer de connexions d'appairage de réseaux VPC supplémentaires. Par exemple, si vous créez deux clusters privés à zone unique dans la zone us-east1-b et trois clusters privés régionaux dans la région asia-east1, seules deux connexions d'appairage sont créées. Toutefois, si vous créez un cluster régional et un cluster zonal dans la même région (par exemple, asia-east1 et asia-east1-a), deux connexions d'appairage différentes sont créées. Vous pouvez vérifier si votre cluster privé réutilise les connexions.

Points de terminaison dans les clusters privés

Le plan de contrôle d'un cluster privé possède un point de terminaison privé en plus d'un point de terminaison public. Le plan de contrôle d'un cluster non privé ne possède qu'un point de terminaison public.

Point de terminaison privé
Le point de terminaison privé est une adresse IP interne dans le réseau VPC du plan de contrôle. Dans un cluster privé, les nœuds communiquent toujours avec le point de terminaison privé du plan de contrôle. En fonction de votre configuration, vous pouvez gérer le cluster avec des outils tels que kubectl, qui se connectent également au point de terminaison privé. Toute VM qui utilise le même sous-réseau que votre cluster privé peut également accéder au point de terminaison privé.
Point de terminaison public
Il s'agit de l'adresse IP externe du plan de contrôle. Par défaut, des outils tels que kubectl communiquent avec le plan de contrôle sur son point de terminaison public. Vous pouvez contrôler l'accès à ce point de terminaison à l'aide de réseaux autorisés. Vous pouvez également désactiver l'accès au point de terminaison public.

Les clusters privés Standard et Autopilot utilisent par défaut des points de terminaison publics du plan de contrôle. Vous pouvez ignorer ce paramètre et spécifier un point de terminaison privé.

Accès aux points de terminaison du cluster

Vous pouvez contrôler le niveau d'accès aux points de terminaison à l'aide de l'une des configurations suivantes :

  • Accès public aux points de terminaison désactivé : il s'agit de l'option la plus sécurisée, car elle empêche tout accès Internet au plan de contrôle. C'est un bon choix si vous avez configuré votre réseau sur site pour une connexion à Google Cloud via Cloud Interconnect et Cloud VPN. Ces technologies relient efficacement le réseau de votre entreprise à votre VPC sans que le trafic n'ait à transiter par l'Internet public.

    Si vous désactivez l'accès public au point de terminaison, vous devez configurer des réseaux autorisés pour le point de terminaison privé. Si vous ne les configurez pas, vous ne pouvez vous connecter au point de terminaison privé que depuis des nœuds de cluster ou des VM appartenant au même sous-réseau que le cluster. De plus, les réseaux autorisés doivent être des adresses IP internes.

  • Accès public aux points de terminaison activé, réseaux autorisés activés : l'utilisation de clusters privés avec des réseaux autorisés permet de restreindre l'accès au plan de contrôle à partir des adresses IP sources que vous définissez. Cette option est idéale si vous ne disposez pas d'une infrastructure VPN existante ou vous avez des utilisateurs distants ou des filiales qui se connectent via l'Internet public plutôt qu'avec le VPN d'entreprise et Cloud Interconnect ou Cloud VPN.

  • Accès public aux points de terminaison activé, réseaux autorisés désactivés : il s'agit de l'option par défaut, qui est également la moins restrictive. Puisque les réseaux autorisés ne sont pas activés, vous pouvez administrer votre cluster à partir de n'importe quelle adresse IP source, à condition de vous authentifier.

Le tableau suivant récapitule les différentes manières d'accéder aux points de terminaison :

Accès public aux points de terminaison désactivé Accès public aux points de terminaison activé,
réseaux autorisés activés
Accès public aux points de terminaison activé,
réseaux autorisés désactivés.
Sécurité Niveau maximal de restriction des accès au plan de contrôle. L'accès client au point de terminaison public du plan de contrôle est bloqué. L'accès au plan de contrôle doit provenir d'adresses IP internes. Accès restreint au plan de contrôle à partir des adresses IP internes et externes que vous avez définies. Accès au plan de contrôle depuis n'importe quelle adresse IP.
Procédure de configuration détaillée Créer un cluster privé sans accès client au point de terminaison public. Créer un cluster privé avec accès limité au point de terminaison public. Créer un cluster privé disposant d'un accès illimité au point de terminaison public.
Options de configuration de Cloud Console
  1. Sélectionner Activer le VPC natif.
  2. Sélectionner Cluster privé.
  3. Supprimer Accéder au plan de contrôle à l'aide de son adresse IP externe.
    L'option Activer les réseaux autorisés pour le plan de contrôle est automatiquement activée.
  1. Sélectionner Activer le VPC natif.
  2. Sélectionner Cluster privé.
  3. Sélectionner Accéder au plan de contrôle à l'aide de son adresse IP externe.
  4. Sélectionner Activer les réseaux autorisés pour le plan de contrôle.
  1. Sélectionner Activer le VPC natif.
  2. Sélectionner Cluster privé.
  3. Sélectionner Accéder au plan de contrôle à l'aide de son adresse IP externe.
  4. Supprimer Activer les réseaux autorisés pour le plan de contrôle.
Options de création de cluster gcloud --enable-ip-alias
--enable-private-nodes
--enable-private-endpoint
--enable-master-authorized-networks
--enable-ip-alias
--enable-private-nodes
--enable-master-authorized-networks
--enable-ip-alias
--enable-private-nodes
--no-enable-master-authorized-networks
Communication entre les nœuds et le plan de contrôle

Les nœuds contactent toujours le plan de contrôle à l'aide du point de terminaison privé.

Communication webhook entre les nœuds et le serveur d'API

Les webhooks qui utilisent un service avec un port cible autre que 443 nécessitent une règle de pare-feu pour autoriser cette action. Pour en savoir plus, consultez la section Ajouter des règles de pare-feu pour des cas d'utilisation spécifiques.

Réseaux autorisés (maîtres) du plan de contrôle

Obligatoire pour l'accès au plan de contrôle à partir d'adresses IP internes autres que des nœuds et des pods.

Vous n'avez pas besoin d'autoriser explicitement la plage d'adresses IP internes des nœuds. Les adresses de la plage d'adresses IP principales du sous-réseau du cluster sont toujours autorisées à communiquer avec le point de terminaison privé.

Utilisez --master-authorized-networks pour spécifier des adresses IP internes supplémentaires qui peuvent accéder au plan de contrôle. Il n'est pas possible d'inclure des adresses IP externes dans la liste des réseaux autorisés, car l'accès au point de terminaison public est désactivé.

Obligatoire pour l'accès au plan de contrôle à partir d'adresses IP externes et d'adresses IP internes autres que les nœuds et les pods.

Utilisez --master-authorized-networks pour spécifier les adresses IP externes et internes, autres que les nœuds et les pods, qui peuvent accéder au plan de contrôle.

Non utilisé.

Si vous activez l'accès au point de terminaison public du plan de contrôle sans activer les réseaux autorisés, l'accès au point de terminaison public du plan de contrôle n'est pas restreint.

Accès à l'aide de kubectl

Depuis les nœuds : se sert toujours du point de terminaison privé. kubectl doit être configuré pour utiliser le point de terminaison privé.

À partir d'autres VM du réseau VPC du cluster : les autres VM peuvent utiliser kubectl pour communiquer avec le point de terminaison privé à la condition qu'elles se trouvent dans la même région que le cluster et que leurs adresses IP internes soient incluses dans la liste des réseaux autorisés maîtres ou qu'elles se trouvent dans le même sous-réseau que les nœuds du cluster. kubectl doit être configuré pour utiliser le point de terminaison privé.

Depuis des adresses IP publiques : jamais.

Depuis les nœuds : se sert toujours du point de terminaison privé. kubectl doit être configuré pour utiliser le point de terminaison privé.

À partir d'autres VM du réseau VPC du cluster : les autres VM peuvent utiliser kubectl pour communiquer avec le point de terminaison privé à la condition qu'elles se trouvent dans la même région que le cluster et que leurs adresses IP internes soient incluses dans la liste des réseaux autorisés maîtres ou qu'elles se trouvent dans le même sous-réseau que les nœuds du cluster. kubectl doit être configuré pour utiliser le point de terminaison privé.

Depuis les adresses IP publiques : les machines avec des adresses IP publiques ne peuvent utiliser kubectl pour communiquer avec le point de terminaison public que si leurs adresses IP publiques sont incluses dans la liste des réseaux autorisés. Cela inclut les ordinateurs extérieurs à Google Cloud et les VM Google Cloud avec des adresses IP externes.

Depuis les nœuds : se sert toujours du point de terminaison privé. kubectl doit être configuré pour utiliser le point de terminaison privé.

À partir d'autres VM du réseau VPC du cluster : les autres VM peuvent utiliser kubectl pour communiquer avec le point de terminaison privé à la condition qu'elles se trouvent dans la même région que le cluster. kubectl doit être configuré pour utiliser le point de terminaison privé.

À partir d'adresses IP publiques : toute machine disposant d'une adresse IP publique peut utiliser kubectl pour communiquer avec le point de terminaison public. Cela inclut les ordinateurs extérieurs à Google Cloud et des VM Google Cloud avec des adresses IP externes.

Étape suivante