Bantu tingkatkan halaman ini
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Ingin berkontribusi pada panduan pengguna ini? Gulir ke bagian bawah halaman ini dan pilih Edit halaman ini GitHub. Kontribusi Anda akan membantu membuat panduan pengguna kami lebih baik untuk semua orang.
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mulai cepat: Menyebarkan aplikasi web dan menyimpan data
Terapkan aplikasi game dan pertahankan datanya di Amazon EKS
Tutorial quickstart ini menunjukkan langkah-langkah untuk menyebarkan aplikasi contoh game 2048 dan mempertahankan datanya di cluster Amazon EKS Auto Mode menggunakan eksctl.
Saat kami maju, kami akan memandu Anda melalui proses pengaturan cluster. Amazon EKS Auto Mode akan mengotomatiskan tugas untuk membuat node menggunakan instance EC2 terkelola, membuat penyeimbang beban aplikasi, dan membuat EBS volume.
Secara keseluruhan, Anda akan menerapkan beban kerja sampel dengan anotasi khusus yang diperlukan untuk sepenuhnya berintegrasi dengan layanan. AWS
Dalam tutorial ini
Menggunakan template eksctl
cluster berikut, Anda akan membangun sebuah cluster dengan Mode EKS Otomatis untuk penyediaan node otomatis.
VPCKonfigurasi Saat menggunakan template cluster eksctl yang mengikuti, eksctl secara otomatis membuat IPv4 Virtual Private Cloud () untuk cluster. VPC Secara default, eksctl mengonfigurasi a VPC yang menangani semua persyaratan jaringan, selain membuat titik akhir publik dan pribadi.
Mode EKS Otomatis Manajemen Instance secara dinamis menambahkan atau menghapus node di EKS klaster Anda berdasarkan permintaan aplikasi Kubernetes Anda.
Persistensi Data Gunakan kemampuan penyimpanan blok Mode EKS Otomatis untuk memastikan persistensi data aplikasi, bahkan dalam skenario yang melibatkan restart atau kegagalan pod.
Akses Aplikasi Eksternal Gunakan kemampuan load balancing Mode EKS Otomatis untuk menyediakan Application Load ALB Balancer () secara dinamis.
Prasyarat
Sebelum memulai, pastikan Anda memiliki prasyarat berikut yang disiapkan untuk menggunakan Amazon: EKS
-
Siapkan AWS CLI dan konfigurasikan kredensil
-
Instal eksctl
-
Instal kubectl
Untuk informasi selengkapnya, lihat Siapkan untuk menggunakan Amazon EKS.
Konfigurasikan cluster
Di bagian ini, Anda akan membuat cluster menggunakan Mode EKS Otomatis untuk penyediaan node dinamis.
Buat cluster-config.yaml
file dan tempel konten berikut ke dalamnya. Ganti region-code
dengan Region yang valid, sepertius-east-1
:
apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: web-quickstart region: <region-code> autoModeConfig: enabled: true
Sekarang, kita siap untuk membuat cluster.
Buat EKS cluster Amazon:
eksctl create cluster -f cluster-config.yaml
penting
Jika Anda tidak menggunakan eksctl untuk membuat cluster, Anda perlu menandai subnet secara manual. VPC
Buat IngressClass
Buat Kubernetes IngressClass
untuk EKS Mode Otomatis. Ini IngressClass mendefinisikan bagaimana Mode EKS Otomatis menangani sumber daya Ingress. Langkah ini mengonfigurasi kemampuan load balancing Mode EKS Otomatis. Ketika Anda membuat sumber daya Ingress untuk aplikasi Anda, Mode EKS Otomatis menggunakan ini IngressClass untuk secara otomatis menyediakan dan mengelola load balancer, mengintegrasikan aplikasi Kubernetes Anda dengan layanan load balancing. AWS
Simpan file yaml berikut sebagaiingressclass.yaml
:
apiVersion: networking.k8s.io/v1 kind: IngressClass metadata: name: alb annotations: ingressclass.kubernetes.io/is-default-class: "true" spec: controller: eks.amazonaws.com/alb
Terapkan IngressClass ke cluster Anda:
kubectl apply -f ingressclass.yaml
Menyebarkan aplikasi sampel game 2048
Di bagian ini, kami memandu Anda melalui langkah-langkah untuk menyebarkan “game 2048" yang populer sebagai contoh aplikasi di dalam cluster. Manifes yang disediakan mencakup anotasi khusus untuk Application Load Balancer ALB (). Anotasi ini terintegrasi dengan dan menginstruksikan EKS untuk menangani HTTP lalu lintas masuk sebagai “menghadap ke internet” dan mengarahkannya ke layanan yang sesuai di namespace 'game-2048' menggunakan tipe target “ip”.
-
Buat namespace Kubernetes yang dipanggil dengan bendera.
game-2048
--save-config
kubectl create namespace game-2048 --save-config
Anda akan melihat output respons berikut:
namespace/game-2048 created
-
Menyebarkan aplikasi Contoh Game 2048
. kubectl apply -n game-2048 -f https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.8.0/docs/examples/2048/2048_full.yaml
Manifes ini menyiapkan Deployment, Service, dan Ingress Kubernetes untuk
game-2048
namespace, menciptakan sumber daya yang diperlukan untuk menyebarkan dan mengekspos aplikasi di dalam klaster.game-2048
Ini mencakup pembuatan layanan bernamaservice-2048
yang mengekspos penyebaran pada port80
, dan sumber daya Ingress bernamaingress-2048
yang mendefinisikan aturan routing untuk HTTP lalu lintas masuk dan anotasi untuk Application Load Balancer () yang menghadap ke internet. ALB Anda akan melihat output respons berikut:namespace/game-2048 configured deployment.apps/deployment-2048 created service/service-2048 created ingress.networking.k8s.io/ingress-2048 created
-
Jalankan perintah berikut untuk mendapatkan sumber daya Ingress untuk
game-2048
namespace.kubectl get ingress -n game-2048
Anda akan melihat output respons berikut:
NAME CLASS HOSTS ADDRESS PORTS AGE ingress-2048 alb * k8s-game2048-ingress2-eb379a0f83-378466616.
region-code
.elb.amazonaws.com 80 31sAnda harus menunggu beberapa menit untuk Application Load Balancer (ALB) untuk menyediakan sebelum Anda memulai langkah-langkah berikut.
-
Buka browser web dan masukkan
ADDRESS
dari langkah sebelumnya untuk mengakses aplikasi web. Sebagai contoh:k8s-game2048-ingress2-eb379a0f83-378466616.
region-code
.elb.amazonaws.com.rproxy.goskope.comAnda akan melihat game 2048 di browser Anda. Mainkan!
Pertahankan Data menggunakan Mode EKS Otomatis Amazon
Sekarang game 2048 sudah aktif dan berjalan di EKS cluster Amazon Anda, saatnya untuk memastikan bahwa data game Anda disimpan dengan aman menggunakan kemampuan penyimpanan blok Amazon EKS Auto Mode.
-
Buat file bernama
storage-class.yaml
:apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: auto-ebs-sc annotations: storageclass.kubernetes.io/is-default-class: "true" provisioner: ebs.csi.eks.amazonaws.com volumeBindingMode: WaitForFirstConsumer parameters: type: gp3 encrypted: "true"
-
Terapkan StorageClass:
kubectl apply -f storage-class.yaml
-
Buat Klaim Volume Persisten (PVC) untuk meminta penyimpanan data game Anda. Buat file bernama
ebs-pvc.yaml
dan tambahkan konten berikut ke dalamnya:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: game-data-pvc namespace: game-2048 spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi storageClassName: auto-ebs-sc
-
Terapkan PVC ke cluster Anda:
kubectl apply -f ebs-pvc.yaml
Anda akan melihat output respons berikut:
persistentvolumeclaim/game-data-pvc created
-
Sekarang, Anda perlu memperbarui penyebaran game 2048 Anda untuk menggunakan ini PVC untuk menyimpan data. Penerapan berikut dikonfigurasi untuk menggunakan PVC untuk menyimpan data game. Buat file bernama
ebs-deployment.yaml
dan tambahkan konten berikut ke dalamnya:apiVersion: apps/v1 kind: Deployment metadata: namespace: game-2048 name: deployment-2048 spec: replicas: 3 # Adjust the number of replicas as needed selector: matchLabels: app.kubernetes.io/name: app-2048 template: metadata: labels: app.kubernetes.io/name: app-2048 spec: containers: - name: app-2048 image: public.ecr.aws/l6m2t8p7/docker-2048:latest imagePullPolicy: Always ports: - containerPort: 80 volumeMounts: - name: game-data mountPath: /var/lib/2048 volumes: - name: game-data persistentVolumeClaim: claimName: game-data-pvc
-
Terapkan penerapan yang diperbarui:
kubectl apply -f ebs-deployment.yaml
Anda akan melihat output respons berikut:
deployment.apps/deployment-2048 configured
Dengan langkah-langkah ini, game 2048 Anda di cluster sekarang diatur untuk mempertahankan data menggunakan kemampuan penyimpanan blok Amazon EKS Auto Mode. Ini memastikan bahwa kemajuan dan data game Anda aman bahkan jika terjadi kegagalan pod atau node.
Jika Anda menyukai tutorial ini, beri tahu kami dengan memberikan umpan balik sehingga kami dapat memberi Anda lebih banyak tutorial mulai cepat khusus kasus penggunaan seperti ini.
Hapus cluster dan node
Setelah Anda selesai dengan cluster yang Anda buat untuk tutorial ini, Anda harus membersihkan dengan menghapus cluster dengan perintah berikut. Jika Anda ingin melakukan lebih banyak hal dengan cluster ini sebelum Anda membersihkan, lihat Langkah selanjutnya.
eksctl delete cluster -f ./cluster-config.yaml
EKSakan secara otomatis membersihkan node apa pun yang disediakannya saat cluster dihapus.