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 Cost Explorer

AWS Cost Explorer memiliki easy-to-use antarmuka 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 EKS Control Plane 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:

Cost Explorer - Pesawat Kontrol EKS

Dengan menggunakan filter, kita dapat menanyakan biaya agregat yang dikeluarkan untuk Pod Fargate di seluruh wilayah di EKS - yang mencakup jam VCPU per CPU dan GB Jam seperti yang ditunjukkan pada diagram di bawah ini:

Cost Explorer - EKS Fargate

Penandaan Sumber Daya

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

AWS Fargate adalah teknologi yang menyediakan kapasitas komputasi sesuai permintaan dan ukuran yang 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 kluster 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 mengkategorikan dan melacak biaya AWS Anda.

Tag tidak memiliki arti semantik untuk Amazon EKS dan ditafsirkan secara ketat sebagai serangkaian karakter. Misalnya, Anda dapat menentukan satu set tag untuk kluster Amazon EKS Anda untuk membantu Anda melacak setiap pemilik klaster dan tingkat tumpukan.

Gunakan AWS Trusted Advisor

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

Untuk Optimalisasi Biaya, Trusted Advisor membantu menghilangkan sumber daya yang tidak digunakan dan tidak digunakan dan merekomendasikan untuk membuat komitmen terhadap kapasitas cadangan. Item tindakan utama yang akan membantu Amazon EKS akan berada di sekitar EC2 instance yang digunakan rendah, alamat IP Elastis yang tidak terkait, Penyeimbang Beban Idle, volume EBS yang kurang dimanfaatkan, antara lain. Daftar lengkap pemeriksaan disediakan di https://aws.amazon.com/premiumsupport/technology/trusted-advisor/best-practice-checklist/.

Trusted Advisor juga menyediakan rekomendasi Savings Plans dan Reserved EC2 Instances untuk instans dan Fargate yang memungkinkan Anda untuk berkomitmen pada jumlah penggunaan yang konsisten dengan imbalan tarif diskon.

catatan

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

Gunakan dasbor Kubernetes

Dasbor Kubernetes

Dasbor Kubernetes adalah UI berbasis web untuk klaster Kubernetes, yang menyediakan informasi tentang klaster Kubernetes termasuk penggunaan sumber daya pada tingkat cluster, node, dan pod. Penerapan dasbor Kubernetes pada kluster Amazon EKS dijelaskan dalam dokumentasi Amazon EKS.

Dashboard menyediakan rincian penggunaan sumber daya untuk setiap node dan pod, serta metadata rinci tentang pod, layanan, Deployment, dan objek Kubernetes lainnya. Informasi terkonsolidasi ini memberikan visibilitas ke lingkungan Kubernetes Anda.

Dasbor Kubernetes

kubectl top dan jelaskan perintah

Melihat metrik penggunaan sumber daya dengan perintah kubectl top dan kubectl describe. kubectl top akan menampilkan penggunaan CPU dan memori saat ini untuk pod atau node di seluruh klaster Anda, atau untuk pod atau node tertentu. Perintah kubectl describe akan memberikan informasi yang 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 oleh angka-angka tersebut. Anda kemudian dapat menelusuri ke level berikutnya, level kontainer di dalam pod dengan menambahkan flag --containers.

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

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

kubectl top dan jelaskan, lacak pemanfaatan dan ketersediaan sumber daya penting seperti CPU, memori, dan penyimpanan di seluruh pod, node, dan container kubernetes. Kesadaran ini akan membantu dalam memahami penggunaan sumber daya dan membantu dalam mengendalikan biaya.

Gunakan CloudWatch Wawasan Kontainer

Gunakan CloudWatch Wawasan Kontainer untuk mengumpulkan, menggabungkan, dan meringkas metrik dan log dari aplikasi dan layanan mikro dalam kontainer Anda. Container Insights tersedia untuk Amazon Elastic Kubernetes EC2 Service di, 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, task, dan service 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 Container

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

Penggunaan disk dengan nama Container

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

Lebih banyak contoh kueri diberikan dalam dokumen Container 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 klaster Kubernetes Anda. Silakan merujuk ke blog AWS ini untuk melacak biaya menggunakan Kubecost

Menerapkan 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 klaster Kubernetes mereka untuk mencegah pembayaran lebih. Untuk melakukannya, 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.

Kubernetes Opex Analitik

Yotascale

Yotascale membantu mengalokasikan biaya Kubernetes secara akurat. Fitur Alokasi Biaya Yotascale Kubernetes menggunakan data biaya aktual, yang mencakup 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 Lanjutan AWS Partner Network (APN). Alcide Advisor membantu memastikan konfigurasi klaster, 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 aliran tanpa gesekan dan aman DevSecOps dengan memperkuat tahap pengembangan sebelum pindah ke produksi.

Detail lebih lanjut dapat ditemukan di posting blog ini.

Alat-alat lainnya

Pengumpulan Sampah Kubernetes

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

Hitungan 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 melacak semua pod Fargate yang berjalan di cluster EKS.

Popeye - Pembersih Cluster Kubernetes

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

Sumber daya

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

Dokumentasi dan Blog

Alat