Externe Load Balancer (ELB) machen Dienste außerhalb des Projekts über die IP-Adressen eines Pools verfügbar, die dem Projekt aus dem größeren Pool externer Instanz-IP-Adressen zugewiesen sind.
ELB-VIP-Adressen (Virtual IP) stehen nicht in Konflikt mit anderen Organisationen und sind organisationsübergreifend eindeutig. Aus diesem Grund dürfen Sie ELB-Dienste nur für Dienste verwenden, auf die Clients außerhalb des Projekts unbedingt zugreifen müssen.
Arbeitslasten, die im Projekt ausgeführt werden, können auf ELB-Dienste zugreifen, sofern Sie den Zugriff auf das Projekt für die Arbeitslasten aktivieren. Für dieses Trafficmuster ist ausgehender Traffic vom Projekt erforderlich, bevor es zum internen Dienst zurückkehrt.
Hinweise
Zum Konfigurieren von ELB-Diensten benötigen Sie Folgendes:
- Sie sind Inhaber des Projekts, für das Sie den Load-Balancer konfigurieren. Weitere Informationen finden Sie unter Projekt erstellen.
- Eine benutzerdefinierte
ProjectNetworkPolicy
-Einlassrichtlinie (PNP), um Traffic zu diesem ELB-Dienst zuzulassen. Weitere Informationen finden Sie unter PNP konfigurieren, um Traffic zu ELB zuzulassen. Die erforderlichen Identitäts- und Zugriffsrollen:
- Project NetworkPolicy Admin: Hat Zugriff zum Verwalten von Projekt-NetworkPolicies im Projekt-Namespace. Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rolle „Project NetworkPolicy Admin“ (
project-networkpolicy-admin
) zu gewähren. - Administrator für Load-Balancer: Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rolle „Administrator für Load-Balancer“ (
load-balancer-admin
) zu gewähren.
- Project NetworkPolicy Admin: Hat Zugriff zum Verwalten von Projekt-NetworkPolicies im Projekt-Namespace. Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rolle „Project NetworkPolicy Admin“ (
PNP konfigurieren, um Traffic zu ELB zuzulassen
Damit ELB-Dienste funktionieren, müssen Sie Ihre eigene benutzerdefinierte ProjectNetworkPolicy
-Richtlinie für eingehenden Traffic konfigurieren und anwenden, um Traffic zu diesem ELB-Dienst zuzulassen. Geben Sie die externe CIDR-Adresse an, um Traffic zu diesem ELB zuzulassen:
kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f - <<EOF
apiVersion: networking.gdc.goog/v1
kind: ProjectNetworkPolicy
metadata:
namespace: PROJECT
name: allow-inbound-traffic-from-external
spec:
policyType: Ingress
subject:
subjectType: UserWorkload
ingress:
- from:
- ipBlock:
cidr: CIDR
ports:
- protocol: TCP
port: PORT
EOF
Ersetzen Sie Folgendes:
MANAGEMENT_API_SERVER
: der kubeconfig-Pfad des Management API-Servers. Wenn Sie noch keine kubeconfig-Datei für den API-Server in Ihrer Zielzone generiert haben, lesen Sie die Informationen unter Anmelden.PROJECT
: der Name Ihres GDC-Projekts.CIDR
: Der externe CIDR-Bereich, über den auf den ELB zugegriffen werden muss. Diese Richtlinie ist erforderlich, da der externe Load-Balancer DSR (Direct Server Return) verwendet. Dadurch wird die externe Quell-IP-Adresse beibehalten und der Load-Balancer auf dem Rückgabepfad umgangen.PORT
: der Backend-Port für die Pods hinter dem Load Balancer. Dieser Wert befindet sich im Feld.spec.ports[].targetPort
des Manifests für die RessourceService
.
Externen Load-Balancer erstellen
Erstellen Sie ELBs mit drei verschiedenen Methoden in GDC:
- Verwenden Sie die gcloud CLI, um ELBs zu erstellen.
- Verwenden Sie die Networking Kubernetes Resource Model (KRM) API, um ELBs zu erstellen.
Sie können Pod- oder VM-Arbeitslasten mit der KRM API und der gcloud CLI ausrichten. Sie können nur Arbeitslasten in dem Cluster anvisieren, in dem das Service
-Objekt erstellt wird, wenn Sie den Kubernetes-Dienst direkt im Kubernetes-Cluster verwenden.