Personnaliser l'isolation réseau dans GKE


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.

Bonne pratique:

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 :

  1. Qui peut accéder au plan de contrôle et comment est-il exposé ?
  2. 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 :

  1. Accédez à la page Google Kubernetes Engine dans la console Trusted Cloud .

    Accéder à Google Kubernetes Engine

  2. Cliquez sur Créer.

  3. Configurez les attributs de votre cluster en fonction des besoins de votre projet.

  4. Dans le menu de navigation, cliquez sur Mise en réseau.

  5. Sous Accès au plan de contrôle, configurez les points de terminaison du plan de contrôle :

    1. 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.
    2. 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'indicateur no-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

  1. Sous Accès au plan de contrôle, sélectionnez Activer les réseaux autorisés.
  2. Cliquez sur Ajouter un réseau autorisé.
  3. Saisissez un Nom pour le réseau.
  4. Pour Réseau, saisissez une plage CIDR à laquelle vous souhaitez accorder l'accès au plan de contrôle du cluster.
  5. Cliquez sur OK.
  6. 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 :

  1. Développez la section Afficher les règles de pare-feu basées sur les adresses IP.
  2. 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.

  3. 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.

  4. 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.

  5. 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'indicateur enable-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'indicateur enable-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

  1. Accédez à la page Google Kubernetes Engine dans la console Trusted Cloud .

    Accéder à Google Kubernetes Engine

  2. Dans la liste des clusters, cliquez sur le nom du cluster.

  3. Dans l'onglet Détails du cluster, sous Mise en réseau du plan de contrôle, cliquez sur .

  4. 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.

  5. Vérifiez la configuration de votre plan de contrôle.

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'indicateur no-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'indicateur enable-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'indicateur enable-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

  1. Accédez à la page Google Kubernetes Engine dans la console Trusted Cloud .

    Accéder à Google Kubernetes Engine

  2. Dans la liste des clusters, cliquez sur le nom du cluster.

  3. 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 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 :

Pour créer ce cluster, utilisez la Google Cloud CLI ou la console Trusted Cloud .

Console

  1. Accédez à la page Google Kubernetes Engine dans la console Trusted Cloud .

    Accéder à Google Kubernetes Engine

  2. Cliquez sur Créer.

  3. Configurez votre cluster en fonction de vos besoins.

  4. Dans le menu de navigation, cliquez sur Mise en réseau.

  5. Sous Accès au plan de contrôle, configurez les points de terminaison du plan de contrôle :

    1. Cochez la case Accéder à l'aide du DNS.
    2. Cochez la case Accéder à l'aide d'adresses IPV4.
  6. Sélectionnez Activer les réseaux autorisés.

  7. Cliquez sur Ajouter un réseau autorisé.

  8. Saisissez un Nom pour le réseau.

  9. Pour Réseau, saisissez une plage CIDR à laquelle vous souhaitez accorder l'accès au plan de contrôle du cluster.

  10. Cliquez sur OK.

  11. Ajoutez d'autres réseaux autorisés si nécessaire.

  12. Développez la section Afficher les règles de pare-feu basées sur les adresses IP.

  13. 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.

  14. 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

  1. Accédez à la page Google Kubernetes Engine dans la console Trusted Cloud .

    Accéder à Google Kubernetes Engine

  2. Cliquez sur Créer.

  3. Configurez votre cluster en fonction de vos besoins.

  4. Dans le menu de navigation, cliquez sur Mise en réseau.

  5. Sous Accès au plan de contrôle, configurez les points de terminaison du plan de contrôle :

    1. Cochez la case Accéder à l'aide du DNS.
    2. Cochez la case Accéder à l'aide d'adresses IPV4.
  6. Développez la section Afficher les règles de pare-feu basées sur les adresses IP.

  7. 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.

  8. Sous Accès au plan de contrôle, sélectionnez Activer les réseaux autorisés.

  9. 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

  1. Accédez à la page Google Kubernetes Engine dans la console Trusted Cloud .

    Accéder à Google Kubernetes Engine

  2. Cliquez sur Créer, puis sur Configurer dans la section "Standard" ou "Autopilot".

  3. Configurez votre cluster en fonction de vos besoins.

  4. Dans le menu de navigation, cliquez sur Mise en réseau.

  5. Dans la section Mise en réseau du cluster, procédez comme suit en fonction de votre cas d'utilisation :

    1. 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.
    2. 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.
  6. 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.

  7. Cliquez sur Créer.

Mettre à jour un cluster existant

  1. Accédez à la page Google Kubernetes Engine dans la console Trusted Cloud .

    Accéder à Google Kubernetes Engine

  2. Dans la liste des clusters, cliquez sur le nom du cluster.

  3. Dans Nœuds privés, sous l'onglet Configuration par défaut des nouveaux pools de nœuds, cliquez sur Modifier les nœuds privés.

  4. Dans la boîte de dialogue Modifier les nœuds privés, effectuez l'une des opérations suivantes :

    1. 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.
    2. 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.
  5. 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 utilisez enable-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 dans master-ipv4-cidr et l'utilise pour provisionner l'adresse IP interne du plan de contrôle.
  • 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 :

  1. Accédez à la page Google Kubernetes Engine dans la console Trusted Cloud .

    Accéder à Google Kubernetes Engine

  2. Sur la page Détails du cluster, cliquez sur le nom du cluster que vous souhaitez modifier.

  3. Cliquez sur Ajouter un pool de nœuds.

  4. Cochez la case Activer les nœuds privés en fonction de votre cas d'utilisation :

    1. Sélectionnez Activer les nœuds privés pour provisionner des nœuds avec uniquement des adresses IP internes (nœuds privés).
    2. 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.
  5. Configurez votre nouveau pool de nœuds.

  6. 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 :

  1. 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.

  2. 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 :

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

  1. Accédez à la page Google Kubernetes Engine dans la console Trusted Cloud .

    Accéder à Google Kubernetes Engine

  2. 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

  1. Accédez à la page Stratégies de pare-feu dans la console Trusted Cloud .

    Accéder aux stratégies de pare-feu

  2. 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

  1. Accédez à la page Stratégies de pare-feu dans la console Trusted Cloud .

    Accéder aux stratégies de pare-feu

  2. Cliquez sur Créer une règle de pare-feu.

  3. Dans la section Nom, saisissez le nom pour la règle de pare-feu.

  4. Dans la liste Réseau, sélectionnez le réseau approprié.

  5. Dans la section Sens du trafic, cliquez sur Entrée.

  6. Dans Action en cas de correspondance, cliquez sur Autoriser.

  7. Dans la liste Cibles, sélectionnez Tags cibles spécifiés.

  8. Dans le champ Tags cibles, saisissez la valeur cible que vous avez notée précédemment.

  9. Dans la liste Filtre source, sélectionnez Plages IPv4.

  10. Sous Plages d'adresses IPv4 sources, saisissez le bloc CIDR du plan de contrôle du cluster.

  11. 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.

  12. 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 ou udp.
  • 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.

Étapes suivantes