

 **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.

# Buat IngressClass untuk mengonfigurasi Penyeimbang Beban Aplikasi
<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 Penyeimbang Beban Aplikasi, lihat [ Apa itu Elastic Load Balancing? ](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) 

Mode Otomatis EKS membuat dan mengonfigurasi Penyeimbang Beban Aplikasi (ALB). Misalnya, Mode Otomatis EKS membuat penyeimbang beban saat Anda membuat objek `Ingress` Kubernetes dan mengonfigurasinya untuk merutekan lalu lintas ke beban kerja cluster Anda.

 **Gambaran umum** 

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

1. Buat `IngressClassParams` sumber daya, menentukan nilai konfigurasi AWS tertentu seperti sertifikat yang akan digunakan untuk SSL/TLS dan Subnets 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 Cluster Amazon EKS
+ Kubectl dikonfigurasi untuk terhubung ke cluster Anda
  + Anda dapat menggunakan `kubectl apply -f <filename>` untuk menerapkan file konfigurasi YAML sampel di bawah ini ke cluster Anda.

**catatan**  
Mode Otomatis EKS memerlukan tag subnet untuk mengidentifikasi subnet publik dan pribadi.  
Jika Anda membuat cluster 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 penerapannya 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, kita membuat `IngressClassParams` sumber daya bernama `alb` (yang akan Anda gunakan pada langkah berikutnya) yang menentukan skema penyeimbang beban seperti `internet-facing` dalam file yang disebut`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 mereferensi AWS kan nilai konfigurasi 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 an `is-default-class` otasi 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 sumber daya ini adalah untuk mengaitkan jalur dan port pada Application Load Balancer dengan beban kerja di cluster Anda. Untuk contoh ini, kita membuat `Ingress` sumber daya bernama `2048-ingress` yang merutekan lalu lintas ke layanan bernama `service-2048` pada port 80.

Untuk informasi selengkapnya tentang mengkonfigurasi sumber daya 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 sumber `Ingress` 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` sumber daya.

## 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 menghadap ke internet |  `internet-facing`  | 
|  `namespaceSelector`  | Membatasi ruang nama mana yang dapat menggunakan ini IngressClass |  `environment: prod`  | 
|  `group.name`  | Mengelompokkan beberapa Ingress untuk berbagi satu ALB |  `retail-apps`  | 
|  `ipAddressType`  | Menetapkan jenis alamat IP untuk ALB |  `dualstack`  | 
|  `subnets.ids`  | Daftar ID subnet untuk penerapan ALB |  `subnet-xxxx, subnet-yyyy`  | 
|  `subnets.tags`  | Filter tag untuk memilih subnet untuk ALB |  `Environment: prod`  | 
|  `certificateARNs`  | ARN sertifikat SSL untuk digunakan |  ` arn:aws: acm:region:account:certificate/id`  | 
|  `tags`  | Tag kustom 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 a untuk mengkonfigurasi 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 AWS sumber daya Load Balancer. Untuk informasi selengkapnya, lihat [Khusus AWS tag untuk EKS Sumber daya otomatis](auto-cluster-iam-role.md#tag-prop).
+ Untuk informasi tentang mengaitkan sumber daya dengan Mode Otomatis EKS atau Load Balancer Controller yang dikelola sendiri AWS , 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 menggunakan kemampuan penyeimbangan beban 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 usang, 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`  | Dukungan untuk beberapa ARN sertifikat | 
|  `spec.subnets.tags`  |  `spec.subnets.matchTags`  | Skema pencocokan subnet yang diubah | 
|  `spec.listeners.listenerAttributes`  | Tidak didukung | Belum didukung oleh Mode Otomatis EKS | 

### Anotasi Ingress
<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/wafv2-acl-name`  | Tidak didukung | Segera datang | 
|  `alb.ingress.kubernetes.io/dry-run-plan`  | Tidak didukung | Dry-run paket saat ini tidak didukung | 
|  `alb.ingress.kubernetes.io/create-acm-cert`  | Tidak didukung | Pembuatan sertifikat ACM saat ini tidak didukung | 
|  `alb.ingress.kubernetes.io/acm-pca-arn`  | Tidak didukung | ACM PCA ARN saat ini tidak didukung | 
|  `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 tag eks: eks-cluster-name dengan nama cluster untuk memberikan pengontrol izin IAM yang diperlukan. Ketahuilah bahwa pengontrol akan menghapus grup target ketika TargetGroupBinding sumber daya atau cluster dihapus.