Configurazione di intervalli IP pubblici utilizzati privatamente

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

In questa pagina viene spiegato come utilizzare di IP pubblici utilizzati privatamente nel tuo Ambiente IP privato. Per informazioni generali sulla creazione di ambienti IP privati, consulta Configura un ambiente IP privato.

Informazioni sugli intervalli IP pubblici utilizzati privatamente in Cloud Composer

Google Kubernetes Engine richiede molti indirizzi IP per le sue risorse: ogni nodo, pod e servizio devono avere un indirizzo IP univoco. Ciò può portare a una situazione in cui gli intervalli IP privati esistenti non possono contenere un numero sufficiente di indirizzi IP.

Gli ambienti Cloud Composer possono utilizzare alcuni intervalli IP spazio di indirizzi non RFC 1918 senza ulteriori configurazione.

Se vuoi utilizzare più indirizzi IP, il tuo ambiente può utilizzare privatamente determinati intervalli di indirizzi IP pubblici come intervalli di indirizzi IP interni, subnet per di pod e servizi. Questi intervalli sono chiamati intervalli di IP pubblici utilizzati privatamente (PUPI).

Puoi utilizzare in privato qualsiasi indirizzo IP pubblico, ad eccezione di alcuni intervalli con restrizioni.

Prima di iniziare

  • Puoi specificare intervalli IP pubblici solo quando crei un nuovo ambiente. it non è possibile modificare gli intervalli IP di un ambiente esistente.

  • Il tuo ambiente deve essere un IP privato completamente gestito di Google Cloud.

  • Puoi creare ambienti con intervalli PUPI solo utilizzando gcloud, Terraform e API REST.

  • Solo i pod e i servizi GKE possono utilizzare intervalli IP pubblici. Altro di ambiente come Cloud SQL, server web Piano di controllo di GKE non possono utilizzare intervalli IP pubblici in un ambiente IP privato.

  • il cluster GKE viene creato SNAT predefinita disabilitata.

Abilita gli intervalli PUPI quando crei un ambiente

gcloud

Per creare un ambiente con intervalli PUPI, utilizza la classe --enable-privately-used-public-ips argomento quando crei un IP privato completamente gestito di Google Cloud. Poi specifica gli intervalli IP pubblici per pod e servizi.

Intervalli di subnet gestiti da GKE

Per creare intervalli di subnet gestite da GKE:

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.8.6-airflow-2.7.3 \
    --enable-private-environment \
    --enable-privately-used-public-ips \
    --cluster-ipv4-cidr POD_IP_RANGE \
    --services-ipv4-cidr SERVICES_IP_RANGE

Sostituisci:

  • ENVIRONMENT_NAME con il nome dell'ambiente.
  • LOCATION con la regione in cui si trova l'ambiente.
  • POD_IP_RANGE con un intervallo di indirizzi IP nella notazione CIDR. Questo intervallo viene aggiunto come intervallo di indirizzi IP secondari alla subnet del tuo ambiente e viene utilizzato come intervallo di indirizzi IP per i pod.
  • SERVICES_IP_RANGE con un intervallo di indirizzi IP nella notazione CIDR. Questo è l'intervallo di indirizzi IP secondari per i servizi del subnet del tuo ambiente.

Esempio:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.8.6-airflow-2.7.3 \
    --enable-private-environment \
    --enable-privately-used-public-ips \
    --cluster-ipv4-cidr 10.3.192.0/20 \
    --services-ipv4-cidr 172.16.194.0/23

Intervalli di subnet gestite dall'utente

Per creare intervalli gestiti dall'utente:

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.8.6-airflow-2.7.3 \
    --enable-private-environment \
    --enable-privately-used-public-ips \
    --cluster-secondary-range-name POD_IP_RANGE_NAME \
    --services-secondary-range-name SERVICES_IP_RANGE_NAME

Sostituisci:

  • ENVIRONMENT_NAME con il nome dell'ambiente.
  • LOCATION con la regione in cui si trova l'ambiente.
  • POD_IP_RANGE_NAME con il nome di un indirizzo IP secondario esistente nella subnet specificata. Questo intervallo è utilizzato dai pod.
  • SERVICES_IP_RANGE_NAME con il nome di un indirizzo IP secondario esistente nella subnet specificata. Questo intervallo è utilizzato dai servizi.

Esempio:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.8.6-airflow-2.7.3 \
    --enable-private-environment \
    --enable-privately-used-public-ips \
    --cluster-secondary-range-name "public-1" \
    --services-secondary-range-name "public-2"

API

Costruire una richiesta API environments.create. Nella risorsa Ambiente, specifica la configurazione. per un ambiente con intervalli PUPI.

Intervalli di subnet gestiti da GKE

Per creare intervalli di subnet gestiti da GKE:

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

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

Sostituisci:

  • ENVIRONMENT_NAME con il nome dell'ambiente.
  • POD_IP_RANGE con un intervallo di indirizzi IP nella notazione CIDR. Questo intervallo viene aggiunto come intervallo di indirizzi IP secondari alla subnet del tuo ambiente e viene utilizzato come intervallo di indirizzi IP per i pod.
  • SERVICES_IP_RANGE con un intervallo di indirizzi IP nella notazione CIDR. Questo è l'intervallo di indirizzi IP secondari per i servizi in alla subnet del tuo ambiente.

Esempio:

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

{
  "name": "example-environment",
  "config": {
    "nodeConfig": {
      "ipAllocationPolicy": {
        "clusterIpv4CidrBlock":"10.3.192.0/20",
        "servicesIpv4CidrBlock":"172.16.194.0/23"
      }
    },
    "privateEnvironmentConfig": {
      "enablePrivateEnvironment": true,
      "enablePrivatelyUsedPublicIps": true
    }
  }
}

Intervalli di subnet gestite dall'utente

Per creare intervalli gestiti dall'utente:

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

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

Sostituisci:

  • ENVIRONMENT_NAME con il nome dell'ambiente.
  • POD_IP_RANGE_NAME con il nome di un indirizzo IP secondario esistente nella subnet specificata. Questo intervallo è utilizzato dai pod.
  • SERVICES_IP_RANGE_NAME con il nome di un indirizzo IP secondario esistente nella subnet specificata. Questo intervallo è utilizzato dai servizi.

Esempio:

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

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

Terraform

Quando crei un ambiente, il enable_privately_used_public_ips nel blocco private_environment_config consente l'uso di PUPI intervalli di tempo. Devi anche specificare gli intervalli PUPI per pod e servizi.

Intervalli di subnet gestiti da GKE

Per creare intervalli di subnet gestite da GKE:

resource "google_composer_environment" "example_environment" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    node_config {

      ip_allocation_policy = [{
        
        cluster_ipv4_cidr_block = "POD_IP_RANGE"
        services_ipv4_cidr_block = "SERVICES_IP_RANGE"
        cluster_secondary_range_name = null
        services_secondary_range_name = null
      }]
    }

    private_environment_config {
      enable_privately_used_public_ips = true
      // Other private ip environment parameters
    }

  }
}

Sostituisci:

  • ENVIRONMENT_NAME con il nome dell'ambiente.
  • LOCATION con la regione in cui si trova l'ambiente.
  • POD_IP_RANGE con un intervallo di indirizzi IP nella notazione CIDR. Questo intervallo viene aggiunto come intervallo di indirizzi IP secondari alla subnet del tuo ambiente e viene utilizzato come intervallo di indirizzi IP per i pod.
  • SERVICES_IP_RANGE con un intervallo di indirizzi IP nella notazione CIDR. Questo è l'intervallo di indirizzi IP secondari per i servizi del subnet del tuo ambiente.

Esempio:

resource "google_composer_environment" "example_environment" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    node_config {

      // Specify your network and subnetwork
      network    = google_compute_network.example_network.id
      subnetwork = google_compute_subnetwork.example_subnet.id

      ip_allocation_policy = [{
        
        // Specify PUPI addresses
        cluster_ipv4_cidr_block = "10.3.192.0/20"
        services_ipv4_cidr_block = "172.16.194.0/23"
        cluster_secondary_range_name = null
        services_secondary_range_name = null
      }]
    }

    private_environment_config {
      enable_privately_used_public_ips = true
      // Other private environment parameters
    }

  }
}

Intervalli di subnet gestite dall'utente

Per creare intervalli gestiti dall'utente:

resource "google_composer_environment" "example_environment" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    node_config {

      ip_allocation_policy = [{
        
        cluster_ipv4_cidr_block = null
        services_ipv4_cidr_block = null
        cluster_secondary_range_name = POD_IP_RANGE_NAME
        services_secondary_range_name = SERVICES_IP_RANGE_NAME
      }]
    }

    private_environment_config {
      enable_privately_used_public_ips = true
      // Other private ip environment parameters
    }

  }

Sostituisci:

  • ENVIRONMENT_NAME con il nome dell'ambiente.
  • LOCATION con la regione in cui si trova l'ambiente.
  • POD_IP_RANGE_NAME con il nome di un indirizzo IP secondario esistente nella subnet specificata. Questo intervallo è utilizzato dai pod.
  • SERVICES_IP_RANGE_NAME con il nome di un indirizzo IP secondario esistente nella subnet specificata. Questo intervallo è utilizzato dai servizi.

Esempio:

resource "google_composer_environment" "example_environment" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    node_config {

      // Specify your network and subnetwork
      network    = google_compute_network.example_network.id
      subnetwork = google_compute_subnetwork.example_subnet.id

      ip_allocation_policy = [{
        
        cluster_ipv4_cidr_block = null
        services_ipv4_cidr_block = null
        // Specify existing ranges
        cluster_secondary_range_name = "public-1"
        services_secondary_range_name = "public-2"
      }]
    }
    private_environment_config {
      enable_privately_used_public_ips = true
      // Other private environment parameters
    }

  }
}

Passaggi successivi