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

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

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

    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ès via DNS pour activer les points de terminaison basés sur DNS du plan de contrôle.
    2. 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

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

  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 pour le plan de contrôle afin de 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 Google 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 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'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 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'indicateur enable-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

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

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

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

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

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

Console

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

    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ès via le DNS.
    2. Cochez la case Accès à 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 peuvent accéder au plan de contrôle via l'adresse IP interne. Google Cloud

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

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

    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ès via le DNS.
    2. Cochez la case Accès à 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é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.

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

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

    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'y accéder. Vous pouvez modifier ces paramètres à tout moment.
    2. 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.
  6. 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.

  7. Cliquez sur Créer.

Mettre à jour un cluster existant

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

    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 Edit Private Nodes (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'y accéder. Vous pouvez modifier ces paramètres à tout moment.
    2. 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.
  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 cet indicateur, GKE crée un sous-réseau qui utilise les valeurs que vous avez définies dans master-ipv4-cidr et utilise ce sous-réseau 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 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:

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

    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. Configurez la case à cocher 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é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.
  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 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 le nodeSelector 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:

  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'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 Google Cloud Console.

    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 de la console Google 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 de la console Google 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, consultez la documentation sur le pool de nœuds Windows.

Étape suivante