Sederhanakan manajemen komputasi dengan AWS Fargate - 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.

Sederhanakan manajemen komputasi dengan AWS Fargate

penting

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

Topik ini membahas penggunaan Amazon EKS untuk Kubernetes Pods menjalankannya AWS Fargate. Fargate adalah teknologi yang menyediakan kapasitas komputasi sesuai permintaan dan berukuran tepat untuk kontainer. Dengan Fargate, Anda tidak perlu menyediakan, mengonfigurasi, atau menskalakan grup mesin virtual sendiri untuk menjalankan kontainer. Anda juga tidak perlu memilih jenis server, memutuskan kapan harus menskalakan grup node Anda, atau mengoptimalkan pengemasan cluster.

Anda dapat mengontrol mana yang Pods dimulai di Fargate dan bagaimana mereka berjalan dengan profil Fargate. Profil Fargate didefinisikan sebagai bagian dari cluster Amazon EKS Anda. Amazon EKS terintegrasi Kubernetes dengan Fargate dengan menggunakan pengontrol yang dibuat dengan menggunakan model upstream yang dapat diperluas yang disediakan AWS oleh. Kubernetes Pengontrol ini berjalan sebagai bagian dari bidang Kubernetes kontrol EKS terkelola Amazon dan bertanggung jawab untuk menjadwalkan asli ke Kubernetes Pods Fargate. Pengontrol Fargate menyertakan penjadwal baru yang berjalan bersama penjadwal default selain beberapa Kubernetes pengontrol penerimaan yang bermutasi dan memvalidasi. Saat Anda memulai sebuah Pod yang memenuhi kriteria untuk berjalan di Fargate, pengontrol Fargate yang berjalan di cluster mengenali, memperbarui, dan menjadwalkan ke Fargate. Pod

Topik ini menjelaskan berbagai komponen Pods yang berjalan di Fargate, dan menyerukan pertimbangan khusus untuk menggunakan Fargate dengan Amazon. EKS

AWS Fargate pertimbangan

Berikut adalah beberapa hal yang perlu dipertimbangkan tentang menggunakan Fargate di Amazon. EKS

  • Masing-masing Pod yang berjalan di Fargate memiliki batas isolasi sendiri. Mereka tidak berbagi kernel, CPU sumber daya, sumber daya memori, atau elastic network interface yang mendasarinya dengan yang lainPod.

  • Network Load Balancers dan Application Load Balancers (ALBs) dapat digunakan dengan Fargate dengan target IP saja. Untuk informasi selengkapnya, silakan lihat Buat penyeimbang beban jaringan dan Rute aplikasi dan HTTP lalu lintas dengan Application Load Balancers.

  • Layanan terbuka Fargate hanya berjalan pada mode IP tipe target, dan bukan pada mode IP node. Cara yang disarankan untuk memeriksa konektivitas dari layanan yang berjalan pada node terkelola dan layanan yang berjalan di Fargate adalah dengan menghubungkan melalui nama layanan.

  • Pod harus cocok dengan profil Fargate pada saat mereka dijadwalkan untuk berjalan di Fargate. Pod yang tidak cocok dengan profil Fargate mungkin macet sebagai. Pending Jika profil Fargate yang cocok ada, Anda dapat menghapus pending Pods yang telah Anda buat untuk menjadwal ulang mereka ke Fargate.

  • Daemonset tidak didukung di Fargate. Jika aplikasi Anda memerlukan daemon, konfigurasikan ulang daemon tersebut untuk dijalankan sebagai wadah sespan di Anda. Pods

  • Kontainer istimewa tidak didukung di Fargate.

  • Pod yang berjalan di Fargate tidak dapat menentukan HostPort atau HostNetwork dalam manifes. Pod

  • Batas default nofile dan nproc lunak adalah 1024 dan batas kerasnya adalah 65535 untuk Fargate. Pods

  • GPUssaat ini tidak tersedia di Fargate.

  • Pod yang berjalan di Fargate hanya didukung pada subnet pribadi (dengan akses NAT gateway ke AWS layanan, tetapi bukan rute langsung ke Internet Gateway), jadi klaster Anda VPC harus memiliki subnet pribadi yang tersedia. Untuk klaster tanpa akses internet luar, lihat Menyebarkan kluster pribadi dengan akses internet terbatas.

  • Anda dapat menggunakan Sesuaikan sumber daya pod dengan Vertical Pod Autoscaler untuk mengatur ukuran awal CPU dan memori 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 memori yang CPU lebih besar, atur mode untuk Vertical Pod Autoscaler ke salah satu atau untuk memastikan fungsionalitas yang benar. Auto Recreate Untuk informasi selengkapnya, lihat dokumentasi Vertical Pod Autoscaler pada. GitHub

  • DNSresolusi dan DNS nama host harus diaktifkan untuk AndaVPC. Untuk informasi selengkapnya, lihat Melihat dan memperbarui DNS dukungan untuk Anda VPC.

  • Amazon EKS Fargate menambahkan defense-in-depth Kubernetes aplikasi dengan mengisolasi setiap Pod dalam Virtual Machine (VM). Batas VM ini mencegah akses ke sumber daya berbasis host yang digunakan oleh Pod lain jika terjadi pelarian kontainer, yang merupakan metode umum untuk menyerang aplikasi kontainer dan mendapatkan akses ke sumber daya di luar container.

    Menggunakan Amazon EKS tidak mengubah tanggung jawab Anda berdasarkan model tanggung jawab bersama. Anda harus hati-hati mempertimbangkan konfigurasi keamanan klaster dan kontrol tata kelola. Cara teraman untuk mengisolasi aplikasi adalah selalu menjalankannya di cluster terpisah.

  • Profil Fargate mendukung menentukan subnet dari blok sekunder. VPC CIDR Anda mungkin ingin menentukan CIDR blok sekunder. Ini karena ada sejumlah alamat IP yang tersedia di subnet. Akibatnya, ada juga sejumlah terbatas Pods yang dapat dibuat di cluster. Dengan menggunakan subnet yang berbeda untukPods, Anda dapat meningkatkan jumlah alamat IP yang tersedia. Untuk informasi selengkapnya, lihat Menambahkan IPv4 CIDR blok ke fileVPC.

  • Layanan metadata EC2 instans Amazon (IMDS) tidak tersedia untuk Pods yang digunakan ke node Fargate. Jika Anda memiliki Pods yang disebarkan ke Fargate yang IAM membutuhkan kredensi, tetapkan untuk Anda gunakan. Pods IAMperan untuk akun layanan Jika Anda Pods memerlukan akses ke informasi lain yang tersediaIMDS, maka Anda harus membuat kode keras informasi ini ke dalam Pod spesifikasi Anda. Ini termasuk Wilayah AWS atau Availability Zone Pod yang digunakan.

  • Anda tidak dapat menerapkan Pods Fargate AWS Outposts ke AWS Wavelength,, atau Local AWS Zones.

  • Amazon EKS harus secara berkala menambal Fargate Pods untuk menjaganya tetap aman. Kami mencoba pembaruan dengan cara yang mengurangi dampak, tetapi ada kalanya Pods harus dihapus jika tidak berhasil diusir. Ada beberapa tindakan yang dapat Anda lakukan untuk meminimalkan gangguan. Untuk informasi selengkapnya, lihat Tetapkan tindakan untuk acara penambalan AWS Fargate OS.

  • VPCCNIPlugin Amazon untuk Amazon EKS diinstal pada node Fargate. Anda tidak dapat menggunakan Plugin CNI alternatif yang kompatibel dengan node Fargate.

  • Sebuah Pod berjalan di Fargate secara otomatis memasang sistem file AmazonEFS. Anda tidak dapat menggunakan penyediaan volume persisten dinamis dengan simpul Fargate, tetapi Anda dapat menggunakan penyediaan statis.

  • Anda tidak dapat memasang EBS volume Amazon ke FargatePods.

  • Anda dapat menjalankan EBS CSI pengontrol Amazon di node Fargate, tetapi EBS CSI node Amazon hanya DaemonSet dapat berjalan di instance AmazonEC2.

  • Setelah Kubernetes Job ditandai Completed atauFailed, Pods yang biasanya Job dibuat terus ada. Perilaku ini memungkinkan Anda untuk melihat log dan hasil Anda, tetapi dengan Fargate Anda akan dikenakan biaya jika Anda tidak membersihkannya setelahnya. Job

    Untuk secara otomatis menghapus terkait Pods setelah Job selesai atau gagal, Anda dapat menentukan periode waktu menggunakan time-to-live (TTL) controller. Contoh berikut menunjukkan menentukan .spec.ttlSecondsAfterFinished dalam Job manifes Anda.

    apiVersion: batch/v1 kind: Job metadata: name: busybox spec: template: spec: containers: - name: busybox image: busybox command: ["/bin/sh", "-c", "sleep 10"] restartPolicy: Never ttlSecondsAfterFinished: 60 # <-- TTL controller