Bantu meningkatkan halaman ini
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Untuk berkontribusi pada panduan pengguna ini, pilih GitHub tautan Edit halaman ini di yang terletak di panel kanan setiap halaman.
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memulai dengan EKS Hybrid Nodes gateway
Halaman ini memandu Anda melalui prasyarat, persiapan lingkungan, pemasangan, verifikasi, dan penghapusan gateway Amazon EKS Hybrid Nodes. Untuk pengenalan gateway dan arsitekturnya, lihatGerbang Node Hibrida Amazon EKS.
Prasyarat
Sebelum Anda menginstal gateway Hybrid Nodes, konfirmasikan bahwa lingkungan Anda memenuhi persyaratan berikut:
-
Cluster EKS dengan dukungan Cilium CNI dan VTEP — Cluster EKS Anda harus menggunakan versi EKS Cilium sebagai CNI pada node hibrida, dan Cilium VTEP harus diaktifkan. Untuk informasi selengkapnya, lihat Konfigurasikan CNI untuk gateway Hybrid Nodes.
-
AWS VPC CNI pada node cloud — Node gateway dan node cloud lainnya di cluster harus menggunakan AWS VPC CNI. Gateway bergantung pada VPC-native routing untuk meneruskan lalu lintas antara VPC dan terowongan VXLAN.
-
Konektivitas hibrida — Diperlukan koneksi pribadi antara VPC Anda dan lingkungan lokal. Anda dapat menggunakan AWS Direct Connect, AWS Site-to-Site VPN, atau solusi VPN Anda sendiri. Untuk informasi selengkapnya, lihat Mempersiapkan jaringan untuk node hybrid.
-
Lalu lintas VXLAN diizinkan — Grup keamanan yang dilampirkan ke instans EC2 gateway harus mengizinkan lalu lintas UDP masuk dan keluar pada port 8472. Di sisi node hybrid, aturan firewall lokal juga harus mengizinkan lalu lintas port UDP 8472 ke dan dari alamat IP node gateway.
-
Izin IAM untuk manajemen tabel rute - Gateway memerlukan tindakan EC2 berikut untuk mengelola tabel rute VPC:
-
ec2:DescribeRouteTables -
ec2:CreateRoute -
ec2:ReplaceRoute -
ec2:DescribeInstancesAnda dapat memberikan izin ini menggunakan salah satu pendekatan berikut:
-
-
Mode Otomatis EKS (jika menggunakan Mode Otomatis untuk node gateway) - Jika Anda berencana menggunakan Mode Otomatis EKS untuk menyediakan node gateway, Mode Otomatis harus diaktifkan pada cluster EKS Anda. Untuk informasi selengkapnya, lihat Mengaktifkan Mode Otomatis EKS.
Siapkan node gateway
Gateway membutuhkan setidaknya dua node EC2 untuk ketersediaan tinggi. Ada dua opsi konfigurasi node yang didukung untuk gateway:
-
Mode Otomatis EKS (disarankan)— Node disediakan secara otomatis menggunakan a
NodePooldanNodeClass. Source/destination cek, label, dan noda semuanya dikonfigurasi secara deklaratif. -
Grup simpul terkelola- Anda menyediakan node menggunakan grup node terkelola atau node yang dikelola sendiri. Label dapat dikonfigurasi melalui API grup node terkelola, dan source/destination cek dapat dinonaktifkan menggunakan template peluncuran khusus dengan data pengguna.
Mode Otomatis EKS (disarankan)
Saat menggunakan Mode Otomatis EKS, Anda harus membuat NodePool dan NodeClass sebelum menginstal bagan Helm. Ket NodePool entuan instans EC2 dengan label, noda, dan source/destination konfigurasi cek yang benar. Anda tidak perlu menyediakan atau mengkonfigurasi node secara manual.
Terapkan sumber daya berikut ke cluster Anda, menggantikan nilai placeholder:
-
YOUR_NODE_ROLE— Nama Node IAM Role yang digunakan oleh EKS Auto Mode untuk menyediakan node. Ini adalah peran yang Anda konfigurasikan (atau yang dibuat EKS) ketika Anda mengaktifkan Mode Otomatis pada cluster. Untuk informasi selengkapnya, lihat Membuat Peran IAM Node untuk Mode Otomatis EKS. -
YOUR_CLUSTER_NAME— Nama cluster EKS Anda. -
SUBNET_ID_1,SUBNET_ID_2— ID Subnet di Zona Ketersediaan yang berbeda di mana node gateway akan disediakan.
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
Bidang kunci dalam konfigurasi ini:
-
advancedNetworking.sourceDestCheck: DisabledPrimaryENI— Menonaktifkan source/destination pemeriksaan EC2 pada ENI utama node sehingga gateway dapat meneruskan lalu lintas yang tidak ditujukan ke dirinya sendiri. -
taints- Thybrid-gateway-node: NoScheduleaint memastikan hanya pod gateway dengan jadwal tolerasi yang cocok pada node ini. -
labels— Lhybrid-gateway-node: "true"abel digunakan oleh pemilih simpul bagan Helm untuk menargetkan pod gateway ke node ini. -
nodeClassRef— Menaut NodePool kan ke NodeClass dengan konfigurasi source/destination cek.
Grup simpul terkelola
Saat menggunakan grup node terkelola, buat grup node khusus untuk gateway dengan label yang diperlukan, noda, dan template peluncuran khusus yang menonaktifkan source/destination pemeriksaan saat peluncuran.
Langkah 1: Buat templat peluncuran
Buat template peluncuran dengan data pengguna yang menonaktifkan source/destination pemeriksaan pada ENI utama saat instance melakukan booting:
# 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}}"
catatan
Peran IAM node harus memiliki ec2:ModifyNetworkInterfaceAttribute izin agar skrip data pengguna berhasil. Format multipart MIME memastikan data pengguna berjalan bersama skrip bootstrap EKS.
Langkah 2: Buat grup node terkelola
Buat grup node terkelola khusus dengan label gateway, taint, dan template peluncuran dari Langkah 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"
Ini menciptakan grup node terkelola 2-node di mana:
-
--labelsmenetapkanhybrid-gateway-node=truesehingga pemilih simpul bagan Helm menargetkan node ini. -
--taintsmenambahkan noNoScheduleda jadi hanya pod gateway dengan jadwal tolerasi yang cocok pada node ini. -
--launch-templatemelampirkan template peluncuran yang menonaktifkan source/destination cek saat boot.
Gunakan subnet di Zona Ketersediaan yang berbeda untuk ketersediaan tinggi.
Instal dengan Helm
Mode Otomatis EKS
Jalankan perintah berikut untuk menginstal gateway dengan Mode Otomatis EKS:
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
Grup node terkelola atau node yang dikelola sendiri
Untuk grup node terkelola atau node yang dikelola sendiri, atur: 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
Nilai Helm yang diperlukan
Nilai-nilai berikut diperlukan untuk semua instalasi:
| Nilai | Deskripsi |
|---|---|
|
|
Blok CIDR dari VPC cluster EKS Anda (misalnya, |
|
|
Comma-separated daftar pod CIDR yang digunakan oleh Cilium pada node hibrida (misalnya, |
|
|
Comma-separated daftar ID tabel rute VPC untuk diprogram (misalnya, |
Untuk daftar lengkap nilai yang dapat dikonfigurasi, lihatReferensi konfigurasi gateway Amazon EKS Hybrid Nodes.
Verifikasi instalasi.
Setelah menginstal gateway, verifikasi bahwa itu berjalan dan sehat.
Periksa status pod
Konfirmasikan bahwa dua pod gateway sedang berjalan:
kubectl get pods -n eks-hybrid-nodes-gateway
Anda akan melihat output yang mirip dengan:
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
Periksa pemilihan pemimpin
Verifikasi bahwa satu pod telah memperoleh sewa pemilihan pemimpin:
kubectl get lease -n eks-hybrid-nodes-gateway
Output menunjukkan pemimpin saat ini di HOLDER kolom:
NAME HOLDER AGE hybrid-gateway-leader eks-hybrid-nodes-gateway-5d4f6a7b8c-abc12 2m
Periksa titik akhir kesehatan
Verifikasi titik akhir kesehatan merespons pada pod pemimpin menggunakan port-forwarding:
kubectl port-forward -n eks-hybrid-nodes-gatewayLEADER_POD_NAME8088:8088 & curl -s http://localhost:8088/healthz
Gateway yang sehat mengembalikan respons HTTP 200.
Verifikasi entri tabel rute VPC
Di konsol Amazon VPC atau menggunakan AWS CLI, konfirmasikan bahwa tabel rute VPC Anda berisi entri untuk CIDR pod hybrid yang menunjuk ke ENI instans gateway pemimpin:
aws ec2 describe-route-tables \ --route-table-idsROUTE_TABLE_ID\ --query "RouteTables[].Routes[?DestinationCidrBlock=='POD_CIDR']"
Setiap pod hybrid CIDR harus memiliki rute dengan NetworkInterfaceId set ke ENI utama instans pemimpin.
Hapus instalasi
Untuk menghapus gateway Hybrid Nodes, jalankan:
helm uninstall eks-hybrid-nodes-gateway --namespace eks-hybrid-nodes-gateway
catatan
Menghapus instalasi bagan Helm tidak secara otomatis menghapus entri tabel rute VPC yang dibuat oleh gateway. Setelah menghapus instalasi, hapus rute untuk CIDR pod hybrid Anda secara manual dari tabel rute VPC untuk menghindari perutean lalu lintas ke instans yang tidak lagi menjalankan gateway. Anda dapat menghapus rute menggunakan AWS CLI:
aws ec2 delete-route \ --route-table-idROUTE_TABLE_ID\ --destination-cidr-blockPOD_CIDR
Langkah selanjutnya
-
Referensi konfigurasi gateway Amazon EKS Hybrid Nodes— Sesuaikan nilai Helm, bendera CLI, dan parameter pemilihan pemimpin.
-
Operasi gateway Amazon EKS Hybrid Nodes— Pantau gateway, pahami perilaku failover, dan rencanakan penskalaan.
-
Pemecahan masalah gateway Node Hibrid Amazon EKS— Mendiagnosis dan menyelesaikan masalah umum.