Configurer des plages d'adresses IP publiques utilisées en mode privé

Cette page explique comment utiliser des plages d'adresses IP publiques utilisées en mode privé dans votre environnement d'adresse IP privée. Pour obtenir des informations générales sur la création d'environnements IP privés, consultez la page Configurer un environnement Cloud Composer d'adresse IP privée.

À propos des plages d'adresses IP publiques utilisées en mode privé dans Cloud Composer

Google Kubernetes Engine nécessite de nombreuses adresses IP pour ses ressources: chaque nœud, pod et service doit posséder une adresse IP unique. Cela peut entraîner une situation dans laquelle les plages d'adresses IP privées existantes ne peuvent pas accueillir suffisamment d'adresses IP.

Les environnements Cloud Composer peuvent utiliser certaines plages d'adresses IP d'espace d'adressage non-RFC 1918 sans configuration supplémentaire.

Si vous souhaitez utiliser plus d'adresses IP, votre environnement peut utiliser en mode privé certaines plages d'adresses IP publiques en tant que plages d'adresses IP de sous-réseau internes pour les pods et les services. Ces plages sont appelées plages d'adresses IP publiques utilisées en mode privé (PUPI).

Vous pouvez utiliser n'importe quelle adresse IP publique en mode privé, à l'exception de certaines plages restreintes.

Avant de commencer

  • Vous ne pouvez spécifier des plages d'adresses IP publiques que lorsque vous créez un environnement. Il n'est pas possible de modifier les plages d'adresses IP d'un environnement existant.

  • Votre environnement doit être un environnement d'adresse IP privée.

  • Vous pouvez créer des environnements avec des plages PUPI uniquement à l'aide de gcloud, Terraform et l'API REST.

  • Seuls les pods et les services GKE peuvent utiliser des plages d'adresses IP publiques. Les autres composants d'environnement, tels que Cloud SQL, le serveur Web et le plan de contrôle GKE, ne peuvent pas utiliser de plages d'adresses IP publiques dans un environnement d'adresse IP privée.

  • Le cluster GKE est créé avec la configuration SNAT par défaut désactivée.

Activer les plages PUPI lors de la création d'un environnement

gcloud

Pour créer un environnement avec des plages PUPI, utilisez l'argument --enable-privately-used-public-ips lorsque vous créez un environnement d'adresse IP privée. Spécifiez ensuite des plages d'adresses IP publiques pour les pods et les services.

Plages de sous-réseaux gérées par GKE

Pour créer des plages de sous-réseaux gérées par GKE:

gcloud beta composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --enable-ip-alias \
    --enable-private-environment \
    --enable-privately-used-public-ips \
    --cluster-ipv4-cidr POD_IP_RANGE \
    --services-ipv4-cidr SERVICES_IP_RANGE \

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région Compute Engine dans laquelle se trouve l'environnement.
  • POD_IP_RANGE par une plage d'adresses IP au format CIDR. Cette plage est ajoutée en tant que plage d'adresses IP secondaire au sous-réseau de votre environnement et est utilisée comme plage d'adresses IP pour les pods.
  • SERVICES_IP_RANGE par une plage d'adresses IP au format CIDR. Il s'agit de la plage d'adresses IP secondaire utilisée par les services du sous-réseau de votre environnement.

Exemple :

gcloud beta composer environments create example-environment \
    --location us-central1 \
    --enable-ip-alias \
    --enable-private-environment \
    --enable-privately-used-public-ips \
    --cluster-ipv4-cidr 7.32.0.0/16 \
    --services-ipv4-cidr 7.33.0.0/16

Plages de sous-réseaux gérées par l'utilisateur

Pour créer des plages gérées par l'utilisateur, procédez comme suit:

gcloud beta composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --enable-ip-alias \
    --enable-private-environment \
    --enable-privately-used-public-ips \
    --cluster-secondary-range-name POD_IP_RANGE_NAME \
    --services-secondary-range-name SERVICES_IP_RANGE_NAME

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région Compute Engine dans laquelle se trouve l'environnement.
  • POD_IP_RANGE_NAME par le nom d'une plage d'adresses IP secondaire existante dans le sous-réseau spécifié. Cette plage est utilisée par les pods.
  • SERVICES_IP_RANGE_NAME par le nom d'une plage d'adresses IP secondaire existante dans le sous-réseau spécifié. Cette plage est utilisée par les services.

Exemple :

gcloud beta composer environments create example-environment \
    --location us-central1 \
    --enable-ip-alias \
    --enable-private-environment \
    --enable-privately-used-public-ips \
    --cluster-secondary-range-name "public-1" \
    --services-secondary-range-name "public-2"

API

Envoyez une requête API environments.create. Dans la ressource Environnement, spécifiez les paramètres de configuration d'un environnement avec des plages PUPI.

Plages de sous-réseaux gérées par GKE

Pour créer des plages de sous-réseaux gérées par GKE:

// POST https://composer.googleapis.com/v1beta1/{parent=projects/*/locations/*}/environments

{
  "name": "ENVIRONMENT_NAME",
  "config": {
    "nodeConfig": {
      "ipAllocationPolicy": {
        "useIpAliases": true,
        "clusterIpv4CidrBlock":"POD_IP_RANGE"
        "servicesIpv4CidrBlock":"SERVICES_IP_RANGE"
      }
    },
    "privateEnvironmentConfig": {
      "enablePrivateEnvironment": true,
      "enablePrivatelyUsedPublicIps": true,
    },
  }
}

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • POD_IP_RANGE par une plage d'adresses IP au format CIDR. Cette plage est ajoutée en tant que plage d'adresses IP secondaire au sous-réseau de votre environnement et est utilisée comme plage d'adresses IP pour les pods.
  • SERVICES_IP_RANGE par une plage d'adresses IP au format CIDR. Il s'agit de la plage d'adresses IP secondaire utilisée par les services du sous-réseau de votre environnement.

Exemple :

// POST https://composer.googleapis.com/v1beta1/{parent=projects/*/locations/*}/environments

{
  "name": "example-environment",
  "config": {
    "nodeConfig": {
      "ipAllocationPolicy": {
        "useIpAliases": true,
        "clusterIpv4CidrBlock":"7.32.0.0/16"
        "servicesIpv4CidrBlock":"7.33.0.0/16"
      }
    },
    "privateEnvironmentConfig": {
      "enablePrivateEnvironment": true,
      "enablePrivatelyUsedPublicIps": true,
    },
  }
}

Plages de sous-réseaux gérées par l'utilisateur

Pour créer des plages gérées par l'utilisateur, procédez comme suit:

// POST https://composer.googleapis.com/v1beta1/{parent=projects/*/locations/*}/environments

{
  "name": "ENVIRONMENT_NAME",
  "config": {
    "nodeConfig": {
      "ipAllocationPolicy": {
        "useIpAliases": true,
        "clusterSecondaryRangeName":"POD_IP_RANGE"
        "servicesSecondaryRangeName": "SERVICES_IP_RANGE",
      }
    },
    "privateEnvironmentConfig": {
      "enablePrivateEnvironment": true,
      "enablePrivatelyUsedPublicIps": true,
    },
  }
}

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • POD_IP_RANGE_NAME par le nom d'une plage d'adresses IP secondaire existante dans le sous-réseau spécifié. Cette plage est utilisée par les pods.
  • SERVICES_IP_RANGE_NAME par le nom d'une plage d'adresses IP secondaire existante dans le sous-réseau spécifié. Cette plage est utilisée par les services.

Exemple :

// POST https://composer.googleapis.com/v1beta1/{parent=projects/*/locations/*}/environments

{
  "name": "example-environment",
  "config": {
    "nodeConfig": {
      "ipAllocationPolicy": {
        "useIpAliases": true,
        "clusterSecondaryRangeName":"public-1"
        "servicesSecondaryRangeName": "public-2",
      }
    },
    "privateEnvironmentConfig": {
      "enablePrivateEnvironment": true,
      "enablePrivatelyUsedPublicIps": true,
    },
  }
}

Étape suivante