Menyebarkan Beban Kerja Sampel Load Balancer ke Mode Otomatis EKS - Amazon EKS

View a markdown version of this page

Menyebarkan Beban Kerja Sampel Load Balancer ke Mode Otomatis EKS - Amazon EKS

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

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

Prasyarat

  • Cluster Mode Otomatis EKS

  • kubectldikonfigurasi untuk berinteraksi dengan cluster Anda

  • Izin IAM yang sesuai untuk membuat sumber daya ALB

Langkah 1: Buat Namespace

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

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

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

Anda akan mengatur masuk untuk mengekspos aplikasi ke internet.

Pertama, buatIngressClass. 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 denganeksctl, Anda sudah memiliki tag ini.

Pelajari cara Tag subnet untuk Mode Otomatis EKS.

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

  1. Periksa apakah semua pod sedang berjalan:

    kubectl get pods -n game-2048
  2. Verifikasi layanan dibuat:

    kubectl get svc -n game-2048
  3. 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

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

Langkah 7: Pembersihan

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

  1. Penerapan membuat 5 pod yang menjalankan game 2048

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

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

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