Mulai cepat: Menyebarkan aplikasi web dan menyimpan data - Amazon EKS

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. Amazon EKS Auto Mode mengotomatiskan tugas rutin untuk penyimpanan blok cluster, jaringan, penyeimbangan beban, dan penskalaan otomatis komputasi.

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

  1. 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
  2. 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 bernama service-2048 yang mengekspos penyebaran pada port80, dan sumber daya Ingress bernama ingress-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
  3. 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 31s

    Anda harus menunggu beberapa menit untuk Application Load Balancer (ALB) untuk menyediakan sebelum Anda memulai langkah-langkah berikut.

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

    Anda akan melihat game 2048 di browser Anda. Mainkan!

    Mainkan game 2048

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.

  1. 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"
  2. Terapkan StorageClass:

    kubectl apply -f storage-class.yaml
  3. 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
  4. Terapkan PVC ke cluster Anda:

    kubectl apply -f ebs-pvc.yaml

    Anda akan melihat output respons berikut:

    persistentvolumeclaim/game-data-pvc created
  5. 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
  6. 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.

📝 Edit halaman ini GitHub