

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

# Menyebarkan Beban Kerja Sampel Load Balancer ke Mode Otomatis EKS
<a name="auto-elb-example"></a>

Panduan ini memandu Anda melalui penerapan versi kontainer dari game 2048 di Amazon EKS, lengkap dengan penyeimbangan beban dan aksesibilitas internet.

## Prasyarat
<a name="_prerequisites"></a>
+ Cluster Mode Otomatis EKS
+  `kubectl`dikonfigurasi untuk berinteraksi dengan cluster Anda
+ Izin IAM yang sesuai untuk membuat sumber daya ALB

## Langkah 1: Buat Namespace
<a name="_step_1_create_the_namespace"></a>

Pertama, buat namespace khusus untuk aplikasi game 2048.

Buat file bernama `01-namespace.yaml`:

```
apiVersion: v1
kind: Namespace
metadata:
  name: game-2048
```

Terapkan konfigurasi namespace:

```
kubectl apply -f 01-namespace.yaml
```

## Langkah 2: Terapkan Aplikasi
<a name="_step_2_deploy_the_application"></a>

Aplikasi ini menjalankan beberapa replika dari wadah game 2048.

Buat file bernama `02-deployment.yaml`:

```
apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: game-2048
  name: deployment-2048
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: app-2048
  replicas: 5
  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
          resources:
            requests:
              cpu: "0.5"
```

**catatan**  
Jika Anda menerima kesalahan saat memuat gambar`public.ecr.aws/l6m2t8p7/docker-2048:latest`, konfirmasikan peran IAM Node Anda memiliki izin yang cukup untuk menarik gambar dari ECR. Untuk informasi selengkapnya, lihat [IAM role simpul](auto-learn-iam.md#auto-learn-node-iam-role). Juga, `docker-2048` gambar dalam contoh adalah `x86_64` gambar dan tidak akan berjalan pada arsitektur lain.

 **Komponen kunci: ** 
+ Menyebarkan 5 replika aplikasi
+ Menggunakan gambar ECR publik
+ Meminta 0,5 core CPU per pod
+ Mengekspos port 80 untuk lalu lintas HTTP

Terapkan penerapan:

```
kubectl apply -f 02-deployment.yaml
```

## Langkah 3: Buat Layanan
<a name="_step_3_create_the_service"></a>

Layanan mengekspos penerapan ke jaringan cluster.

Buat file bernama `03-service.yaml`:

```
apiVersion: v1
kind: Service
metadata:
  namespace: game-2048
  name: service-2048
spec:
  ports:
    - port: 80
      targetPort: 80
      protocol: TCP
  selector:
    app.kubernetes.io/name: app-2048
```

 **Komponen kunci: ** 
+ Membuat layanan ClusterIP
+ Memetakan port 80 ke port kontainer 80
+ Menggunakan pemilih label untuk menemukan pod

Terapkan layanan:

```
kubectl apply -f 03-service.yaml
```

## Langkah 4: Konfigurasikan Load Balancing
<a name="_step_4_configure_load_balancing"></a>

Anda akan mengatur masuk untuk mengekspos aplikasi ke internet.

Pertama, buat`IngressClass`. Buat file bernama `04-ingressclass.yaml`:

```
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
  labels:
    app.kubernetes.io/name: LoadBalancerController
  name: alb
spec:
  controller: eks.amazonaws.com/alb
```

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

Kemudian buat sumber daya Ingress. Buat file bernama `05-ingress.yaml`:

```
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  namespace: game-2048
  name: ingress-2048
  annotations:
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: ip
spec:
  ingressClassName: alb
  rules:
    - http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: service-2048
                port:
                  number: 80
```

 **Komponen kunci: ** 
+ Membuat ALB yang menghadap ke internet
+ Menggunakan tipe target IP untuk routing pod langsung
+ Merutekan semua lalu lintas (/) ke layanan game

Terapkan konfigurasi masuk:

```
kubectl apply -f 04-ingressclass.yaml
kubectl apply -f 05-ingress.yaml
```

## Langkah 5: Verifikasi Penerapan
<a name="_step_5_verify_the_deployment"></a>

1. Periksa apakah semua pod sedang berjalan:

   ```
   kubectl get pods -n game-2048
   ```

1. Verifikasi layanan dibuat:

   ```
   kubectl get svc -n game-2048
   ```

1. Dapatkan titik akhir ALB:

   ```
   kubectl get ingress -n game-2048
   ```

Bidang ADDRESS dalam output masuk akan menampilkan titik akhir ALB Anda. Tunggu 2-3 menit agar ALB menyediakan dan mendaftarkan semua target.

## Langkah 6: Akses Game
<a name="_step_6_access_the_game"></a>

Buka browser web Anda dan telusuri ke URL titik akhir ALB dari langkah sebelumnya. Anda harus melihat antarmuka game 2048.

## Langkah 7: Pembersihan
<a name="_step_7_cleanup"></a>

Untuk menghapus semua sumber daya yang dibuat dalam tutorial ini:

```
kubectl delete namespace game-2048
```

Ini akan menghapus semua sumber daya di namespace, termasuk penerapan, layanan, dan sumber daya masuk.

## Apa yang Terjadi Di Balik Layar
<a name="_whats_happening_behind_the_scenes"></a>

1. Penerapan membuat 5 pod yang menjalankan game 2048

1. Layanan ini menyediakan akses jaringan yang stabil ke pod ini

1. Mode Otomatis EKS:
   + Membuat Penyeimbang Beban Aplikasi di AWS 
   + Mengkonfigurasi grup target untuk pod
   + Menyiapkan aturan routing untuk mengarahkan lalu lintas ke layanan

## Pemecahan masalah
<a name="auto-elb-troubleshooting"></a>

Jika game tidak dimuat:
+ Pastikan semua pod berjalan: `kubectl get pods -n game-2048` 
+ Periksa status masuk: `kubectl describe ingress -n game-2048` 
+ Verifikasi pemeriksaan kesehatan ALB: Periksa kesehatan kelompok target di Kon AWS sol