View a markdown version of this page

Kesadaran pengeluaran - Amazon EKS

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Kesadaran pengeluaran

Kesadaran pengeluaran adalah memahami siapa, di mana dan apa yang menyebabkan pengeluaran di cluster EKS Anda. Mendapatkan gambaran yang akurat tentang data ini akan membantu meningkatkan kesadaran akan pengeluaran Anda dan menyoroti area untuk diperbaiki.

Rekomendasi

Gunakan Penjelajah Biaya

AWS Cost Explorer memiliki antarmuka yang mudah digunakan yang memungkinkan Anda memvisualisasikan, memahami, dan mengelola biaya dan penggunaan AWS Anda dari waktu ke waktu. Anda dapat menganalisis data biaya dan penggunaan, di berbagai tingkatan menggunakan filter yang tersedia di Cost Explorer.

Biaya Pesawat Kontrol EKS dan EKS Fargate

Dengan menggunakan filter, kita dapat menanyakan biaya yang dikeluarkan untuk biaya EKS di Control Plane dan Fargate Pod seperti yang ditunjukkan pada diagram di bawah ini:

Penjelajah Biaya - Pesawat Kontrol EKS

Dengan menggunakan filter, kami dapat menanyakan biaya agregat yang dikeluarkan untuk Pod Fargate di seluruh wilayah di EKS - yang mencakup v CPU-Hours per CPU dan GB Hrs seperti yang ditunjukkan pada diagram di bawah ini:

Penjelajah Biaya - EKS Fargate

Penandaan Sumber Daya

Amazon EKS mendukung penambahan tag AWS ke cluster Amazon EKS Anda. Hal ini memudahkan untuk mengontrol akses ke EKS API untuk mengelola cluster Anda. Tag yang ditambahkan ke cluster EKS khusus untuk sumber daya cluster AWS EKS, tag tersebut tidak menyebar ke sumber daya AWS lain yang digunakan oleh cluster seperti instans EC2 atau penyeimbang beban. Saat ini, penandaan cluster didukung untuk semua cluster EKS baru dan yang sudah ada melalui AWS API, Konsol, dan SDK.

AWS Fargate adalah teknologi yang menyediakan kapasitas komputasi sesuai permintaan dan berukuran tepat untuk kontainer. Sebelum Anda dapat menjadwalkan pod di Fargate di klaster Anda, Anda harus menentukan setidaknya satu profil Fargate yang menentukan pod mana yang harus menggunakan Fargate ketika mereka diluncurkan.

Menambahkan dan mencantumkan tag ke cluster EKS:

$ aws eks tag-resource --resource-arn arn:aws:eks:us-west-2:xxx:cluster/ekscluster1 --tags team=devops,env=staging,bu=cio,costcenter=1234 $ aws eks list-tags-for-resource --resource-arn arn:aws:eks:us-west-2:xxx:cluster/ekscluster1 { "tags": { "bu": "cio", "env": "staging", "costcenter": "1234", "team": "devops" } }

Setelah Anda mengaktifkan tag alokasi biaya di AWS Cost Explorer, AWS menggunakan tag alokasi biaya untuk mengatur biaya sumber daya pada laporan alokasi biaya, untuk memudahkan Anda dalam mengkategorikan dan melacak biaya AWS Anda.

Tag tidak memiliki arti semantik apa pun untuk Amazon EKS dan ditafsirkan secara ketat sebagai serangkaian karakter. Misalnya, Anda dapat menentukan satu set tag untuk cluster Amazon EKS Anda untuk membantu Anda melacak pemilik dan tingkat tumpukan masing-masing cluster.

Gunakan AWS Trusted Advisor

AWS Trusted Advisor menawarkan serangkaian pemeriksaan dan rekomendasi praktik terbaik yang kaya di lima kategori: pengoptimalan biaya; keamanan; toleransi kesalahan; kinerja; dan batas layanan.

Untuk Pengoptimalan Biaya, Penasihat Tepercaya membantu menghilangkan sumber daya yang tidak digunakan dan tidak digunakan dan merekomendasikan membuat komitmen untuk kapasitas yang dicadangkan. Item tindakan utama yang akan membantu Amazon EKS adalah sekitar instans EC2 yang dimanfaatkan rendah, alamat IP Elastic yang tidak terkait, Penyeimbang Beban Idle, volume EBS yang kurang dimanfaatkan antara hal-hal lain. Daftar lengkap cek disediakan di https://aws.amazon.com/premiumsupport/technology/trusted-advisor/best-practice-checklist/.

Penasihat Tepercaya juga memberikan rekomendasi Paket Tabungan dan Instans Cadangan untuk instans EC2 dan Fargate yang memungkinkan Anda berkomitmen pada jumlah penggunaan yang konsisten dengan imbalan tarif diskon.

catatan

Rekomendasi dari Trusted Advisor adalah rekomendasi umum dan tidak spesifik untuk EKS.

Melihat penggunaan sumber daya dalam klaster

catatan

Proyek Dasbor Kubernetes diarsipkan dan tidak lagi dipelihara secara aktif, jadi penerapannya tidak lagi disarankan. Untuk visibilitas sumber daya dalam cluster, gunakan kubectl describe perintah kubectl top and di bawah ini, atau pendekatan Con CloudWatch tainer Insights dan Kubecost yang dijelaskan di bagian berikut. Untuk AWS-native, visibilitas biaya tingkat pod dan atribusi, lihat bagian Split Cost Allocation Data (SCAD) untuk Amazon EKS di bawah ini.

kubectl top dan jelaskan perintah

Melihat metrik penggunaan sumber daya dengan perintah kubectl top dan kubectl descript. kubectl top akan menampilkan penggunaan CPU dan memori saat ini untuk pod atau node di seluruh cluster Anda, atau untuk pod atau node tertentu. Perintah kubectl description akan memberikan informasi lebih rinci tentang node atau pod tertentu.

$ kubectl top pods $ kubectl top nodes $ kubectl top pod pod-name --namespace mynamespace --containers

Dengan menggunakan perintah atas, output akan menampilkan jumlah total CPU (dalam inti) dan memori (dalam MiB) yang digunakan node, dan persentase kapasitas node yang dapat dialokasikan yang diwakili oleh angka-angka tersebut. Anda kemudian dapat menelusuri ke tingkat berikutnya, level kontainer di dalam pod dengan menambahkan flag -- containers.

$ kubectl describe node <node> $ kubectl describe pod <pod>

kubectl description mengembalikan persentase dari total kapasitas yang tersedia yang diwakili oleh setiap permintaan sumber daya atau batas.

kubectl menyoroti dan menjelaskan, melacak pemanfaatan dan ketersediaan sumber daya penting seperti CPU, memori, dan penyimpanan di seluruh pod, node, dan wadah kubernetes. Kesadaran ini akan membantu dalam memahami penggunaan sumber daya dan membantu dalam mengendalikan biaya.

Gunakan Data Alokasi Biaya Terpisah (SCAD) untuk Amazon EKS

Split Cost Allocation Data (SCAD) untuk Amazon EKS menambahkan data biaya dan penggunaan tingkat kontainer ke Laporan Biaya dan Penggunaan AWS (CUR). Sebelumnya CUR melaporkan biaya hanya pada tingkat instans Amazon EC2; SCAD mengaitkan biaya ke masing-masing pod dengan mengambil biaya amortisasi instans EC2 dan mengalikannya dengan persentase CPU dan memori yang dikonsumsi setiap pod pada instans tersebut. Untuk setiap pod, ia menambahkan dua catatan penggunaan per jam (CPU dan memori), atau tiga pada instans komputasi yang dipercepat (akselerator, CPU, dan memori) yang mencakup GPU NVIDIA dan AMD, AWS Trainium, dan AWS Inferentia. Ini memungkinkan Anda menghubungkan pengeluaran EKS ke unit bisnis, tim, ruang nama, dan beban kerja.

SCAD untuk Amazon EKS secara otomatis membuat tag alokasi AWS-generated biaya, termasukaws:eks:cluster-name,aws:eks:namespace,aws:eks:workload-name,aws:eks:workload-type,aws:eks:deployment, danaws:eks:node. Sejak Oktober 2025, Anda juga dapat mengimpor hingga 50 label kustom Kubernetes per pod sebagai tag alokasi biaya, memungkinkan atribusi berdasarkan atribut seperti pusat biaya, aplikasi, unit bisnis, dan lingkungan. Label tersedia di AWS CUR dalam waktu 24 jam setelah aktivasi.

Untuk mengaktifkan SCAD, pilih dari konsol Penagihan dan Manajemen Biaya AWS di bawah preferensi Manajemen Biaya (hanya management/payer akun yang dapat ikut serta; akun anggota kemudian dapat melihat data), pilih basis pengukuran untuk Amazon EKS (permintaan sumber daya, Amazon Managed Service for Prometheus, atau Con CloudWatch tainer Insights), dan sertakan data alokasi biaya terpisah dalam Laporan Biaya dan Penggunaan Anda. SCAD tersedia dalam CUR dan CUR 2.0 lama (melalui Ekspor Data), tetapi tidak di AWS Cost Explorer. Dari CUR, data biasanya ditanyakan dengan Amazon Athena dan divisualisasikan di Amazon QuickSight menggunakan Cloud Intelligence Dashboards (CID), seperti dasbor alokasi biaya kontainer SCAD yang dibangun langsung pada data alokasi biaya terpisah (Kubecost-based dasbor juga tersedia saat menggunakan Kubecost sebagai sumber data).

Gunakan CloudWatch Wawasan Kontainer

Gunakan CloudWatch Wawasan Kontainer untuk mengumpulkan, mengumpulkan, dan meringkas metrik dan log dari aplikasi kontainer dan layanan mikro Anda. Container Insights tersedia untuk Amazon Elastic Kubernetes Service di EC2, dan platform Kubernetes di Amazon EC2. Metrik tersebut mencakup pemanfaatan sumber daya seperti CPU, memori, disk, dan jaringan.

Pemasangan wawasan diberikan dalam dokumentasi.

CloudWatch membuat metrik agregat di tingkat cluster, node, pod, tugas, dan layanan sebagai CloudWatch metrik.

Kueri berikut menunjukkan daftar node, diurutkan berdasarkan pemanfaatan CPU node rata-rata

STATS avg(node_cpu_utilization) as avg_node_cpu_utilization by NodeName
| SORT avg_node_cpu_utilization DESC

Penggunaan CPU dengan nama Kontainer

stats pct(container_cpu_usage_total, 50) as CPUPercMedian by kubernetes.container_name
| filter Type="Container"

Penggunaan disk dengan nama Kontainer

stats floor(avg(container_filesystem_usage/1024)) as container_filesystem_usage_avg_kb by InstanceId, kubernetes.container_name, device
| filter Type="ContainerFS"
| sort container_filesystem_usage_avg_kb desc

Kueri sampel lainnya diberikan dalam dokumentasi Con tainer Insights

Kesadaran ini akan membantu dalam memahami penggunaan sumber daya dan membantu dalam mengendalikan biaya.

Menggunakan Kubecost untuk kesadaran dan bimbingan pengeluaran

Alat pihak ketiga seperti kubecost juga dapat digunakan di Amazon EKS untuk mendapatkan visibilitas terhadap biaya menjalankan cluster Kubernetes Anda. Silakan merujuk ke blog AWS ini untuk melacak biaya menggunakan Kubecost

Menyebarkan kubecost menggunakan Helm 3:

$ curl -sSL https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash $ helm version --short v3.2.1+gfe51cd1 $ helm repo add stable https://kubernetes-charts.storage.googleapis.com/ $ helm repo add stable https://kubernetes-charts.storage.googleapis.com/c^C $ kubectl create namespace kubecost namespace/kubecost created $ helm repo add kubecost https://kubecost.github.io/cost-analyzer/ "kubecost" has been added to your repositories $ helm install kubecost kubecost/cost-analyzer --namespace kubecost --set kubecostToken="aGRoZEBqc2pzLmNvbQ==xm343yadf98" NAME: kubecost LAST DEPLOYED: Mon May 18 08:49:05 2020 NAMESPACE: kubecost STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: --------------------------------------------------Kubecost has been successfully installed. When pods are Ready, you can enable port-forwarding with the following command: kubectl port-forward --namespace kubecost deployment/kubecost-cost-analyzer 9090 Next, navigate to http://localhost:9090 in a web browser. $ kubectl port-forward --namespace kubecost deployment/kubecost-cost-analyzer 9090 NOTE: If you are using Cloud 9 or have a need to forward it to a different port like 8080, issue the following command $ kubectl port-forward --namespace kubecost deployment/kubecost-cost-analyzer 8080:9090

Dasbor Kubecost - Kubernetes Cluster Auto Scaler logs

Gunakan Alat Analisis Alokasi Biaya dan Perencanaan Kapasitas Kubernetes

Kubernetes Opex Analytics adalah alat untuk membantu organisasi melacak sumber daya yang dikonsumsi oleh cluster Kubernetes mereka untuk mencegah pembayaran lebih. Untuk melakukannya, ia menghasilkan laporan penggunaan jangka pendek (7 hari), menengah (14 hari) dan jangka panjang (12 bulan) yang menunjukkan wawasan yang relevan tentang jumlah sumber daya yang dihabiskan setiap proyek dari waktu ke waktu.

Analisis Kubernetes Opex

Yotascale

Yotascale membantu mengalokasikan biaya Kubernetes secara akurat. Fitur Alokasi Biaya Kubernetes Yotascale menggunakan data biaya aktual, yang termasuk diskon Instans Cadangan dan harga instans spot alih-alih estimasi tarif pasar umum, untuk menginformasikan total jejak biaya Kubernetes

Rincian lebih lanjut dapat ditemukan di situs web mereka.

Penasihat Alcide

Alcide adalah Mitra Teknologi Tingkat Lanjut AWS Partner Network (APN). Alcide Advisor membantu memastikan konfigurasi cluster, node, dan pod Amazon EKS Anda disetel agar berjalan sesuai dengan praktik terbaik keamanan dan pedoman internal. Alcide Advisor adalah layanan tanpa agen untuk audit dan kepatuhan Kubernetes yang dibangun untuk memastikan DevSecOps aliran tanpa gesekan dan aman dengan memperkuat tahap pengembangan sebelum pindah ke produksi.

Rincian lebih lanjut dapat ditemukan di posting blog ini.

Alat lainnya

Pengumpulan Sampah Kubernetes

Peran pengumpul sampah Kubernetes adalah menghapus objek tertentu yang pernah memiliki pemilik, tetapi tidak lagi memiliki pemilik.

Jumlah Fargate

Fargatecount adalah alat yang berguna, yang memungkinkan pelanggan AWS melacak, dengan CloudWatch metrik khusus, jumlah total pod EKS yang telah digunakan di Fargate di wilayah tertentu dari akun tertentu. Ini membantu dalam melacak semua pod Fargate yang berjalan melintasi cluster EKS.

Popeye - Pembersih Cluster Kubernetes

Popeye - Kubernetes Cluster Sanitizer adalah utilitas yang memindai cluster Kubernetes langsung dan melaporkan potensi masalah dengan sumber daya dan konfigurasi yang digunakan. Ini membersihkan cluster Anda berdasarkan apa yang digunakan dan bukan apa yang ada di disk. Dengan memindai cluster Anda, ia mendeteksi kesalahan konfigurasi dan membantu Anda memastikan bahwa praktik terbaik telah diterapkan

Sumber daya

Lihat sumber daya berikut untuk mempelajari lebih lanjut tentang praktik terbaik untuk pengoptimalan biaya.

Dokumentasi dan Blog

Alat