

 **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
<a name="hybrid-nodes-gateway-getting-started"></a>

Halaman ini memandu Anda melalui prasyarat, persiapan lingkungan, pemasangan, verifikasi, dan penghapusan gateway Amazon EKS Hybrid Nodes. Untuk pengenalan gateway dan arsitekturnya, lihat[Gerbang Node Hibrida Amazon EKS](hybrid-nodes-gateway-overview.md).

## Prasyarat
<a name="hybrid-nodes-gateway-prerequisites"></a>

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](hybrid-nodes-gateway-cni.md).
+  ** 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](hybrid-nodes-networking.md).
+  **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:DescribeInstances` 

    Anda dapat memberikan izin ini menggunakan salah satu pendekatan berikut:

------
#### [ EKS Pod Identity (recommended) ]

    Gunakan [ EKS Pod Identi ](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html) ty untuk memberikan izin hanya ke akun layanan pod gateway.

    1. Instal add-on EKS Pod Identity Agent di cluster Anda jika belum diinstal:

       ```
       aws eks create-addon \
         --cluster-name {{CLUSTER_NAME}} \
         --addon-name eks-pod-identity-agent
       ```

    1. Buat peran IAM dengan izin EC2 yang diperlukan dan kebijakan kepercayaan untuk EKS Pod Identity:

       ```
       cat > gateway-trust-policy.json << 'EOF'
       {
         "Version": "2012-10-17" 		 	 	 ,
         "Statement": [
           {
             "Effect": "Allow",
             "Principal": { "Service": "pods.eks.amazonaws.com" },
             "Action": ["sts:AssumeRole", "sts:TagSession"]
           }
         ]
       }
       EOF
       
       aws iam create-role \
         --role-name EKSHybridNodesGatewayRole \
         --assume-role-policy-document file://gateway-trust-policy.json
       
       aws iam put-role-policy \
         --role-name EKSHybridNodesGatewayRole \
         --policy-name HybridNodesGatewayRouteTable \
         --policy-document '{
           "Version": "2012-10-17" 		 	 	 ,
           "Statement": [{
             "Effect": "Allow",
             "Action": [
               "ec2:DescribeRouteTables",
               "ec2:CreateRoute",
               "ec2:ReplaceRoute",
               "ec2:DescribeInstances"
             ],
             "Resource": "*"
           }]
         }'
       ```

    1. Buat asosiasi identitas pod yang menghubungkan peran IAM ke akun layanan gateway:

       ```
       aws eks create-pod-identity-association \
         --cluster-name {{CLUSTER_NAME}} \
         --namespace eks-hybrid-nodes-gateway \
         --service-account eks-hybrid-nodes-gateway \
         --role-arn {{arn:aws:iam::ACCOUNT_ID:role/EKSHybridNodesGatewayRole}}
       ```

------
#### [ Node IAM role ]

    Lampirkan kebijakan sebaris atau terkelola dengan izin yang diperlukan ke peran IAM yang terkait dengan profil instans node gateway:

    ```
    aws iam put-role-policy \
      --role-name {{NODE_ROLE_NAME}} \
      --policy-name HybridNodesGatewayRouteTable \
      --policy-document '{
        "Version": "2012-10-17" 		 	 	 ,
        "Statement": [{
          "Effect": "Allow",
          "Action": [
            "ec2:DescribeRouteTables",
            "ec2:CreateRoute",
            "ec2:ReplaceRoute",
            "ec2:DescribeInstances"
          ],
          "Resource": "*"
        }]
      }'
    ```

    Semua pod pada node gateway akan memiliki izin ini.

------
+  **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](https://docs.aws.amazon.com/eks/latest/userguide/migrate-auto.html).

## Siapkan node gateway
<a name="hybrid-nodes-gateway-prepare-nodes"></a>

Gateway membutuhkan setidaknya dua node EC2 untuk ketersediaan tinggi. Ada dua opsi konfigurasi node yang didukung untuk gateway:
+  [Mode Otomatis EKS (disarankan)](#hybrid-nodes-gateway-auto-mode-nodes)— Node disediakan secara otomatis menggunakan a `NodePool` dan`NodeClass`. Source/destination cek, label, dan noda semuanya dikonfigurasi secara deklaratif.
+  [Grup simpul terkelola](#hybrid-nodes-gateway-mng-nodes)- 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)
<a name="hybrid-nodes-gateway-auto-mode-nodes"></a>

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 ](https://docs.aws.amazon.com/eks/latest/userguide/auto-create-node-role.html) 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_ROLE}}
  securityGroupSelectorTerms:
    - tags:
        aws:eks:cluster-name: {{YOUR_CLUSTER_NAME}}
  subnetSelectorTerms:
    - 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`- T `hybrid-gateway-node: NoSchedule` aint memastikan hanya pod gateway dengan jadwal tolerasi yang cocok pada node ini.
+  `labels`— L `hybrid-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
<a name="hybrid-nodes-gateway-mng-nodes"></a>

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
<a name="_step_1_create_a_launch_template"></a>

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-name {{YOUR_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
<a name="_step_2_create_the_managed_node_group"></a>

Buat grup node terkelola khusus dengan label gateway, taint, dan template peluncuran dari Langkah 1:

```
aws eks create-nodegroup \
  --cluster-name {{YOUR_CLUSTER_NAME}} \
  --nodegroup-name {{YOUR_CLUSTER_NAME}}-gateway-nodes \
  --subnets {{SUBNET_ID_1 SUBNET_ID_2}} \
  --node-role {{YOUR_NODE_ROLE_ARN}} \
  --instance-types {{INSTANCE_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:
+  `--labels`menetapkan `hybrid-gateway-node=true` sehingga pemilih simpul bagan Helm menargetkan node ini.
+  `--taints`menambahkan no `NoSchedule` da jadi hanya pod gateway dengan jadwal tolerasi yang cocok pada node ini.
+  `--launch-template`melampirkan template peluncuran yang menonaktifkan source/destination cek saat boot.

Gunakan subnet di Zona Ketersediaan yang berbeda untuk ketersediaan tinggi.

## Instal dengan Helm
<a name="hybrid-nodes-gateway-install"></a>

### Mode Otomatis EKS
<a name="hybrid-nodes-gateway-install-auto"></a>

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
<a name="hybrid-nodes-gateway-install-mng"></a>

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
<a name="hybrid-nodes-gateway-required-values"></a>

Nilai-nilai berikut diperlukan untuk semua instalasi:


| Nilai | Deskripsi | 
| --- | --- | 
|  `vpcCIDR`  | Blok CIDR dari VPC cluster EKS Anda (misalnya,`10.0.0.0/16`). Digunakan untuk konfigurasi Cilium VTEP sehingga node hybrid merutekan VPC-bound lalu lintas melalui gateway. | 
|  `podCIDRs`  | Comma-separated daftar pod CIDR yang digunakan oleh Cilium pada node hibrida (misalnya,`10.100.0.0/16,10.101.0.0/16`). Gateway membuat entri tabel rute VPC dan rute VXLAN untuk CIDR ini. | 
|  `routeTableIDs`  | Comma-separated daftar ID tabel rute VPC untuk diprogram (misalnya,`rtb-0abc1234def567890,rtb-0fed9876cba543210`). Gateway membuat rute dalam tabel ini yang mengarahkan CIDR pod hybrid ke instance gateway aktif. | 

Untuk daftar lengkap nilai yang dapat dikonfigurasi, lihat[Referensi konfigurasi gateway Amazon EKS Hybrid Nodes](hybrid-nodes-gateway-configuration.md).

## Verifikasi instalasi.
<a name="hybrid-nodes-gateway-verify"></a>

Setelah menginstal gateway, verifikasi bahwa itu berjalan dan sehat.

### Periksa status pod
<a name="hybrid-nodes-gateway-verify-pods"></a>

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
<a name="hybrid-nodes-gateway-verify-leader"></a>

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
<a name="hybrid-nodes-gateway-verify-health"></a>

Verifikasi titik akhir kesehatan merespons pada pod pemimpin menggunakan port-forwarding:

```
kubectl port-forward -n eks-hybrid-nodes-gateway {{LEADER_POD_NAME}} 8088:8088 &
curl -s http://localhost:8088/healthz
```

Gateway yang sehat mengembalikan respons HTTP 200.

### Verifikasi entri tabel rute VPC
<a name="hybrid-nodes-gateway-verify-routes"></a>

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-ids {{ROUTE_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
<a name="hybrid-nodes-gateway-uninstall"></a>

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-id {{ROUTE_TABLE_ID}} \
  --destination-cidr-block {{POD_CIDR}}
```

## Langkah selanjutnya
<a name="hybrid-nodes-gateway-getting-started-next"></a>
+  [Referensi konfigurasi gateway Amazon EKS Hybrid Nodes](hybrid-nodes-gateway-configuration.md)— Sesuaikan nilai Helm, bendera CLI, dan parameter pemilihan pemimpin.
+  [Operasi gateway Amazon EKS Hybrid Nodes](hybrid-nodes-gateway-operations.md)— Pantau gateway, pahami perilaku failover, dan rencanakan penskalaan.
+  [Pemecahan masalah gateway Node Hibrid Amazon EKS](hybrid-nodes-gateway-troubleshooting.md)— Mendiagnosis dan menyelesaikan masalah umum.