

 **Bantu tingkatkan 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 **Edit halaman ini pada GitHub** tautan 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.

# Buat IngressClass untuk mengkonfigurasi Application Load Balancer
<a name="auto-configure-alb"></a>

Mode Otomatis EKS mengotomatiskan tugas rutin untuk penyeimbangan beban, termasuk mengekspos aplikasi cluster ke internet.

 AWS menyarankan menggunakan Application Load Balancers (ALB) untuk melayani lalu lintas HTTP dan HTTPS. Application Load Balancers dapat merutekan permintaan berdasarkan konten permintaan. Untuk informasi selengkapnya tentang Application Load Balancer, lihat [Apa itu Elastic](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) Load Balancing? 

EKS Auto Mode membuat dan mengkonfigurasi Application Load Balancers (). ALBs Misalnya, Mode Otomatis EKS membuat penyeimbang beban saat Anda membuat objek `Ingress` Kubernetes dan mengonfigurasinya untuk merutekan lalu lintas ke beban kerja klaster Anda.

 **Ikhtisar** 

1. Buat beban kerja yang ingin Anda ekspos ke internet.

1. Buat `IngressClassParams` sumber daya, tentukan nilai konfigurasi AWS tertentu seperti sertifikat yang akan digunakan untuk SSL/TLS dan Subnet VPC.

1. Buat `IngressClass` sumber daya, tentukan bahwa Mode Otomatis EKS akan menjadi pengontrol untuk sumber daya.

1. Buat `Ingress` sumber daya yang mengaitkan jalur HTTP dan port dengan beban kerja cluster.

Mode Otomatis EKS akan membuat Application Load Balancer yang menunjuk ke beban kerja yang ditentukan dalam `Ingress` sumber daya, menggunakan konfigurasi penyeimbang beban yang ditentukan dalam sumber daya. `IngressClassParams`

## Prasyarat
<a name="_prerequisites"></a>
+ Mode Otomatis EKS Diaktifkan di Amazon EKS Cluster
+ Kubectl dikonfigurasi untuk terhubung ke klaster Anda
  + Anda dapat menggunakan `kubectl apply -f <filename>` untuk menerapkan konfigurasi sampel file YAMAL di bawah ini ke cluster Anda.

**catatan**  
Mode Otomatis EKS memerlukan tag subnet untuk mengidentifikasi subnet publik dan pribadi.  
Jika Anda membuat cluster Anda dengan`eksctl`, Anda sudah memiliki tag ini.  
Pelajari cara [Tag subnet untuk Mode Otomatis EKS](tag-subnets-auto.md).

## Langkah 1: Buat beban kerja
<a name="_step_1_create_a_workload"></a>

Untuk memulai, buat beban kerja yang ingin Anda ekspos ke internet. Ini bisa berupa sumber daya Kubernetes yang melayani lalu lintas HTTP, seperti Deployment atau Service.

Contoh ini menggunakan layanan HTTP sederhana `service-2048` yang disebut yang mendengarkan pada port`80`. Buat layanan ini dan penyebarannya dengan menerapkan manifes berikut,`2048-deployment-service.yaml`:

```
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: deployment-2048
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: app-2048
  replicas: 2
  template:
    metadata:
      labels:
        app.kubernetes.io/name: app-2048
    spec:
      containers:
        - image: public.ecr.aws/l6m2t8p7/docker-2048:latest
          imagePullPolicy: Always
          name: app-2048
          ports:
            - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: service-2048
spec:
  ports:
    - port: 80
      targetPort: 80
      protocol: TCP
  type: NodePort
  selector:
    app.kubernetes.io/name: app-2048
```

Terapkan konfigurasi ke cluster Anda:

```
kubectl apply -f 2048-deployment-service.yaml
```

Sumber daya yang tercantum di atas akan dibuat di namespace default. Anda dapat memverifikasi ini dengan menjalankan perintah berikut:

```
kubectl get all -n default
```

## Langkah 2: Buat IngressClassParams
<a name="_step_2_create_ingressclassparams"></a>

Buat `IngressClassParams` objek untuk menentukan opsi konfigurasi AWS tertentu untuk Application Load Balancer. Dalam contoh ini, kami membuat `IngressClassParams` sumber daya bernama `alb` (yang akan Anda gunakan pada langkah berikutnya) yang menentukan skema penyeimbang beban seperti `internet-facing` dalam file bernama. `alb-ingressclassparams.yaml`

```
apiVersion: eks.amazonaws.com/v1
kind: IngressClassParams
metadata:
  name: alb
spec:
  scheme: internet-facing
```

Terapkan konfigurasi ke cluster Anda:

```
kubectl apply -f alb-ingressclassparams.yaml
```

## Langkah 3: Buat IngressClass
<a name="_step_3_create_ingressclass"></a>

Buat `IngressClass` yang mereferensikan nilai konfigurasi AWS tertentu yang ditetapkan dalam `IngressClassParams` sumber daya dalam file bernama`alb-ingressclass.yaml`. Perhatikan nama`IngressClass`. Dalam contoh ini, keduanya `IngressClass` dan `IngressClassParams` diberi nama`alb`.

Gunakan `is-default-class` anotasi untuk mengontrol apakah `Ingress` sumber daya harus menggunakan kelas ini secara default.

```
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
  name: alb
  annotations:
    # Use this annotation to set an IngressClass as Default
    # If an Ingress doesn't specify a class, it will use the Default
    ingressclass.kubernetes.io/is-default-class: "true"
spec:
  # Configures the IngressClass to use EKS Auto Mode
  controller: eks.amazonaws.com/alb
  parameters:
    apiGroup: eks.amazonaws.com
    kind: IngressClassParams
    # Use the name of the IngressClassParams set in the previous step
    name: alb
```

Untuk informasi selengkapnya tentang opsi konfigurasi, lihat[IngressClassParams Referensi](#ingress-reference).

Terapkan konfigurasi ke cluster Anda:

```
kubectl apply -f alb-ingressclass.yaml
```

## Langkah 4: Buat Ingress
<a name="_step_4_create_ingress"></a>

Buat `Ingress` sumber daya dalam file bernama`alb-ingress.yaml`. Tujuan dari sumber daya ini adalah untuk mengaitkan path dan port pada Application Load Balancer dengan beban kerja di cluster Anda. Untuk contoh ini, kami membuat `Ingress` sumber daya bernama `2048-ingress` yang merutekan lalu lintas ke layanan bernama `service-2048` pada port 80.

Untuk informasi selengkapnya tentang mengonfigurasi resource ini, lihat [Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/) di Dokumentasi Kubernetes.

```
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: 2048-ingress
spec:
  # this matches the name of IngressClass.
  # this can be omitted if you have a default ingressClass in cluster: the one with ingressclass.kubernetes.io/is-default-class: "true"  annotation
  ingressClassName: alb
  rules:
    - http:
        paths:
          - path: /*
            pathType: ImplementationSpecific
            backend:
              service:
                name: service-2048
                port:
                  number: 80
```

Terapkan konfigurasi ke cluster Anda:

```
kubectl apply -f alb-ingress.yaml
```

## Langkah 5: Periksa Status
<a name="_step_5_check_status"></a>

Gunakan `kubectl` untuk menemukan status`Ingress`. Diperlukan beberapa menit agar penyeimbang beban tersedia.

Gunakan nama `Ingress` sumber daya yang Anda tetapkan pada langkah sebelumnya. Contoh:

```
kubectl get ingress 2048-ingress
```

Setelah sumber daya siap, ambil nama domain penyeimbang beban.

```
kubectl get ingress 2048-ingress -o jsonpath='{.status.loadBalancer.ingress[0].hostname}'
```

Untuk melihat layanan di browser web, tinjau port dan jalur yang ditentukan dalam `Ingress` penyelamatan.

## Langkah 6: Pembersihan
<a name="_step_6_cleanup"></a>

Untuk membersihkan penyeimbang beban, gunakan perintah berikut:

```
kubectl delete ingress 2048-ingress
kubectl delete ingressclass alb
kubectl delete ingressclassparams alb
```

Mode Otomatis EKS akan secara otomatis menghapus penyeimbang beban terkait di AWS akun Anda.

## IngressClassParams Referensi
<a name="ingress-reference"></a>

Tabel di bawah ini adalah referensi cepat untuk opsi konfigurasi yang umum digunakan.


| Bidang | Deskripsi | Nilai contoh | 
| --- | --- | --- | 
|   `scheme`   |  Mendefinisikan apakah ALB bersifat internal atau berhadapan dengan internet  |   `internet-facing`   | 
|   `namespaceSelector`   |  Membatasi ruang nama mana yang dapat menggunakan ini IngressClass  |   `environment: prod`   | 
|   `group.name`   |  Kelompokkan beberapa Ingress untuk berbagi satu ALB  |   `retail-apps`   | 
|   `ipAddressType`   |  Menetapkan jenis alamat IP untuk ALB  |   `dualstack`   | 
|   `subnets.ids`   |  Daftar subnet IDs untuk penyebaran ALB  |   `subnet-xxxx, subnet-yyyy`   | 
|   `subnets.tags`   |  Tag filter untuk memilih subnet untuk ALB  |   `Environment: prod`   | 
|   `certificateARNs`   |  ARNs Sertifikat SSL untuk digunakan  |   ` arn:aws: acm:region:account:certificate/id`   | 
|   `tags`   |  Tag khusus untuk AWS sumber daya  |   `Environment: prod, Team: platform`   | 
|   `loadBalancerAttributes`   |  Atribut khusus penyeimbang beban  |   `idle_timeout.timeout_seconds: 60`   | 

## Pertimbangan-pertimbangan
<a name="_considerations"></a>
+ Anda tidak dapat menggunakan Anotasi pada IngressClass untuk mengonfigurasi penyeimbang beban dengan Mode Otomatis EKS. IngressClass konfigurasi harus dilakukan melalui IngressClassParams. Namun, Anda dapat menggunakan anotasi pada sumber daya Ingress individual untuk mengonfigurasi perilaku penyeimbang beban (seperti `alb.ingress.kubernetes.io/security-group-prefix-lists` atau). `alb.ingress.kubernetes.io/conditions.*`
+ Anda tidak dapat mengatur [ListenerAttribute](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_ListenerAttribute.html)dengan Mode Otomatis EKS.
+ Anda harus memperbarui Peran IAM Cluster untuk mengaktifkan propagasi tag dari Kubernetes ke sumber daya Load AWS Balancer. Untuk informasi selengkapnya, lihat [AWS Tag khusus untuk sumber daya EKS Auto](auto-learn-iam.md#tag-prop).
+ Untuk informasi tentang mengaitkan sumber daya dengan Mode Otomatis EKS atau Pengontrol Load AWS Balancer yang dikelola sendiri, lihat. [Referensi migrasi](migrate-auto.md#migration-reference)
+ Untuk informasi tentang memperbaiki masalah dengan penyeimbang beban, lihat. [Memecahkan Masalah Mode Otomatis EKS](auto-troubleshoot.md)
+ Untuk pertimbangan lebih lanjut tentang penggunaan kemampuan load balancing dari Mode Otomatis EKS, lihat. [Penyeimbangan beban](auto-networking.md#auto-lb-consider)

Tabel berikut memberikan perbandingan rinci perubahan, anotasi Ingress IngressClassParams, dan TargetGroupBinding konfigurasi untuk Mode Otomatis EKS. Tabel ini menyoroti perbedaan utama antara kemampuan penyeimbangan beban Mode Otomatis EKS dan pengontrol penyeimbang beban sumber terbuka, termasuk perubahan versi API, fitur yang tidak digunakan lagi, dan nama parameter yang diperbarui.

### IngressClassParams
<a name="_ingressclassparams"></a>


| Sebelumnya | Baru | Deskripsi | 
| --- | --- | --- | 
|   `elbv2.k8s.aws/v1beta1`   |   `eks.amazonaws.com/v1`   |  Perubahan versi API  | 
|   `spec.certificateArn`   |   `spec.certificateARNs`   |  Support untuk beberapa sertifikat ARNs  | 
|   `spec.subnets.tags`   |   `spec.subnets.matchTags`   |  Skema pencocokan subnet yang diubah  | 
|   `spec.listeners.listenerAttributes`   |  Tidak didukung  |  Belum didukung oleh Mode Otomatis EKS  | 

### Anotasi masuk
<a name="_ingress_annotations"></a>


| Sebelumnya | Baru | Deskripsi | 
| --- | --- | --- | 
|   `kubernetes.io/ingress.class`   |  Tidak didukung  |  Gunakan `spec.ingressClassName` pada objek Ingress  | 
|   `alb.ingress.kubernetes.io/group.name`   |  Tidak didukung  |  Tentukan grup IngressClass hanya  | 
|   `alb.ingress.kubernetes.io/waf-acl-id`   |  Tidak didukung  |  Gunakan WAF v2 sebagai gantinya  | 
|   `alb.ingress.kubernetes.io/web-acl-id`   |  Tidak didukung  |  Gunakan WAF v2 sebagai gantinya  | 
|   `alb.ingress.kubernetes.io/shield-advanced-protection`   |  Tidak didukung  |  Integrasi Shield dinonaktifkan  | 
|   `alb.ingress.kubernetes.io/auth-type: oidc`   |  Tidak didukung  |  Jenis Auth OIDC saat ini tidak didukung  | 

### TargetGroupBinding
<a name="_targetgroupbinding"></a>


| Sebelumnya | Baru | Deskripsi | 
| --- | --- | --- | 
|   `elbv2.k8s.aws/v1beta1`   |   `eks.amazonaws.com/v1`   |  Perubahan versi API  | 
|   `spec.targetType`opsional  |   `spec.targetType`diperlukan  |  Spesifikasi tipe target eksplisit  | 
|   `spec.networking.ingress.from`   |  Tidak didukung  |  Tidak lagi mendukung NLB tanpa grup keamanan  | 

Untuk menggunakan TargetGroupBinding fitur kustom, Anda harus menandai grup target dengan eks-cluster-name tag eks: dengan nama cluster untuk memberikan pengontrol izin IAM yang diperlukan. Ketahuilah bahwa pengontrol akan menghapus grup target saat TargetGroupBinding sumber daya atau cluster dihapus.