Wie schränke ich CIDR-IP-Adressen für einen Dienst vom Typ LoadBalancer in Amazon EKS ein?
Ich möchte die CIDR-IP-Adressen für einen Dienst vom Typ LoadBalancer in Amazon Elastic Kubernetes Service (Amazon EKS) einschränken.
Kurzbeschreibung
Wenn Sie einen Dienst der Art LoadBalancer erstellen, sind Anfragen von der Quelle 0.0.0.0/0 standardmäßig zulässig. Wenn sich der Load Balancer in einem öffentlichen Subnetz befindet, werden Anfragen von überall im Internet an Worker-Knoten weitergeleitet.
Um die Quelle statt 0.0.0.0/0 einzuschränken, verwenden Sie loadBalancerSourceRanges.
Behebung
**Anmerkung:**Wenn bei der Ausführung von AWS Command Line Interface (AWS CLI)-Befehlen Fehler auftreten, finden Sie weitere Informationen unter Troubleshoot AWS CLI errors. Stellen Sie außerdem sicher, dass Sie die neueste Version von AWS CLI verwenden.
Ihre Umgebung einrichten
Gehen Sie wie folgt vor, um Ihre Umgebung einzurichten:
- Erstellen Sie einen Amazon EKS-Cluster.
- Erstellen Sie Worker-Knoten, und starten Sie sie dann.
- Richten Sie kubectl ein.
- Richten Sie die AWS CLI ein.
- Stellen Sie den AWS Load Balancer Controller ein.
**Anmerkung:**Für den Dienst der Art LoadBalancer unterstützt der AWS Load Balancer Controller den Network Load Balancer (NLB) IP-Modus Version 2.0.0 oder höher und den NLB-Instance-Modus 2.2.0 oder höher.
Wichtig: Um einen neuen Network Load Balancer für Dienste der Art LoadBalancer zuzuweisen, empfiehlt es sich, den AWS Load Balancer Controller anstelle des Kubernetes Service-Load-Balancer-Controllers zu verwenden. Die neueste Version des AWS Balancer Controllers finden Sie unter aws-load-balancer-controller auf der GitHub-Website.
CIDR-IP-Adressen einschränken
Wählen Sie eine der folgenden Methoden, um die loadBalancerSourceRanges anzugeben.
Eine Anmerkung verwenden
Verwenden Sie eine Anmerkung in Ihrer Dienst-Manifestdatei (svc.yaml).
Beispiel für eine Anmerkung:
service.beta.kubernetes.io/load-balancer-source-ranges: 143.231.0.0/16
Weitere Informationen finden Sie unter Zugriffskontrolle auf der Kubernetes-Website.
Hinzufügen des Felds LoadBalancerSourceRanges
-
Fügen Sie das Feld .spec.loadBalancerSourceRanges in Ihre svc.yaml-Datei ein:
apiVersion: v1 kind: Service metadata: labels: app: nginx name: nginx annotations: service.beta.kubernetes.io/aws-load-balancer-type: "external" service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: "instance" service.beta.kubernetes.io/aws-load-balancer-scheme: "internet-facing" spec: ports: - port: 80 protocol: TCP targetPort: 80 selector: app: nginx type: LoadBalancer loadBalancerSourceRanges: - "143.231.0.0/16"
-
Führen Sie den folgenden Befehl aus, um Ihre svc.yaml-Datei anzuwenden:
$ kubectl apply -f svc.yaml
Führen Sie den folgenden Befehl aus, um die Pod-Protokolle des AWS Load Balancer Controllers zu überprüfen:
$ kubectl logs -f <aws load balancer controller pod> -n <namespace>
-
Der AWS Load Balancer Controller fügt die konfigurierten Load Balancer-Quellbereiche zu den eingehenden Regeln der Sicherheitsgruppe hinzu. Führen Sie den folgenden AWS-CLI-Befehl aus, um zu bestätigen, dass die eingehenden Regeln für die Sicherheitsgruppe geändert wurden:
$ aws ec2 describe-security-groups --group-ids sg-XXXXXXXXXXXXXXXXX ... "CidrIp": "143.231.0.0/16" ...
-
Wenn Sie einen Network Load Balancer im IP-Modus verwenden, wird das Feld .spec.loadBalancerSourceRanges standardmäßig ignoriert. Verwenden Sie in diesem Fall die folgende Anmerkung, um die Client-IP-Erhaltung zu aktivieren:
service.beta.kubernetes.io/aws-load-balancer-target-group-attributes: preserve_client_ip.enabled=true
Für einen Dienst mit einer Network Load Balancer-Art möchten Sie möglicherweise das maximale Sicherheitsgruppenlimit erhöhen. Für jeden Knotenport und jeden Subnetz-CIDR-Bereich erstellt der Controller Regeln für die Sicherheitsgruppe des Worker-Knotens. Weitere Informationen finden Sie unter Eingehender Datenverkehr auf der Kubernetes-Website.
Anmerkung: Für einen Dienst mit einer Network Load Balancer-Art möchten Sie möglicherweise das maximale Sicherheitsgruppenquote erhöhen. Für jeden Knotenport und jeden Subnetz-CIDR-Bereich erstellt der Controller Regeln für die Sicherheitsgruppe des Worker-Knotens. Sie haben beispielsweise Worker-Knoten in drei Availability Zones. Sie fügen einen loadBalancerSourceRange hinzu. Drei Integritätsprüfungsregeln (eine pro Subnetz) und eine loadBalancerSourceRange-Regel werden in der Sicherheitsgruppe des Worker-Knotens erstellt. Sicherheitsgruppen haben ein Standardlimit von 60 Regeln. Sie können diese Quote erhöhen, aber die Gesamtzahl der Sicherheitsgruppen pro Netzwerkschnittstelle darf 1.000 nicht überschreiten.
Ähnliche Informationen
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 9 Monaten
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 9 Monaten
- AWS OFFICIALAktualisiert vor 10 Monaten