Globales Subnetz für internes Load Balancing erstellen

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

Mit globalen Subnetzen können Sie interne Load-Balancing-Vorgänge in mehreren Zonen Ihrer GDC-Organisation konfigurieren. 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 Anwendungsbetreiber, die das Load-Balancing für ihre Organisation verwalten möchten. Weitere Informationen finden Sie in der Dokumentation zu Zielgruppen für GDC-Air-Gap.

Hinweise

Um ein globales Subnetz zu erstellen und für interne Load Balancer zu konfigurieren, benötigen Sie Folgendes:

  • Sie sind Inhaber des Projekts, 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 „Administrator für globale Load Balancer“ (global-load-balancer-admin) zuzuweisen.
    • Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rolle „Subnet Organization Admin“ (subnet-org-admin) zuzuweisen. Dies ist eine Plattformadministratorrolle für die Organisation.
    • Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rolle „Subnetz-Projektadministrator“ (subnet-project-admin) zuzuweisen. Dies ist eine Application Operator-Rolle für das Projekt.

    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 ILB stammen. Sie geben übergeordnete Subnetze mit dem Feld spec.parentReference.name an. 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-Adressbereich benötigen. Dieses Subnetz hat den Typ Branch. Weitere Informationen zu den Subnetztypen „Root“, „Branch“ und „Leaf“ finden Sie unter Subnetzhierarchie.

Wenn Sie ein globales übergeordnetes Subnetz mit einer statischen CIDR-Konfiguration erstellen möchten, fügen Sie 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/vpc: default-vpc
  name: ILB_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 weitere Informationen unter Anmelden.
  • ILB_PARENT_SUBNET_NAME: der ausgewählte Name für das globale übergeordnete Subnetz für den ILB.
  • STATIC_CIDR: Der spezifische CIDR-Block, den Sie diesem übergeordneten 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 ILBs verwendet werden kann, müssen Sie ein Leaf-Subnetz für den ILB erstellen.

Subnetz mit einer dynamischen CIDR-Konfiguration erstellen

Bei der dynamischen CIDR-Konfiguration wird automatisch ein verfügbarer CIDR-Block einer angegebenen Größe aus dem übergeordneten Subnetz zugewiesen. Das vereinfacht die Verwaltung von IP-Adressen, insbesondere in großen Umgebungen. Dieses Subnetz hat den Typ Branch. Weitere Informationen zu den Subnetztypen „Root“, „Branch“ und „Leaf“ finden Sie unter Subnetzhierarchie.

Wenn Sie ein globales übergeordnetes Subnetz mit einem dynamischen CIDR erstellen möchten, konfigurieren Sie das Feld spec.ipv4Request.prefixLength mit der ausgewählten Präfixlänge:

kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
apiVersion: ipam.global.gdc.goog/v1
kind: Subnet
metadata:
  labels:
    ipam.gdc.goog/vpc: default-vpc
  name: ILB_PARENT_SUBNET_NAME
  namespace: platform
spec:
  ipv4Request:
    prefixLength: PREFIX_LENGTH
  parentReference:
    name: PARENT_NAME
    namespace: platform
  propagationStrategy: None
  type: Branch

EOF

Ersetzen Sie Folgendes:

  • ILB_PARENT_SUBNET_NAME: der von Ihnen gewählte Name für das ILB-übergeordnete Subnetz, z. B. lb-global-lancer-ilb-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 den dynamisch zugewiesenen CIDR, z. B. 27. Diese Variable gilt nur für die dynamische CIDR-Konfiguration.

Damit dieses Subnetz mit ILBs verwendet werden kann, müssen Sie ein Leaf-Subnetz für den ILB erstellen.

Leaf-Subnetz für den internen Load Balancer erstellen

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

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

  1. Erstellen Sie ein untergeordnetes Subnetz mit dem Wert 32 für prefixLength, da eine einzelne IP-Adresse zugewiesen werden soll. Der Wert parentReference verweist auf das zuvor erstellte globale übergeordnete 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/vpc: default-vpc
      name: ILB_IP_SUBNET_NAME
      namespace: PROJECT_NAMESPACE
    spec:
      ipv4Request:
        prefixLength: 32
      parentReference:
        name: PARENT_REF
        namespace: platform
      type: Leaf
    EOF
    

    Ersetzen Sie Folgendes:

    • ILB_IP_SUBNET_NAME: der von Ihnen gewählte Name für das untergeordnete Subnetz, z. B. lb-project-ilb-ip.
    • PROJECT_NAMESPACE: Der Kubernetes-Namespace, der Ihrem Projekt entspricht und in dem sich Ihre ILB-Objekte befinden, z. B. lb-project.
    • PARENT_REF: Der Name des übergeordneten Subnetzes, aus dem dieses untergeordnete Subnetz seine IP-Adresse bezieht, z. B. das übergeordnete globale Subnetz, das Sie zuvor erstellt haben.
  2. Verbinden Sie das neu erstellte Blatt-Subnetz, das die zugewiesene IP-Adresse enthält, mit der ForwardingRuleInternal-Ressource Ihres internen Load Balancers. Aktualisieren Sie in Ihrer ForwardingRuleInternal-Ressource das Feld spec.cidrRef.name, damit es auf den Namen des Leaf-Subnetzes verweist, das Sie im vorherigen Schritt erstellt haben:

    kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
    apiVersion: networking.global.gdc.goog/v1
    kind: ForwardingRuleInternal
    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 von Ihnen gewählte Name für das ForwardingRuleInternal-Objekt, z. B. nginx-ilb-static-fr.
    • PORT: die Portnummer, an der Ihr ILB auf eingehenden Traffic wartet, z. B. 80.
    • PROTOCOL: Das Netzwerkprotokoll, das von Ihrem ILB verwendet wird, z. B. TCP oder UDP.
    • BES_NAME: Der Name der BackendService, die dieser ForwardingRuleInternal-Ressource zugeordnet ist, z. B. nginx-bes.
    • LEAF_SUBNET_NAME: Der Name des Leaf-Subnetzes, das Sie im vorherigen Schritt erstellt haben, z. B. lb-project-ilb-ip.