Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Auf dieser Seite wird erläutert, wie Sie privat verwendete öffentliche IP-Bereiche in Ihrer privaten IP-Umgebung verwenden. Allgemeine Informationen zum Erstellen privater IP-Umgebungen finden Sie unter Private IP-Umgebung konfigurieren.
Privat genutzte öffentliche IP-Bereiche in Cloud Composer
Google Kubernetes Engine benötigt viele IP-Adressen für seine Ressourcen: Jeder Knoten, Pod und Dienst muss eine eindeutige IP-Adresse haben. Dies kann dazu führen, dass vorhandene private IP-Bereiche nicht genügend IP-Adressen aufnehmen können.
Cloud Composer-Umgebungen können einige IP-Bereiche aus dem Adressbereich außerhalb RFC 1918 ohne zusätzliche Konfiguration verwenden.
Wenn Sie mehr IP-Adressen verwenden möchten, kann Ihre Umgebung bestimmte öffentliche IP-Adressbereiche privat als interne Subnetz-IP-Adressbereiche für Pods und Dienste verwenden. Solche Bereiche werden privat verwendete öffentliche IP-Bereiche (PUPI) genannt.
Sie können jede öffentliche IP-Adresse privat verwenden, mit Ausnahme bestimmter eingeschränkter Bereiche.
Hinweis
Sie können öffentliche IP-Bereiche nur angeben, wenn Sie eine neue Umgebung erstellen. Es ist nicht möglich, die IP-Bereiche einer vorhandenen Umgebung zu ändern.
Die Umgebung muss eine private IP-Umgebung sein.
Umgebungen mit PUPI-Bereichen können Sie nur mit
gcloud
, Terraform und der REST API erstellen.Nur GKE-Pods und -Dienste können öffentliche IP-Bereiche verwenden. Andere Umgebungskomponenten wie Cloud SQL, Webserver und GKE-Steuerungsebene können in einer privaten IP-Umgebung keine öffentlichen IP-Bereiche verwenden.
Der GKE-Cluster wird mit deaktiviertem Standard-SNAT erstellt.
PUPI-Bereiche beim Erstellen einer Umgebung aktivieren
gcloud
Verwenden Sie zum Erstellen einer Umgebung mit PUPI-Bereichen das Argument --enable-privately-used-public-ips
, wenn Sie eine private IP-Umgebung erstellen. Geben Sie dann öffentliche IP-Bereiche für Pods und Dienste an.
Von GKE verwaltete Subnetzbereiche
So erstellen Sie Subnetzbereiche, die von GKE verwaltet werden:
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-1.20.12-airflow-1.10.15 \
--enable-ip-alias \
--enable-private-environment \
--enable-privately-used-public-ips \
--cluster-ipv4-cidr POD_IP_RANGE \
--services-ipv4-cidr SERVICES_IP_RANGE
Ersetzen Sie:
ENVIRONMENT_NAME
durch den Namen der Umgebung.LOCATION
durch die Region, in der sich die Umgebung befindet.POD_IP_RANGE
durch einen IP-Adressbereich in der CIDR-Notation. Dieser Bereich wird als sekundärer IP-Adressbereich dem Subnetzwerk Ihrer Umgebung hinzugefügt und als IP-Adressbereich für Pods verwendet.SERVICES_IP_RANGE
durch einen IP-Adressbereich in der CIDR-Notation. Dieser Bereich ist der sekundäre IP-Adressbereich für Dienste im Subnetzwerk Ihrer Umgebung.
Beispiel:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15 \
--enable-ip-alias \
--enable-private-environment \
--enable-privately-used-public-ips \
--cluster-ipv4-cidr 10.3.192.0/20 \
--services-ipv4-cidr 172.16.194.0/23
Von Nutzern verwaltete Subnetzbereiche
So erstellen Sie nutzerverwaltete Bereiche:
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-1.20.12-airflow-1.10.15 \
--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
Ersetzen Sie:
ENVIRONMENT_NAME
durch den Namen der Umgebung.LOCATION
durch die Region, in der sich die Umgebung befindet.POD_IP_RANGE_NAME
durch den Namen eines vorhandenen sekundären IP-Adressbereichs im angegebenen Subnetzwerk. Dieser Bereich wird von Pods verwendet.SERVICES_IP_RANGE_NAME
durch den Namen eines vorhandenen sekundären IP-Adressbereichs im angegebenen Subnetzwerk. Dieser Bereich wird von Diensten verwendet.
Beispiel:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15 \
--enable-ip-alias \
--enable-private-environment \
--enable-privately-used-public-ips \
--cluster-secondary-range-name "public-1" \
--services-secondary-range-name "public-2"
API
Erstellen Sie eine API-Anfrage environments.create
. Geben Sie in der Ressource Umgebung die Konfigurationsparameter für eine Umgebung mit PUPI-Bereichen an.
Von GKE verwaltete Subnetzbereiche
So erstellen Sie Subnetzbereiche, die von GKE verwaltet werden:
// POST https://composer.googleapis.com/v1/{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
}
}
}
Ersetzen Sie:
ENVIRONMENT_NAME
durch den Namen der Umgebung.POD_IP_RANGE
durch einen IP-Adressbereich in der CIDR-Notation. Dieser Bereich wird als sekundärer IP-Adressbereich dem Subnetzwerk Ihrer Umgebung hinzugefügt und als IP-Adressbereich für Pods verwendet.SERVICES_IP_RANGE
durch einen IP-Adressbereich in der CIDR-Notation. Dieser Bereich ist der sekundäre IP-Adressbereich für Dienste im Subnetzwerk Ihrer Umgebung.
Beispiel:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "example-environment",
"config": {
"nodeConfig": {
"ipAllocationPolicy": {
"useIpAliases": true,
"clusterIpv4CidrBlock":"10.3.192.0/20",
"servicesIpv4CidrBlock":"172.16.194.0/23"
}
},
"privateEnvironmentConfig": {
"enablePrivateEnvironment": true,
"enablePrivatelyUsedPublicIps": true
}
}
}
Von Nutzern verwaltete Subnetzbereiche
So erstellen Sie nutzerverwaltete Bereiche:
// POST https://composer.googleapis.com/v1/{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
}
}
}
Ersetzen Sie:
ENVIRONMENT_NAME
durch den Namen der Umgebung.POD_IP_RANGE_NAME
durch den Namen eines vorhandenen sekundären IP-Adressbereichs im angegebenen Subnetzwerk. Dieser Bereich wird von Pods verwendet.SERVICES_IP_RANGE_NAME
durch den Namen eines vorhandenen sekundären IP-Adressbereichs im angegebenen Subnetzwerk. Dieser Bereich wird von Diensten verwendet.
Beispiel:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "example-environment",
"config": {
"nodeConfig": {
"ipAllocationPolicy": {
"useIpAliases": true,
"clusterSecondaryRangeName":"public-1",
"servicesSecondaryRangeName": "public-2"
}
},
"privateEnvironmentConfig": {
"enablePrivateEnvironment": true,
"enablePrivatelyUsedPublicIps": true
}
}
}
Terraform
Wenn Sie eine Umgebung erstellen, ermöglicht das Feld enable_privately_used_public_ips
im Block private_environment_config
die Verwendung von PUPI-Bereichen. Außerdem müssen Sie PUPI-Bereiche für Pods und Dienste angeben.
Von GKE verwaltete Subnetzbereiche
So erstellen Sie Subnetzbereiche, die von GKE verwaltet werden:
resource "google_composer_environment" "example_environment" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
node_config {
ip_allocation_policy = [{
use_ip_aliases = true
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
}
}
}
Ersetzen Sie:
ENVIRONMENT_NAME
durch den Namen der Umgebung.LOCATION
durch die Region, in der sich die Umgebung befindet.POD_IP_RANGE
durch einen IP-Adressbereich in der CIDR-Notation. Dieser Bereich wird als sekundärer IP-Adressbereich dem Subnetzwerk Ihrer Umgebung hinzugefügt und als IP-Adressbereich für Pods verwendet.SERVICES_IP_RANGE
durch einen IP-Adressbereich in der CIDR-Notation. Dieser Bereich ist der sekundäre IP-Adressbereich für Dienste im Subnetzwerk Ihrer Umgebung.
Beispiel:
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 = [{
use_ip_aliases = true
// 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
}
}
}
Von Nutzern verwaltete Subnetzbereiche
So erstellen Sie nutzerverwaltete Bereiche:
resource "google_composer_environment" "example_environment" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
node_config {
ip_allocation_policy = [{
use_ip_aliases = true
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
}
}
Ersetzen Sie:
ENVIRONMENT_NAME
durch den Namen der Umgebung.LOCATION
durch die Region, in der sich die Umgebung befindet.POD_IP_RANGE_NAME
durch den Namen eines vorhandenen sekundären IP-Adressbereichs im angegebenen Subnetzwerk. Dieser Bereich wird von Pods verwendet.SERVICES_IP_RANGE_NAME
durch den Namen eines vorhandenen sekundären IP-Adressbereichs im angegebenen Subnetzwerk. Dieser Bereich wird von Diensten verwendet.
Beispiel:
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 = [{
use_ip_aliases = true
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
}
}
}