Configurar rangos de IP públicas que se usan de forma privada

En esta página, se explica cómo usar rangos de IP públicas de uso privado en tu entorno de IP privada. Para obtener información general sobre la creación de entornos de IP privados, consulta Configura un entorno de IP privada de Cloud Composer.

Información sobre los rangos de IP públicos de uso privado en Cloud Composer

Google Kubernetes Engine requiere muchas direcciones IP para sus recursos: cada nodo, pod y servicio debe tener una dirección IP única. Esto puede provocar una situación en la que los rangos de IP privados existentes no admitan suficientes direcciones IP.

Los entornos de Cloud Composer pueden usar algunos rangos de IP de espacio de direcciones que no sea RFC 1918 sin configuración adicional.

Si quieres usar más direcciones IP, el entorno puede usar de forma privada determinados rangos de direcciones IP públicas como rangos de direcciones IP de subred internos para pods y servicios. Estos rangos se denominan rangos de IP pública de uso privado (PUPI).

Puedes usar cualquier dirección IP pública de forma privada, excepto ciertos rangos restringidos.

Antes de comenzar

  • Solo puedes especificar rangos de IP públicas cuando creas un entorno nuevo. No es posible cambiar rangos de IP de un entorno existente.

  • Tu entorno debe ser un entorno de IP privada.

  • Solo puedes crear entornos con rangos PUPI mediante gcloud, Terraform y la API de REST.

  • Solo los pods y los servicios de GKE pueden usar rangos de IP públicas. Otros componentes del entorno, como Cloud SQL, el servidor web y el plano de control de GKE, no pueden usar rangos de IP públicas en un entorno de IP privada.

  • El clúster de GKE se crea con la SNAT predeterminada inhabilitada.

Habilita rangos de PUPI cuando crees un entorno

gcloud

Para crear un entorno con rangos de PUPI, usa el argumento --enable-privately-used-public-ips cuando crees un entorno de IP privada. Luego, especifica los rangos de IP públicos para los Pods y los servicios.

Rangos de subredes administrados por GKE

Para crear rangos de subredes administrados por GKE, sigue estos pasos:

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 \

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno
  • LOCATION por la región de Compute Engine en la que se encuentra el entorno.
  • POD_IP_RANGE por un rango de direcciones IP en la notación CIDR Este rango se agrega como un rango de direcciones IP secundario a la subred de tu entorno y se usa como el rango de direcciones IP para los pods.
  • SERVICES_IP_RANGE por un rango de direcciones IP en la notación CIDR Este rango es el rango de direcciones IP secundario para los servicios en la subred de tu entorno.

Ejemplo:

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

Rangos de subredes administrados por el usuario

Para crear rangos administrados por el usuario, haz lo siguiente:

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

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno
  • LOCATION por la región de Compute Engine en la que se encuentra el entorno.
  • POD_IP_RANGE_NAME por el nombre de un rango de direcciones IP secundario existente en la subred especificada. Los pods usan este rango.
  • SERVICES_IP_RANGE_NAME por el nombre de un rango de direcciones IP secundario existente en la subred especificada. Los servicios usan este rango.

Ejemplo:

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

Crea una solicitud a la API environments.create. En el recurso Entorno, especifica los parámetros de configuración para un entorno con rangos PUPI.

Rangos de subredes administrados por GKE

Para crear rangos de subredes administrados por GKE, sigue estos pasos:

// 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,
    },
  }
}

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno
  • POD_IP_RANGE por un rango de direcciones IP en la notación CIDR Este rango se agrega como un rango de direcciones IP secundario a la subred de tu entorno y se usa como el rango de direcciones IP para los pods.
  • SERVICES_IP_RANGE por un rango de direcciones IP en la notación CIDR Este rango es el rango de direcciones IP secundario para los servicios en la subred de tu entorno.

Ejemplo:

// 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,
    },
  }
}

Rangos de subredes administrados por el usuario

Para crear rangos administrados por el usuario, haz lo siguiente:

// 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,
    },
  }
}

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno
  • POD_IP_RANGE_NAME por el nombre de un rango de direcciones IP secundario existente en la subred especificada. Los pods usan este rango.
  • SERVICES_IP_RANGE_NAME por el nombre de un rango de direcciones IP secundario existente en la subred especificada. Los servicios usan este rango.

Ejemplo:

// 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,
    },
  }
}

¿Qué sigue?