Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konfigurasi lanjutan untuk OTel Container Insights di Amazon EKS
Topik ini mencakup skenario konfigurasi lanjutan untuk OTel Container Insights di Amazon EKS. Gunakan konfigurasi ini untuk menyesuaikan koleksi metrik, memfilter log, mengumpulkan telemetri di seluruh akun, menambahkan dimensi khusus, dan menyetel alokasi sumber daya untuk klaster besar.
Prasyarat
Sebelum Anda mengonfigurasi pengaturan lanjutan, verifikasi bahwa Anda memenuhi persyaratan berikut.
-
OTel Container Insights diinstal dan dalam
ACTIVEstatus di klaster Amazon EKS Anda -
Cluster Amazon EKS yang menjalankan Kubernetes versi 1.28 atau yang lebih baru
-
AWS CLI versi 2.15.0 atau yang lebih baru
-
kubectldikonfigurasi untuk berkomunikasi dengan cluster target Anda -
Izin IAM:
eks:UpdateAddon,eks:DescribeAddon, daniam:AttachRolePolicy(diperlukan untuk konfigurasi lintas akun)
Pola konfigurasi umum
Semua konfigurasi lanjutan mengikuti pola yang sama. Anda meneruskan konfigurasi JSON ke amazon-cloudwatch-observability add-on dengan menggunakan perintah. aws eks
update-addon
aws eks update-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability \ --configuration-values 'JSON-configuration' \ --resolve-conflicts OVERWRITE
penting
--resolve-conflicts OVERWRITEBendera menggantikan konfigurasi add-on yang ada. Untuk mempertahankan pengaturan yang ada, gabungkan dengan konfigurasi baru Anda sebelum Anda menjalankan perintah.
Pemfilteran log
Anda dapat mengurangi biaya CloudWatch Log dengan mengecualikan log yang sesuai dengan kriteria tertentu. Gunakan penyaringan log untuk menghapus log tingkat debug atau verbose sebelum agen mengirimkannya ke. CloudWatch
Untuk mengkonfigurasi penyaringan log
-
Jalankan perintah berikut untuk memperbarui add-on dengan konfigurasi filter log. Ganti
cluster-namedengan nama cluster Amazon EKS Anda.aws eks update-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability \ --configuration-values '{ "otelContainerInsights": { "enabled": true }, "agent": { "config": { "logs": { "metrics_collected": { "kubernetes": { "enhanced_container_insights": true } }, "exclude_filters": [ { "type": "log_level_filter", "log_level": "DEBUG" } ] } } } }' \ --resolve-conflicts OVERWRITE -
Verifikasi bahwa status add-on
ACTIVEsetelah pembaruan.aws eks describe-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability \ --query "addon.status" \ --output text
exclude_filtersKonfigurasi menghapus entri log yang cocok dengan level log yang ditentukan sebelum agen mengirimkannya ke CloudWatch Log. Ini mengurangi volume konsumsi log Anda dan biaya terkait.
Multi-account koleksi
Anda dapat mengirim telemetri dari akun beban kerja ke akun pemantauan pusat dengan mengonfigurasi asumsi peran IAM lintas akun. Pendekatan ini memberi Anda satu tampilan metrik dan log dari beberapa kluster Amazon EKS di berbagai AWS akun.
Untuk mengatur pengumpulan multi-akun
Untuk membuat peran lintas akun di akun pemantauan
-
Di akun pemantauan pusat, buat peran IAM dengan kebijakan kepercayaan yang memungkinkan akun beban kerja untuk mengasumsikan itu. Ganti
workload-account-iddengan ID AWS akun akun beban kerja.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::workload-account-id:root" }, "Action": "sts:AssumeRole" } ] } -
Lampirkan kebijakan
CloudWatchAgentServerPolicyterkelola ke peran lintas akun.
Untuk mengonfigurasi add-on untuk pengiriman lintas akun
-
Di akun beban kerja, perbarui add-on untuk mengambil peran lintas akun. Ganti
cluster-namedengan nama cluster Amazon EKS Anda danmonitoring-account-iddengan ID AWS akun akun pemantauan pusat.aws eks update-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability \ --configuration-values '{ "otelContainerInsights": { "enabled": true }, "agent": { "config": { "credentials": { "role_arn": "arn:aws:iam::monitoring-account-id:role/CrossAccountCWObservabilityRole" } } } }' \ --resolve-conflicts OVERWRITE -
Verifikasi bahwa status add-on
ACTIVEsetelah pembaruan.aws eks describe-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability \ --query "addon.status" \ --output text
Dimensi metrik khusus
Anda dapat menambahkan dimensi kustom yang berasal dari label Kubernetes ke metrik Container Insights Anda. Dimensi khusus memungkinkan Anda memfilter dan mengelompokkan metrik pada perincian yang lebih halus, seperti menurut tim, lingkungan, atau tingkat aplikasi.
Untuk menambahkan dimensi kustom dari label Kubernetes
-
Jalankan perintah berikut untuk mengkonfigurasi dimensi kustom. Ganti
cluster-namedengan nama cluster Amazon EKS Anda danlabel-keydengan label Kubernetes untuk digunakan sebagai dimensi.aws eks update-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability \ --configuration-values '{ "otelContainerInsights": { "enabled": true }, "agent": { "config": { "logs": { "metrics_collected": { "kubernetes": { "enhanced_container_insights": true, "metric_dimensions": { "custom_dimensions": ["label-key"] } } } } } } }' \ --resolve-conflicts OVERWRITE -
Verifikasi bahwa status add-on
ACTIVEsetelah pembaruan.aws eks describe-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability \ --query "addon.status" \ --output text
Setelah konfigurasi diterapkan, label Kubernetes yang ditentukan akan muncul sebagai dimensi pada metrik Container Insights Anda. CloudWatch
Penyetelan sumber daya untuk cluster besar
Untuk cluster besar, Anda mungkin perlu meningkatkan batas CPU dan memori untuk CloudWatch agen DaemonSet. Alokasi sumber daya default berfungsi dengan baik untuk cluster kecil, tetapi cluster yang lebih besar menghasilkan lebih banyak data telemetri dan membutuhkan sumber daya agen tambahan.
Tabel berikut memberikan pedoman ukuran berdasarkan ukuran cluster.
| Ukuran cluster | Permintaan CPU | Batas CPU | Permintaan memori | Batas memori |
|---|---|---|---|---|
| Kecil (20 node atau kurang) | 100m | 200m | 128Mi | 256Mi |
| Sedang (21-100 node) | 200m | 400m | 256Mi | 512Mi |
| Besar (100+ node) | 300m | 500m | 384Mi | 768Mi |
| Extra-large (500+ node) | 500m | 1000m | 512Mi | 1Gi |
Untuk mengonfigurasi batas sumber daya untuk agen DaemonSet
-
Jalankan perintah berikut untuk mengatur permintaan dan batas sumber daya. Ganti
cluster-namedengan nama kluster Amazon EKS Anda dan nilai sumber daya dengan nilai dari tabel sebelumnya.aws eks update-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability \ --configuration-values '{ "otelContainerInsights": { "enabled": true }, "agent": { "resources": { "requests": { "cpu": "cpu-request", "memory": "memory-request" }, "limits": { "cpu": "cpu-limit", "memory": "memory-limit" } } } }' \ --resolve-conflicts OVERWRITE -
Verifikasi bahwa status add-on adalah
ACTIVEdan pod agen tersebut dimulai ulang dengan alokasi sumber daya baru.aws eks describe-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability \ --query "addon.status" \ --output text -
Konfirmasikan bahwa pod agen berjalan dengan batas sumber daya baru.
kubectl get pods -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent -o jsonpath='{.items[0].spec.containers[0].resources}'
Verifikasi perubahan konfigurasi
Setelah Anda menerapkan konfigurasi lanjutan apa pun, verifikasi bahwa add-on tersebut sehat dan pod agen berhasil memulai ulang.
Untuk memverifikasi perubahan konfigurasi
-
Periksa apakah status add-on adalah
ACTIVE. Ganticluster-namedengan nama cluster Amazon EKS Anda.aws eks describe-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability \ --query "addon.{Status:status,ConfigValues:configurationValues}" \ --output table -
Verifikasi bahwa pod agen dimulai ulang dan dalam
Runningstatus.kubectl get pods -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agentSemua pod agen harus menampilkan
Runningstatus dengan waktu restart baru-baru ini.
Pemecahan masalah
Gunakan panduan berikut untuk menyelesaikan masalah umum dengan konfigurasi lanjutan.
Add-on pembaruan gagal dengan ConfigurationConflict
Gejala: aws eks update-addon Perintah mengembalikan ConfigurationConflict kesalahan.
Penyebab: Konfigurasi JSON yang Anda berikan salah bentuk atau berisi kunci yang tidak valid.
Solusi: Selesaikan langkah-langkah berikut untuk mengatasi masalah ini.
-
Validasi konfigurasi JSON Anda dengan menggunakan linter JSON atau dengan menjalankan perintah berikut.
echo 'your-json-configuration' | python3 -m json.tool -
Verifikasi bahwa semua kunci konfigurasi valid untuk
amazon-cloudwatch-observabilityadd-on. -
Coba lagi pembaruan dengan JSON yang dikoreksi.
Cross-account metrik tidak muncul di akun pemantauan
Gejala: Setelah Anda mengonfigurasi pengumpulan multi-akun, metrik tidak muncul di akun pemantauan pusat.
Penyebab: Kebijakan kepercayaan peran IAM lintas akun atau izin tidak benar.
Solusi: Selesaikan langkah-langkah berikut untuk mengatasi masalah ini.
-
Verifikasi bahwa kebijakan kepercayaan di akun pemantauan memungkinkan akun beban kerja untuk mengambil peran.
-
Verifikasi bahwa peran lintas akun memiliki kebijakan
CloudWatchAgentServerPolicyterkelola yang dilampirkan. -
Periksa log agen untuk
AssumeRolekesalahan.kubectl logs -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent --tail=100 | grep -i "AssumeRole\|AccessDenied" -
Verifikasi bahwa peran IAM agen di akun beban kerja memiliki
sts:AssumeRoleizin untuk ARN peran lintas akun.