Unterstützung für die Verbesserung dieser Seite beitragen
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Um zu diesem Benutzerhandbuch beizutragen, wählen Sie den GitHub Link Diese Seite bearbeiten auf, der sich im rechten Bereich jeder Seite befindet.
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Erste Schritte mit dem EKS Hybrid Nodes Gateway
Diese Seite führt Sie durch die Voraussetzungen, die Vorbereitung der Umgebung, die Installation, Überprüfung und Deinstallation des Amazon EKS Hybrid Nodes Gateways. Eine Einführung in das Gateway und seine Architektur finden Sie unterAmazon EKS-Gateway für Hybridknoten.
Voraussetzungen
Stellen Sie vor der Installation des Hybrid Nodes Gateways sicher, dass Ihre Umgebung die folgenden Anforderungen erfüllt:
-
EKS-Cluster mit Cilium CNI- und VTEP-Unterstützung — Ihr EKS-Cluster muss die EKS-Version von Cilium als CNI auf Hybridknoten verwenden, und Cilium VTEP muss aktiviert sein. Weitere Informationen finden Sie unter CNI für das Hybrid Nodes Gateway konfigurieren.
-
AWS VPC-CNI auf Cloud-Knoten — Die Gateway-Knoten und andere Cloud-Knoten im Cluster müssen die AWS VPC-CNI verwenden. Das Gateway nutzt VPC-native Routing, um den Verkehr zwischen der VPC und dem VXLAN-Tunnel weiterzuleiten.
-
Hybride Konnektivität — Eine private Verbindung zwischen Ihrer VPC und der lokalen Umgebung ist erforderlich. Sie können AWS Direct Connect, AWS Site-to-Site VPN oder Ihre eigene VPN-Lösung verwenden. Weitere Informationen finden Sie unter Vorbereitung der Vernetzung für Hybridknoten.
-
VXLAN-Verkehr zulässig — Die Sicherheitsgruppen, die den Gateway-EC2-Instances zugeordnet sind, müssen eingehenden und ausgehenden UDP-Verkehr auf Port 8472 zulassen. Auf der Seite des Hybridknotens müssen die lokalen Firewallregeln auch UDP-Port 8472-Verkehr zu und von den IP-Adressen der Gateway-Knoten zulassen.
-
IAM-Berechtigungen für die Verwaltung von Routing-Tabellen — Das Gateway benötigt die folgenden EC2-Aktionen, um VPC-Routing-Tabellen zu verwalten:
-
ec2:DescribeRouteTables -
ec2:CreateRoute -
ec2:ReplaceRoute -
ec2:DescribeInstancesSie können diese Berechtigungen auf eine der folgenden Arten gewähren:
-
-
Automatischer EKS-Modus (wenn Sie den automatischen Modus für Gateway-Knoten verwenden) — Wenn Sie den EKS-Automatikmodus zur Bereitstellung von Gateway-Knoten verwenden möchten, muss der automatische Modus auf Ihrem EKS-Cluster aktiviert sein. Weitere Informationen finden Sie unter Aktivieren des EKS-Automatikmodus.
Bereiten Sie Gateway-Knoten vor
Das Gateway benötigt für eine hohe Verfügbarkeit mindestens zwei EC2-Knoten. Es gibt zwei unterstützte Knotenkonfigurationsoptionen für das Gateway:
-
Automatischer EKS-Modus (empfohlen)— Knoten werden automatisch mit einem
NodePoolundNodeClassbereitgestellt. Source/destination Check, Labels und Taints sind alle deklarativ konfiguriert. -
Verwaltete Knotengruppen— Sie stellen Knoten mithilfe einer verwalteten Knotengruppe oder selbstverwalteter Knoten bereit. Labels können über die API für verwaltete Knotengruppen konfiguriert werden, und die source/destination Überprüfung kann mithilfe einer benutzerdefinierten Startvorlage mit Benutzerdaten deaktiviert werden.
Automatischer EKS-Modus (empfohlen)
Wenn Sie den EKS-Automatikmodus verwenden, müssen Sie NodeClass vor der Installation des Helm-Diagramms ein NodePool und erstellen. Dadurch werden NodePool EC2-Instances mit den richtigen Labels, Taints und der korrekten source/destination Prüfkonfiguration ausgestattet. Sie müssen Knoten nicht manuell bereitstellen oder konfigurieren.
Wenden Sie die folgenden Ressourcen auf Ihren Cluster an und ersetzen Sie dabei die Platzhalterwerte:
-
YOUR_NODE_ROLE— Der Name der Node-IAM-Rolle, die vom EKS Auto Mode zur Bereitstellung von Knoten verwendet wird. Dies ist die Rolle, die Sie konfiguriert (oder die EKS erstellt hat), als Sie den automatischen Modus auf dem Cluster aktiviert haben. Weitere Informationen finden Sie unter Erstellen einer Node-IAM-Rolle für den automatischen EKS-Modus. -
YOUR_CLUSTER_NAME— Ihr EKS-Clustername. -
SUBNET_ID_1,SUBNET_ID_2— Subnetz-IDs in verschiedenen Availability Zones, in denen Gateway-Knoten bereitgestellt werden.
apiVersion: eks.amazonaws.com/v1 kind: NodeClass metadata: name: hybrid-gateway spec: advancedNetworking: sourceDestCheck: DisabledPrimaryENI role:YOUR_NODE_ROLEsecurityGroupSelectorTerms: - tags: aws:eks:cluster-name:YOUR_CLUSTER_NAMEsubnetSelectorTerms: - id:SUBNET_ID_1- id:SUBNET_ID_2--- apiVersion: karpenter.sh/v1 kind: NodePool metadata: name: hybrid-gateway spec: template: metadata: labels: hybrid-gateway-node: "true" spec: expireAfter: 336h nodeClassRef: group: eks.amazonaws.com kind: NodeClass name: hybrid-gateway requirements: - key: karpenter.sh/capacity-type operator: In values: - on-demand - key: eks.amazonaws.com/instance-category operator: In values: - c - m - r - key: eks.amazonaws.com/instance-generation operator: Gt values: - "4" - key: kubernetes.io/arch operator: In values: - amd64 - key: kubernetes.io/os operator: In values: - linux taints: - key: hybrid-gateway-node effect: NoSchedule terminationGracePeriod: 24h0m0s disruption: budgets: - nodes: 10% consolidateAfter: 30s consolidationPolicy: WhenEmptyOrUnderutilized
Schlüsselfelder in dieser Konfiguration:
-
advancedNetworking.sourceDestCheck: DisabledPrimaryENI— Deaktiviert die source/destination EC2-Prüfung auf der primären ENI des Knotens, sodass das Gateway Datenverkehr weiterleiten kann, der nicht an sich selbst adressiert ist. -
taints— Dieser Fehlerhybrid-gateway-node: NoSchedulestellt sicher, dass nur Gateway-Pods auf diesen Knoten über einen entsprechenden Toleranzplan verfügen. -
labels— Dashybrid-gateway-node: "true"Label wird von der Knotenauswahl des Helm-Diagramms verwendet, um Gateway-Pods auf diese Knoten auszurichten. -
nodeClassRef— Verbindet NodePool die NodeClass mit der source/destination Prüfkonfiguration.
Verwaltete Knotengruppen
Wenn Sie verwaltete Knotengruppen verwenden, erstellen Sie eine spezielle Knotengruppe für das Gateway mit den erforderlichen Labels, Taints und einer benutzerdefinierten Startvorlage, die die source/destination Überprüfung beim Start deaktiviert.
Schritt 1: Eine Startvorlage erstellen
Erstellen Sie eine Startvorlage mit Benutzerdaten, die die source/destination Überprüfung auf der primären ENI beim Starten der Instance deaktiviert:
# Create the launch template with user data to disable source/dest check USERDATA=$(cat <<'SCRIPT' | base64 -w 0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==BOUNDARY==" --==BOUNDARY== Content-Type: text/x-shellscript; charset="us-ascii" #!/bin/bash TOKEN=$(curl -s -X PUT "http://169.254.169.254/latest/api/token" \ -H "X-aws-ec2-metadata-token-ttl-seconds: 60") MAC=$(curl -s -H "X-aws-ec2-metadata-token: $TOKEN" \ http://169.254.169.254/latest/meta-data/mac) ENI_ID=$(curl -s -H "X-aws-ec2-metadata-token: $TOKEN" \ "http://169.254.169.254/latest/meta-data/network/interfaces/macs/${MAC}/interface-id") REGION=$(curl -s -H "X-aws-ec2-metadata-token: $TOKEN" \ http://169.254.169.254/latest/meta-data/placement/region) aws ec2 modify-network-interface-attribute \ --network-interface-id "$ENI_ID" \ --no-source-dest-check \ --region "$REGION" --==BOUNDARY==-- SCRIPT ) aws ec2 create-launch-template \ --launch-template-nameYOUR_CLUSTER_NAME-gateway-lt \ --launch-template-data "{\"UserData\":\"${USERDATA}\",\"MetadataOptions\":{\"HttpTokens\":\"required\",\"HttpPutResponseHopLimit\":2}}"
Anmerkung
Die IAM-Rolle des Knotens muss über die ec2:ModifyNetworkInterfaceAttribute entsprechende Berechtigung verfügen, damit das Benutzerdatenskript erfolgreich ausgeführt werden kann. Das mehrteilige MIME-Format stellt sicher, dass die Benutzerdaten zusammen mit dem EKS-Bootstrap-Skript ausgeführt werden.
Schritt 2: Erstellen Sie die verwaltete Knotengruppe
Erstellen Sie eine dedizierte verwaltete Knotengruppe mit dem Gateway-Label, Taint und der Startvorlage aus Schritt 1:
aws eks create-nodegroup \ --cluster-nameYOUR_CLUSTER_NAME\ --nodegroup-nameYOUR_CLUSTER_NAME-gateway-nodes \ --subnetsSUBNET_ID_1 SUBNET_ID_2\ --node-roleYOUR_NODE_ROLE_ARN\ --instance-typesINSTANCE_TYPE\ --ami-type AL2023_x86_64_STANDARD \ --scaling-config desiredSize=2,maxSize=2,minSize=2 \ --labels hybrid-gateway-node=true \ --taints "key=hybrid-gateway-node,effect=NO_SCHEDULE" \ --launch-template "name=YOUR_CLUSTER_NAME-gateway-lt,version=1"
Dadurch wird eine verwaltete Knotengruppe mit 2 Knoten erstellt, in der:
-
--labelslegt festhybrid-gateway-node=true, dass der Knotenselektor des Helm-Diagramms auf diese Knoten abzielt. -
--taintsfügt einenNoScheduleMakel hinzu, sodass nur Gateway-Pods mit einem entsprechenden Toleranzplan auf diesen Knoten verwendet werden. -
--launch-templatehängt die Startvorlage an, die die Überprüfung beim Systemstart deaktiviert source/destination .
Verwenden Sie Subnetze in verschiedenen Availability Zones für hohe Verfügbarkeit.
Installation mit Helm
EKS Auto Mode
Führen Sie den folgenden Befehl aus, um das Gateway mit dem EKS-Automatikmodus zu installieren:
helm install eks-hybrid-nodes-gateway \ oci://public.ecr.aws/eks/eks-hybrid-nodes-gateway \ --version 1.0.0 \ --namespace eks-hybrid-nodes-gateway \ --create-namespace \ --set vpcCIDR=VPC_CIDR\ --set podCIDRs=POD_CIDRS\ --set routeTableIDs=ROUTE_TABLE_IDS
Verwaltete Knotengruppen oder selbstverwaltete Knoten
Legen Sie für verwaltete Knotengruppen oder selbstverwaltete Knoten Folgendes fest: autoMode.enabled=false
helm install eks-hybrid-nodes-gateway \ oci://public.ecr.aws/eks/eks-hybrid-nodes-gateway \ --version 1.0.0 \ --namespace eks-hybrid-nodes-gateway \ --create-namespace \ --set autoMode.enabled=false \ --set vpcCIDR=VPC_CIDR\ --set podCIDRs=POD_CIDRS\ --set routeTableIDs=ROUTE_TABLE_IDS
Erforderliche Helm-Werte
Die folgenden Werte sind für alle Installationen erforderlich:
| Wert | Description |
|---|---|
|
|
Der CIDR-Block Ihrer EKS-Cluster-VPC (z. B. |
|
|
Comma-separated Liste der Pod-CIDRs, die von Cilium auf Hybridknoten verwendet werden (z. B.). |
|
|
Comma-separated Liste der zu VPC VPC-Routentabellen-IDs (z. B. |
Eine vollständige Liste der konfigurierbaren Werte finden Sie unterReferenz zur Konfiguration des Amazon EKS Hybrid Nodes Gateways.
Überprüfen der Installation
Stellen Sie nach der Installation des Gateways sicher, dass es läuft und fehlerfrei ist.
Überprüfen Sie den Pod-Status
Vergewissern Sie sich, dass zwei Gateway-Pods laufen:
kubectl get pods -n eks-hybrid-nodes-gateway
Sie sollten eine Ausgabe sehen, die der folgenden ähnelt:
NAME READY STATUS RESTARTS AGE eks-hybrid-nodes-gateway-5d4f6a7b8c-abc12 1/1 Running 0 2m eks-hybrid-nodes-gateway-5d4f6a7b8c-def34 1/1 Running 0 2m
Überprüfen Sie die Wahl des Vorsitzenden
Vergewissern Sie sich, dass ein Pod den Leasingvertrag für die Wahl des Leiters erworben hat:
kubectl get lease -n eks-hybrid-nodes-gateway
Die Ausgabe zeigt den aktuellen Leader in der HOLDER Spalte:
NAME HOLDER AGE hybrid-gateway-leader eks-hybrid-nodes-gateway-5d4f6a7b8c-abc12 2m
Überprüfen Sie den Integritätsendpunkt
Stellen Sie mithilfe von Portweiterleitung sicher, dass der Integritätsendpunkt auf dem Leader-Pod reagiert:
kubectl port-forward -n eks-hybrid-nodes-gatewayLEADER_POD_NAME8088:8088 & curl -s http://localhost:8088/healthz
Ein fehlerfreies Gateway gibt eine HTTP 200-Antwort zurück.
Überprüfen Sie die Einträge in der VPC-Routentabelle
Vergewissern Sie sich in der Amazon VPC-Konsole oder mithilfe der AWS CLI, dass Ihre VPC-Routing-Tabellen Einträge für die Hybrid-Pod-CIDRs enthalten, die auf die ENI der Leader-Gateway-Instance verweisen:
aws ec2 describe-route-tables \ --route-table-idsROUTE_TABLE_ID\ --query "RouteTables[].Routes[?DestinationCidrBlock=='[.replaceable]`POD_CIDR`']"
Jeder Hybrid-Pod-CIDR sollte über eine Route verfügen, auf der die Verbindung zur primären ENI der Leader-Instance NetworkInterfaceId festgelegt ist.
Deinstallieren
Um das Hybrid Nodes Gateway zu entfernen, führen Sie folgenden Befehl aus:
helm uninstall eks-hybrid-nodes-gateway --namespace eks-hybrid-nodes-gateway
Anmerkung
Durch die Deinstallation des Helm-Diagramms werden die vom Gateway erstellten VPC-Routentabelleneinträge nicht automatisch entfernt. Löschen Sie nach der Deinstallation manuell die Routen für Ihre Hybrid-Pod-CIDRs aus den VPC-Routentabellen, um zu vermeiden, dass der Datenverkehr zu Instances weitergeleitet wird, die das Gateway nicht mehr ausführen. Sie können Routen mit der AWS CLI entfernen:
aws ec2 delete-route \ --route-table-idROUTE_TABLE_ID\ --destination-cidr-blockPOD_CIDR
Nächste Schritte
-
Referenz zur Konfiguration des Amazon EKS Hybrid Nodes Gateways— Passen Sie Helm-Werte, CLI-Flags und Parameter für die Wahl von Führungskräften an.
-
Gateway-Betrieb von Amazon EKS Hybrid Nodes— Überwachen Sie das Gateway, verstehen Sie das Failover-Verhalten und planen Sie die Skalierung.
-
Fehlerbehebung beim Amazon EKS Hybrid Nodes Gateway— Diagnostizieren und lösen Sie häufig auftretende Probleme.