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.
Panduan ini memandu Anda melalui penerapan versi kontainer dari game 2048 di Amazon EKS, lengkap dengan penyeimbangan beban dan aksesibilitas internet.
Prasyarat
-
Kluster Mode Otomatis EKS
-
kubectl
dikonfigurasi 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: Menyebarkan Aplikasi
Aplikasi ini menjalankan beberapa replika dari kontainer 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.
Komponen kunci:
-
Menyebarkan 5 replika aplikasi
-
Menggunakan gambar ECR publik
-
Meminta 0,5 inti CPU per pod
-
Mengekspos port 80 untuk lalu lintas HTTP
Terapkan penyebaran:
kubectl apply -f 02-deployment.yaml
Langkah 3: Buat Layanan
Layanan mengekspos penyebaran 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
type: NodePort
selector:
app.kubernetes.io/name: app-2048
Komponen kunci:
-
Menciptakan NodePort layanan
-
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 ingress untuk mengekspos aplikasi ke internet.
Pertama, buatIngressClass
. Buat file bernama 04-ingressclass.yaml
:
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
namespace: game-2048
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 Anda 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:
-
Menciptakan ALB yang menghadap ke internet
-
Menggunakan tipe target IP untuk routing pod langsung
-
Rutekan semua lalu lintas (/) ke layanan game
Terapkan konfigurasi ingress:
kubectl apply -f 04-ingressclass.yaml kubectl apply -f 05-ingress.yaml
Langkah 5: Verifikasi Deployment
-
Periksa apakah semua pod berjalan:
kubectl get pods -n game-2048
-
Verifikasi layanan dibuat:
kubectl get svc -n game-2048
-
Dapatkan titik akhir ALB:
kubectl get ingress -n game-2048
Bidang ADDRESS pada keluaran ingress akan menampilkan endpoint ALB Anda. Tunggu 2-3 menit hingga ALB menyediakan dan mendaftarkan semua target.
Langkah 6: Akses Game
Buka browser web Anda dan telusuri URL endpoint ALB dari langkah sebelumnya. Anda akan 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 ingress.
Apa yang Terjadi Di Balik Layar
-
Deployment menciptakan 5 pod yang menjalankan game 2048
-
Layanan ini menyediakan akses jaringan yang stabil ke pod ini
-
Mode Otomatis EKS:
-
Membuat Application Load Balancer di AWS
-
Mengonfigurasi grup target untuk pod
-
Menyiapkan aturan perutean untuk mengarahkan lalu lintas ke layanan
-
Pemecahan Masalah
Jika game tidak dimuat:
-
Pastikan semua pod berjalan:
kubectl get pods -n game-2048
-
Periksa status masuknya:
kubectl describe ingress -n game-2048
-
Verifikasi pemeriksaan kesehatan ALB: Periksa kesehatan grup target di Konsol AWS