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 unter, 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
Bevor Sie das Hybrid Nodes Gateway installieren, stellen Sie 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 das VPC-CNI verwenden. AWS Das Gateway ist auf VPC-native Routing angewiesen, 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.
-
Zulässiger VXLAN-Verkehr — Die an die Gateway-EC2-Instances angeschlossenen Sicherheitsgruppen müssen eingehenden und ausgehenden UDP-Verkehr auf Port 8472 zulassen. Auf der Seite des Hybridknotens müssen die lokalen Firewallregeln auch den UDP-Port 8472-Verkehr zu und von den IP-Adressen des Gateway-Knotens 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:
-
-
EKS-Auto-Modus (wenn Sie den Auto-Modus für Gateway-Knoten verwenden) — Wenn Sie den EKS-Auto-Modus zur Bereitstellung von Gateway-Knoten verwenden möchten, muss der automatische Modus auf Ihrem EKS-Cluster aktiviert sein. Weitere Informationen finden Sie unter EKS-Automatikmodus aktivieren.
Bereiten Sie Gateway-Knoten vor
Das Gateway benötigt mindestens zwei EC2-Knoten für eine hohe Verfügbarkeit. Es gibt zwei unterstützte Knotenkonfigurationsoptionen für das Gateway:
-
EKS-Automatikmodus (empfohlen)— Knoten werden automatisch mithilfe eines
NodePoolundNodeClassbereitgestellt. Source/destination Check, Labels und Taints werden alle deklarativ konfiguriert. -
Verwaltete Knotengruppen— Sie stellen Knoten mithilfe einer verwalteten Knotengruppe oder mithilfe 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.
EKS-Automatikmodus (empfohlen)
Wenn Sie den EKS-Automatikmodus verwenden, müssen Sie NodeClass vor der Installation des Helm-Diagramms ein NodePool Band erstellen. Das stellt NodePool EC2-Instances die richtigen Labels, Taints und source/destination Checkkonfigurationen zur Verfügung. 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 von EKS Auto Mode zur Bereitstellung von Knoten verwendet wird. Dies ist die Rolle, die Sie konfiguriert haben (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 EKS-Automatikmodus. -
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
Wichtige Felder in dieser Konfiguration:
-
advancedNetworking.sourceDestCheck: DisabledPrimaryENI— Deaktiviert die source/destination EC2-Überprüfung der primären ENI des Knotens, sodass das Gateway Datenverkehr weiterleiten kann, der nicht an sich selbst adressiert ist. -
taints— Derhybrid-gateway-node: NoScheduleTaint stellt sicher, dass nur Gateway-Pods mit einem entsprechenden Toleranzplan auf diesen Knoten laufen. -
labels— Dashybrid-gateway-node: "true"Label wird vom Node-Selektor des Helm-Diagramms verwendet, um Gateway-Pods auf diese Knoten auszurichten. -
nodeClassRef— Verbindet NodePool die NodeClass mit der source/destination Checkkonfiguration.
Verwaltete Knotengruppen
Wenn Sie verwaltete Knotengruppen verwenden, erstellen Sie eine dedizierte 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 der primären ENI beim Booten 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 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, dem Tint 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 einenNoScheduleTaint hinzu, sodass nur Gateway-Pods mit einem passenden Toleranzplan auf diesen Knoten verfügbar sind. -
--launch-templatehängt die Startvorlage an, die die Überprüfung beim Booten 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 EKS Auto Mode 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
Stellen Sie für verwaltete Knotengruppen oder selbstverwaltete Knoten Folgendes ein: 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 (zum Beispiel |
|
|
Comma-separated Liste der Pod-CIDRs, die von Cilium auf Hybridknoten verwendet werden (z. B.). |
|
|
Comma-separated Liste der VPC-Routing-Tabellen-IDs zum Programmieren (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 Führers
Vergewissern Sie sich, dass ein Team den Leasingvertrag für die Wahl des Leaders erworben hat:
kubectl get lease -n eks-hybrid-nodes-gateway
Die Ausgabe zeigt den aktuellen Leader in der folgenden HOLDER Spalte an:
NAME HOLDER AGE hybrid-gateway-leader eks-hybrid-nodes-gateway-5d4f6a7b8c-abc12 2m
Überprüfen Sie den Gesundheitsendpunkt
Stellen Sie mithilfe der 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-Routing-Tabelle
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=='POD_CIDR']"
Jeder Hybrid-Pod-CIDR sollte eine Route haben, bei der die primäre ENI der NetworkInterfaceId Leader-Instance angegeben ist.
Deinstallieren
Um das Hybrid Nodes Gateway zu entfernen, führen Sie Folgendes aus:
helm uninstall eks-hybrid-nodes-gateway --namespace eks-hybrid-nodes-gateway
Anmerkung
Durch die Deinstallation des Helm-Charts werden die vom Gateway erstellten VPC-Routing-Tabelleneinträge nicht automatisch entfernt. Löschen Sie nach der Deinstallation manuell die Routen für Ihre Hybrid-Pod-CIDRs aus den VPC-Routing-Tabellen, um zu vermeiden, dass der Datenverkehr an Instances weitergeleitet wird, auf denen das Gateway nicht mehr ausgeführt wird. Sie können Routen mit der CLI entfernen: AWS
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 des Anführers an.
-
Gateway-Betrieb von Amazon EKS Hybrid Nodes— Überwachen Sie das Gateway, machen Sie sich ein Bild vom Failover-Verhalten und planen Sie die Skalierung.
-
Fehlerbehebung beim Amazon EKS Hybrid Nodes Gateway— Diagnostizieren und lösen Sie häufig auftretende Probleme.