Memulai dengan AWS Fargate menggunakan Amazon EKS - Amazon EKS

Bantu tingkatkan halaman ini

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.

Memulai dengan AWS Fargate menggunakan Amazon EKS

penting

AWS Fargate dengan Amazon EKS tidak tersedia di AWS GovCloud (AS-Timur) dan AWS GovCloud (AS-Barat).

Topik ini menjelaskan cara memulai menjalankan Pods kluster Amazon EKS Anda. AWS Fargate

Jika Anda membatasi akses ke titik akhir publik klaster Anda menggunakan blok CIDR, sebaiknya Anda juga mengaktifkan akses titik akhir pribadi. Dengan cara ini, Fargate Pods dapat berkomunikasi dengan cluster. Tanpa mengaktifkan titik akhir pribadi, blok CIDR yang Anda tentukan untuk akses publik harus menyertakan sumber keluar dari VPC Anda. Untuk informasi selengkapnya, lihat Kontrol akses jaringan ke titik akhir server API cluster.

Prasyarat

Sebuah klaster yang sudah ada. Jika Anda belum memiliki cluster Amazon EKS, lihatMemulai dengan Amazon EKS.

Pastikan node yang ada dapat berkomunikasi dengan Fargate Pods

Jika Anda bekerja dengan cluster baru tanpa node, atau cluster dengan hanya grup node terkelola, Anda dapat melompat keBuat peran eksekusi Fargate Pod.

Asumsikan bahwa Anda bekerja dengan cluster yang sudah ada yang sudah memiliki node yang terkait dengannya. Pastikan bahwa Pods pada node ini dapat berkomunikasi secara bebas dengan Pods yang berjalan di Fargate. Podsyang berjalan di Fargate secara otomatis dikonfigurasi untuk menggunakan grup keamanan cluster untuk cluster yang terkait dengannya. Pastikan bahwa setiap node yang ada di cluster Anda dapat mengirim dan menerima lalu lintas ke dan dari grup keamanan klaster. Grup simpul terkelolasecara otomatis dikonfigurasi untuk menggunakan grup keamanan cluster juga, jadi Anda tidak perlu memodifikasi atau memeriksa kompatibilitas ini.

Untuk grup node yang sudah ada yang dibuat dengan eksctl atau AWS CloudFormation templat terkelola Amazon EKS, Anda dapat menambahkan grup keamanan klaster ke node secara manual. Atau, sebagai alternatif, Anda dapat memodifikasi templat peluncuran grup Auto Scaling untuk grup node untuk melampirkan grup keamanan klaster ke instance. Untuk informasi selengkapnya, lihat Mengubah grup keamanan dari instans dalam Panduan Pengguna Amazon VPC.

Anda dapat memeriksa grup keamanan untuk klaster Anda AWS Management Console di bagian bawah Jaringan untuk cluster. Atau, Anda dapat melakukan ini menggunakan AWS CLI perintah berikut. Saat menggunakan perintah ini, ganti my-cluster dengan nama cluster Anda.

aws eks describe-cluster --name my-cluster --query cluster.resourcesVpcConfig.clusterSecurityGroupId

Buat peran eksekusi Fargate Pod

Saat kluster Pods Anda AWS Fargate aktif, komponen yang berjalan di infrastruktur Fargate harus melakukan panggilan ke AWS API atas nama Anda. Peran Pod eksekusi Amazon EKS memberikan izin IAM untuk melakukan ini. Untuk membuat peran AWS Fargate Pod eksekusi, lihatPeran IAM Pod eksekusi Amazon EKS.

catatan

Jika Anda membuat klaster dengan eksctl menggunakan --fargate opsi, klaster Anda sudah memiliki peran Pod eksekusi yang dapat Anda temukan di konsol IAM dengan pola eksctl-my-cluster-FargatePodExecutionRole-ABCDEFGHIJKL tersebut. Demikian pula, jika Anda menggunakan eksctl untuk membuat profil Fargate Anda, eksctl buat peran Pod eksekusi Anda jika belum dibuat.

Buat profil Fargate untuk klaster Anda

Sebelum Anda dapat menjadwalkan Pods yang berjalan di Fargate di cluster Anda, Anda harus menentukan profil Fargate yang menentukan mana yang Pods menggunakan Fargate saat diluncurkan. Untuk informasi selengkapnya, lihat AWS Fargate profil.

catatan

Jika Anda membuat cluster Anda dengan eksctl menggunakan --fargate opsi, maka profil Fargate sudah dibuat untuk klaster Anda dengan pemilih untuk semua Pods di dan ruang nama. kube-system default Gunakan prosedur berikut untuk membuat profil Fargate untuk namespaces lain yang ingin Anda gunakan dengan Fargate.

Anda dapat membuat profil Fargate menggunakan eksctl atau AWS Management Console.

eksctl

Prosedur ini membutuhkan eksctl versi 0.184.0 atau yang lebih baru. Anda dapat memeriksa versi Anda dengan perintah berikut:

eksctl version

Untuk petunjuk tentang cara menginstal atau meningkatkaneksctl, lihat Instalasi dalam eksctl dokumentasi.

Untuk membuat profil Fargate dengan eksctl

Buat profil Fargate Anda dengan eksctl perintah berikut, ganti masing-masing example value dengan nilai Anda sendiri. Anda diminta untuk menentukan namespace. Namun, --labels opsi tidak diperlukan.

eksctl create fargateprofile \ --cluster my-cluster \ --name my-fargate-profile \ --namespace my-kubernetes-namespace \ --labels key=value

Anda dapat menggunakan wildcard tertentu untuk my-kubernetes-namespace dan key=value label. Untuk informasi selengkapnya, lihat Wildcard profil Fargate.

AWS Management Console
Untuk membuat profil Fargate untuk cluster dengan AWS Management Console
  1. Buka konsol Amazon EKS di https://console.aws.amazon.com/eks/home#/clusters.

  2. Pilih klaster untuk membuat profil Fargate untuk.

  3. Pilih tab Compute.

  4. Di bawah Profil Fargate, pilih Tambahkan profil Fargate.

  5. Pada halaman profil Konfigurasi Fargate, lakukan hal berikut:

    1. Untuk Nama, masukkan nama untuk profil Fargate Anda. Nama harus unik.

    2. Untuk peran eksekusi Pod, pilih peran Pod eksekusi yang akan digunakan dengan profil Fargate Anda. Hanya peran IAM dengan kepala eks-fargate-pods.amazonaws.com layanan yang ditampilkan. Jika Anda tidak melihat peran apa pun yang terdaftar, Anda harus membuatnya. Untuk informasi selengkapnya, lihat Peran IAM Pod eksekusi Amazon EKS.

    3. Ubah Subnet yang dipilih sesuai kebutuhan.

      catatan

      Hanya subnet pribadi yang didukung untuk Pods yang berjalan di Fargate.

    4. Untuk Tandai, Anda dapat menandai profil Fargate Anda secara opsional. Tag ini tidak menyebar ke sumber daya lain yang terkait dengan profil sepertiPods.

    5. Pilih Selanjutnya.

  6. Pada halaman Podpilihan Konfigurasi, lakukan hal berikut:

    1. Untuk Namespace, masukkan namespace yang cocok. Pods

      • Anda dapat menggunakan ruang nama tertentu untuk mencocokkan, seperti kube-system atau. default

      • Anda dapat menggunakan wildcard tertentu (misalnya,prod-*) untuk mencocokkan beberapa ruang nama (misalnya, prod-deployment dan). prod-test Untuk informasi selengkapnya, lihat Wildcard profil Fargate.

    2. (Opsional) Tambahkan Kubernetes label ke pemilih. Secara khusus menambahkannya ke salah satu yang perlu Pods dicocokkan dengan namespace yang ditentukan.

      • Anda dapat menambahkan label infrastructure: fargate ke pemilih sehingga hanya Pods di namespace yang ditentukan yang juga memiliki infrastructure: fargate Kubernetes label cocok dengan pemilih.

      • Anda dapat menggunakan wildcard tertentu (misalnya,key?: value?) untuk mencocokkan beberapa ruang nama (misalnya, keya: valuea dan). keyb: valueb Untuk informasi selengkapnya, lihat Wildcard profil Fargate.

    3. Pilih Berikutnya.

  7. Pada halaman Periksa dan buat, tinjau informasi untuk profil Fargate Anda dan pilih Buat.

Perbarui CoreDNS

Secara default, CoreDNS dikonfigurasi untuk berjalan di infrastruktur Amazon EC2 di kluster Amazon EKS. Jika Anda hanya ingin menjalankan Pods di Fargate di cluster Anda, selesaikan langkah-langkah berikut.

catatan

Jika Anda membuat cluster Anda dengan eksctl menggunakan --fargate opsi, maka Anda dapat melompat keLangkah selanjutnya.

  1. Buat profil Fargate untuk CoreDNS dengan perintah berikut. Ganti my-cluster dengan nama cluster Anda, 111122223333 dengan ID akun Anda, AmazonEKSFargatePodExecutionRole dengan nama peran Pod eksekusi Anda, dan0000000000000001,0000000000000002, dan 0000000000000003 dengan ID subnet pribadi Anda. Jika Anda tidak memiliki peran Pod eksekusi, Anda harus membuatnya terlebih dahulu.

    penting

    Peran ARN tidak dapat menyertakan jalur selain. / Misalnya, jika nama peran Andadevelopment/apps/my-role, Anda perlu mengubahnya menjadi my-role saat menentukan ARN untuk peran tersebut. Format ARN peran harus arn:aws:iam::111122223333:role/role-name.

    aws eks create-fargate-profile \ --fargate-profile-name coredns \ --cluster-name my-cluster \ --pod-execution-role-arn arn:aws:iam::111122223333:role/AmazonEKSFargatePodExecutionRole \ --selectors namespace=kube-system,labels={k8s-app=kube-dns} \ --subnets subnet-0000000000000001 subnet-0000000000000002 subnet-0000000000000003
  2. Jalankan perintah berikut untuk menghapus eks.amazonaws.com/compute-type : ec2 anotasi dari. CoreDNS Pods

    kubectl patch deployment coredns \ -n kube-system \ --type json \ -p='[{"op": "remove", "path": "/spec/template/metadata/annotations/eks.amazonaws.com~1compute-type"}]'

Langkah selanjutnya

  • Anda dapat mulai memigrasi aplikasi yang ada untuk berjalan di Fargate dengan alur kerja berikut.

    1. Buat profil Fargate yang cocok dengan Kubernetes namespace dan label aplikasi Anda. Kubernetes

    2. Hapus dan buat ulang yang ada Pods sehingga dijadwalkan di Fargate. Misalnya, perintah berikut memicu peluncuran penerapan. coredns Anda dapat memodifikasi namespace dan jenis penyebaran untuk memperbarui spesifik Anda. Pods

      kubectl rollout restart -n kube-system deployment coredns
  • Terapkan Rute aplikasi dan HTTP lalu lintas dengan Application Load Balancers untuk mengizinkan objek Ingress untuk Anda Pods berjalan di Fargate.

  • Anda dapat menggunakan Sesuaikan sumber daya pod dengan Vertical Pod Autoscaler untuk mengatur ukuran CPU dan memori awal yang benar untuk Fargate AndaPods, dan kemudian menggunakan Skalakan penerapan pod dengan Horizontal Pod Autoscaler untuk menskalakannya. Pods Jika Anda ingin Vertical Pod Autoscaler untuk secara otomatis di-deploy ulang Pods ke Fargate dengan kombinasi CPU dan memori yang lebih tinggi, atur mode Vertical Pod Autoscaler ke salah satu atau. Auto Recreate Ini untuk memastikan fungsionalitas yang benar. Untuk informasi selengkapnya, lihat dokumentasi Vertical Pod Autoscaler pada. GitHub

  • Anda dapat mengatur kolektor AWS Distro for OpenTelemetry (ADOT) untuk pemantauan aplikasi dengan mengikuti petunjuk ini.