Globales Subnetz für externes Load-Balancing erstellen

Auf dieser Seite erfahren Sie, wie Sie ein globales Subnetz in Google Distributed Cloud (GDC) mit Air Gap erstellen und dieses Subnetz für einen externen Load-Balancer (ELB) verwenden.

Mit globalen Subnetzen können Sie Subnetze konfigurieren, die externe Load-Balancing-Vorgänge in mehreren Zonen Ihrer GDC-Organisation verwenden können. Load-Balancing bietet die Vorteile einer verbesserten Leistung, Zuverlässigkeit und Verfügbarkeit von Anwendungen und Diensten, indem der Netzwerkverkehr auf mehrere Server verteilt wird. Weitere Informationen zu globalen Subnetzen für das Load-Balancing finden Sie unter Subnetze für das Load-Balancing.

Diese Seite richtet sich an Entwickler in der Gruppe der Anwendungsoperatoren, die das Load-Balancing für ihre Organisation verwalten möchten. Weitere Informationen finden Sie unter Dokumentation zu Zielgruppen für GDC mit Air Gap.

Hinweis

Zum Erstellen eines globalen Subnetzes und Konfigurieren für ELBs benötigen Sie Folgendes:

  • Sie müssen Inhaber des Projekts sein, für das Sie den Load-Balancer konfigurieren. Weitere Informationen finden Sie unter Projekt erstellen.
  • Die erforderlichen Identitäts- und Zugriffsrollen:

    • Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rolle „Load Balancer Admin“ (load-balancer-admin) zuzuweisen.
    • Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rolle „Global Load Balancer Admin“ (global-load-balancer-admin) zuzuweisen.
    • Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rolle „Subnet Organization Admin“ (subnet-org-admin) zuzuweisen.
    • Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rolle „Subnet Project Admin“ (subnet-project-admin) zuzuweisen.

    Weitere Informationen finden Sie unter Beschreibungen vordefinierter Rollen.

Übergeordnetes globales Subnetz erstellen

Das übergeordnete globale Subnetz, das Sie in diesem Abschnitt erstellen, dient als IP-Adresspool, aus dem die IP-Adressen Ihres ELB stammen. Das Subnetz muss das Label ipam.gdc.goog/network-segment: data enthalten. Sie können das übergeordnete Subnetz mit dem Feld spec.parentReference.name angeben. Sie haben zwei Möglichkeiten, das CIDR für dieses übergeordnete Subnetz zu konfigurieren:

Weitere Informationen zum Unterschied zwischen statischen und dynamischen CIDR Konfigurationen finden Sie unter Statische und dynamische CIDR-Konfiguration.

Subnetz mit einer statischen CIDR-Konfiguration erstellen

Verwenden Sie eine statische CIDR-Konfiguration, wenn Sie genaue Kontrolle über Ihren IP-Adressraum benötigen. Dieses Subnetz hat den Typ Branch. Weitere Informationen zu den Subnetztypen „Root“, „Branch“, „und Leaf“ finden Sie unter Subnet hierarchy.

Fügen Sie zum Erstellen eines globalen übergeordneten Subnetzes mit einer statischen CIDR-Konfiguration den ausgewählten CIDR-Block dem Feld spec.ipv4Request.cidr hinzu:

kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
apiVersion: ipam.global.gdc.goog/v1
kind: Subnet
metadata:
  labels:
    ipam.gdc.goog/network-segment: data
  name: ELB_PARENT_SUBNET_NAME
  namespace: platform
spec:
  ipv4Request:
    cidr: STATIC_CIDR
  parentReference:
    name: PARENT_NAME
    namespace: platform
  propagationStrategy: None
  type: Branch
EOF

Ersetzen Sie Folgendes:

  • GLOBAL_API_SERVER: der kubeconfig-Pfad des globalen Management-API-Servers. Weitere Informationen finden Sie unter Globale und zonale API Server. Wenn Sie noch keine kubeconfig-Datei für den API-Server generiert haben, finden Sie unter Anmeldenweitere Informationen.
  • ELB_PARENT_SUBNET_NAME: der ausgewählte Name für Ihr globales übergeordnetes Subnetz für den ELB.
  • STATIC_CIDR: der spezifische CIDR-Block, den Sie für dieses übergeordnete Subnetz zuweisen möchten, z. B. 10.0.10.0/27.
  • PARENT_NAME: der Name des vorhandenen übergeordneten Subnetzes, aus dem dieses neue Subnetz erstellt wird.

Damit dieses Subnetz mit ELBs funktioniert, müssen Sie ein Leaf-Subnetz für den ELB erstellen.

Subnetz mit einer dynamischen CIDR-Konfiguration erstellen

Bei der dynamischen CIDR-Konfiguration wird automatisch ein verfügbarer CIDR-Block einer bestimmten Größe aus dem übergeordneten Subnetz zugewiesen. Dies vereinfacht die IP-Adressverwaltung, insbesondere in größeren Umgebungen. Dieses Subnetz hat den Typ Branch. Weitere Informationen zu den Subnetztypen „Root“, „Branch“, „und Leaf“ finden Sie unter Subnet hierarchy. Konfigurieren Sie zum Erstellen eines globalen übergeordneten Subnetzes mit einem dynamischen CIDR-Block das Feld spec.ipv4Request.prefixLength mit der ausgewählten Präfixlänge:

kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
piVersion: ipam.global.gdc.goog/v1
kind: Subnet
metadata:
  labels:
  ipam.gdc.goog/network-segment: data
  name: ELB_PARENT_SUBNET_NAME
  namespace: platform
spec:
  ipv4Request:
    prefixLength: PREFIX_LENGTH
  parentReference:
    name: PARENT_NAME
    namespace: platform
  propagationStrategy: None
  type: Branch
EOF

Ersetzen Sie Folgendes:

  • ELB_PARENT_SUBNET_NAME: der ausgewählte Name für das übergeordnete Subnetz des ELB, z. B. lb-global-lancer-elb-subnet.
  • STATIC_CIDR: der spezifische CIDR-Block, den Sie verwenden möchten, z. B. 10.0.10.0/27. Diese Variable gilt nur für die statische CIDR-Konfiguration.
  • PARENT_NAME: der Name des vorhandenen übergeordneten Subnetzes, aus dem dieses neue Subnetz erstellt wird, z. B. default-vpc-workload-cidr.
  • PREFIX_LENGTH: die ausgewählte Präfixlänge für das dynamisch zugewiesene CIDR, z. B. 27. Diese Variable gilt nur für die dynamische CIDR-Konfiguration.

Damit dieses Subnetz mit ELBs funktioniert, müssen Sie ein Leaf-Subnetz für den ELB erstellen.

Leaf-Subnetz für den ELB erstellen

Nachdem Sie das globale übergeordnete Subnetz eingerichtet haben, müssen Sie ein Leaf-Subnetz erstellen, um eine einzelne IP-Adresse für den globalen ELB-Dienst zuzuweisen. Dieses Leaf-Subnetz muss den Wert Leaf für das Feld type haben und sich im selben Projektnamespace wie Ihre Load-Balancer-Ressourcen befinden, z. B. ForwardingRule, BackendService und Backend.

So erstellen Sie das Leaf-Subnetz und verknüpfen es mit dem ELB:

  1. Erstellen Sie ein Leaf-Subnetz mit dem Wert 32 für prefixLength, da eine einzelne IP-Adresse zugewiesen werden soll. Der Wert parentReference verweist auf das zuvor erstellte übergeordnete globale Subnetz:

    kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
    apiVersion: ipam.global.gdc.goog/v1
    kind: Subnet
    metadata:
      labels:
        ipam.gdc.goog/allocation-preference: default
        ipam.gdc.goog/network-segment: data
      name: ELB_IP_SUBNET_NAME
      namespace: PROJECT_NAMESPACE
    spec:
      ipv4Request:
        prefixLength: 32
      parentReference:
        name: PARENT_REF
        namespace: platform
      type: Leaf
    EOF
    

    Ersetzen Sie Folgendes:

    • ELB_IP_SUBNET_NAME: der ausgewählte Name für das Leaf-Subnetz, z. B. lb-project-elb-ip.
    • PROJECT_NAMESPACE: der Kubernetes-Namespace, der Ihrem Projekt entspricht, in dem sich Ihre ELB-Objekte befinden, z. B. lb-project.
    • PARENT_REF: der Name des übergeordneten Subnetzes, aus dem dieses Leaf-Subnetz seine IP-Adresse bezieht, z. B. das zuvor erstellte übergeordnete globale Subnetz.
  2. Verbinden Sie das neu erstellte Leaf-Subnetz, das die zugewiesene IP-Adresse enthält, mit der Ressource ForwardingRuleExternal Ihres ELB. Aktualisieren Sie in der Ressource ForwardingRuleExternal das Feld spec.cidrRef.name, um auf den Namen des Leaf-Subnetzes zu verweisen, das Sie im vorherigen Schritt erstellt haben:

    kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
    apiVersion: networking.global.gdc.goog/v1
    kind: ForwardingRuleExternal
    metadata:
      name: FRI_NAME
      namespace: PROJECT_NAMESPACE
    spec:
      ports:
        - port: PORT
          protocol: PROTOCOL
      backendServiceRef:
        name: BES_NAME
      cidrRef:
        name: LEAF_SUBNET_NAME
    EOF
    

    Ersetzen Sie Folgendes:

    • FRI_NAME: der ausgewählte Name für das Objekt ForwardingRuleExternal, z. B. nginx-elb-static-fr.
    • PORT: die Portnummer, an der Ihr ELB auf eingehenden Traffic wartet, z. B. 80.
    • PROTOCOL: das Netzwerkprotokoll, das Ihr ELB verwendet, z. B. TCP oder UDP.
    • BES_NAME: der Name des BackendService, der mit dieser Ressource ForwardingRuleExternal verknüpft ist, z. B. nginx-bes.
    • LEAF_SUBNET_NAME: der Name des Leaf-Subnetzes, das Sie im vorherigen Schritt erstellt haben, z. B. lb-project-elb-ip.