View a markdown version of this page

Instal CloudWatch agen dengan add-on Amazon CloudWatch Observability EKS atau bagan Helm - Amazon CloudWatch

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

Instal CloudWatch agen dengan add-on Amazon CloudWatch Observability EKS atau bagan Helm

Anda dapat menggunakan add-on Amazon CloudWatch Observability EKS atau bagan Amazon CloudWatch Observability Helm untuk menginstal CloudWatch Agen dan Fluent-bit agen di cluster Amazon EKS. Anda juga dapat menggunakan bagan Helm untuk menginstal CloudWatch Agen dan Fluent-bit agen pada cluster Kubernetes yang tidak dihosting di Amazon EKS.

Menggunakan salah satu metode pada cluster Amazon EKS memungkinkan Insights Container untuk Amazon EKS dan Sin CloudWatch yal Aplikasi secara default. Kedua fitur membantu Anda mengumpulkan metrik infrastruktur, telemetri kinerja aplikasi, dan log kontainer dari cluster.

Dari versi add-on v6.2.0-eksbuild.1 atau yang lebih baru, Wawasan Kontainer dengan OpenTelemetry metrik dapat diaktifkan, yang mengumpulkan metrik menggunakan OpenTelemetry Protokol (OTLP) dan mendukung kueri PromQL. Untuk informasi selengkapnya, lihat Wawasan Kontainer OTel (Direkomendasikan).

Dengan Container Insights with OpenTelemetry for Amazon EKS, metrik Container Insights dikenakan biaya per GB yang dicerna atau per pengamatan jika Anda menggunakan Enhanced Container Insights (Klasik). Untuk Sinyal Aplikasi, penagihan didasarkan pada permintaan masuk ke aplikasi Anda, permintaan keluar dari aplikasi Anda, dan setiap tujuan tingkat layanan yang dikonfigurasi (SLO). Setiap permintaan masuk yang diterima menghasilkan satu sinyal aplikasi, dan setiap permintaan keluar yang dibuat menghasilkan satu sinyal aplikasi. Setiap SLO menciptakan dua sinyal aplikasi per periode pengukuran. Untuk informasi selengkapnya tentang CloudWatch harga, lihat CloudWatch Harga Amazon.

Kedua metode tersebut mengaktifkan Container Insights pada node pekerja Linux dan Windows di cluster Amazon EKS. Untuk mengaktifkan Container Insights di Windows, Anda harus menggunakan add-on Amazon EKS atau bagan Helm versi 1.5.0 atau yang lebih baru. Sinyal Aplikasi tidak didukung di Windows di cluster Amazon EKS.

Add-on Amazon CloudWatch Observability EKS didukung pada cluster Amazon EKS yang berjalan dengan Kubernetes versi 1.23 atau yang lebih baru.

Saat Anda menginstal add-on atau bagan Helm, Anda juga harus memberikan izin IAM untuk mengaktifkan CloudWatch agen mengirim metrik, log, dan pelacakan ke CloudWatch. Ada dua cara untuk melakukan hal ini:

  • Lampirkan sebuah kebijakan ke peran IAM simpul pekerja Anda. Opsi ini memberikan izin kepada node pekerja untuk mengirim telemetri. CloudWatch

  • Gunakan peran IAM untuk akun layanan untuk pod agen, dan lampirkan kebijakan pada peran ini. Ini hanya berfungsi untuk klaster Amazon EKS. Opsi ini memberikan CloudWatch akses hanya ke pod agen yang sesuai.

Opsi 1: Instal menggunakan EKS Pod Identity

Jika Anda menggunakan add-on versi 3.1.0 atau yang lebih baru, Anda dapat menggunakan EKS Pod Identity untuk memberikan izin yang diperlukan ke add-on. EKS Pod Identity adalah opsi yang direkomendasikan dan memberikan manfaat seperti hak istimewa terendah, rotasi kredensia, dan auditabilitas. Selain itu, menggunakan EKS Pod Identity memungkinkan Anda untuk menginstal add-on EKS sebagai bagian dari pembuatan cluster itu sendiri.

Untuk menggunakan metode ini, pertama-tama ikuti langkah-langkah asosiasi EKS Pod Identity untuk membuat peran IAM dan mengatur agen Identitas Pod EKS.

Kemudian instal add-on Amazon CloudWatch Observability EKS. Untuk menginstal add-on, Anda dapat menggunakan AWS CLI, konsol Amazon EKS, CloudFormation, atau Terraform.

AWS CLI
Untuk menggunakan AWS CLI untuk menginstal add-on Amazon CloudWatch Observability EKS

Masukkan perintah berikut. Ganti my-cluster-name dengan nama cluster Anda dan ganti 111122223333 dengan ID akun Anda. Ganti my-role dengan peran IAM yang Anda buat di langkah asosiasi EKS Pod Identity.

aws iam attach-role-policy \ --role-name my-role \ --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy aws eks create-addon \ --addon-name amazon-cloudwatch-observability \ --cluster-name my-cluster-name \ --pod-identity-associations serviceAccount=cloudwatch-agent,roleArn=arn:aws:iam::111122223333:role/my-role
Amazon EKS console
Untuk menggunakan konsol Amazon EKS untuk menambahkan add-on Amazon CloudWatch Observability EKS
  1. Buka konsol Amazon EKS di https://console.aws.amazon.com/eks/home #/cluster.

  2. Pada panel navigasi sebelah kiri, pilih Klaster.

  3. Pilih nama cluster yang ingin Anda konfigurasi add-on Amazon CloudWatch Observability EKS.

  4. Pilih Add-ons tab.

  5. Pilih Get more add-ons

  6. Pada halaman Pilih add-on, lakukan hal berikut:

    1. Di EKS-addons bagian Amazon, pilih kotak cent ang Amazon CloudWatch Observability.

    2. Pilih Berikutnya.

  7. Pada halaman Configure selected add-ons settings, lakukan hal berikut:

    1. Pilih Versi yang ingin Anda gunakan.

    2. Untuk Add-on akses, pilih EKS Pod Identity

    3. Jika Anda tidak memiliki peran IAM yang dikonfigurasi, pilih Buat peran yang disarankan, lalu pilih Ber ikutnya hingga Anda berada di Langkah 3 Nama, tinjau, dan buat. Anda dapat mengubah nama peran jika diinginkan, jika tidak, pilih Buat Per an, lalu kembali ke Add-on halaman dan pilih peran IAM yang baru saja Anda buat.

    4. (Opsional) Anda dapat memperluas Pengaturan konfigurasi opsional. Jika Anda memilih Override untuk metode resolusi Konflik, satu atau beberapa pengaturan untuk add-on yang sudah ada dapat ditimpa dengan pengaturan add-on Amazon EKS. Jika Anda tidak mengaktifkan opsi ini dan ada konflik dengan pengaturan yang ada, operasi gagal. Anda dapat menggunakan pesan kesalahan yang dihasilkan untuk memecahkan masalah konflik. Sebelum memilih opsi ini, pastikan add-on Amazon EKS tidak mengelola pengaturan yang perlu Anda kelola sendiri.

    5. Pilih Berikutnya.

  8. Pada halaman Review dan add, pilih Create. Setelah penginstalan add-on selesai, Anda melihat add-on yang diinstal.

CloudFormation
Untuk menggunakan CloudFormation untuk menginstal add-on Amazon CloudWatch Observability EKS
  1. Pertama, jalankan AWS CLI perintah berikut untuk melampirkan kebijakan IAM yang diperlukan ke peran IAM Anda. Ganti my-role dengan peran yang Anda buat di langkah asosiasi EKS Pod Identity.

    aws iam attach-role-policy \ --role-name my-role \ --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
  2. Kemudian buat sumber daya berikut. Ganti my-cluster-name dengan nama cluster Anda, ganti 111122223333 dengan ID akun Anda, dan ganti my-role dengan peran IAM yang dibuat di langkah asosiasi EKS Pod Identity. Untuk informasi selengkapnya, silakan lihat AWS::Addon.

    { "Resources": { "EKSAddOn": { "Type": "AWS::EKS::Addon", "Properties": { "AddonName": "amazon-cloudwatch-observability", "ClusterName": "my-cluster-name", "PodIdentityAssociations": [ { "ServiceAccount": "cloudwatch-agent", "RoleArn": "arn:aws:iam::111122223333:role/my-role" } ] } } } }
Terraform
Cara menggunakan Terraform untuk menginstal add-on Amazon CloudWatch Observability EKS
  1. Gunakan yang berikut ini. Ganti my-cluster-name dengan nama cluster Anda, ganti 111122223333 dengan ID akun Anda, dan ganti my-service-account-role dengan peran IAM yang dibuat di langkah asosiasi EKS Pod Identity.

    Untuk informasi selengkapnya, lihat Resource: aws_eks_addon dalam dokumentasi Terraform.

  2. resource "aws_iam_role_policy_attachment" "CloudWatchAgentServerPolicy" { policy_arn = "arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy" role = "my-role" } resource "aws_eks_addon" "example" { cluster_name = "my-cluster-name" addon_name = "amazon-cloudwatch-observability" pod_identity_associations { roleArn = "arn:aws:iam::111122223333:role/my-role" serviceAccount = "cloudwatch-agent" } }

Opsi 2: Instal dengan izin IAM pada node pekerja

Untuk menggunakan metode ini, pertama-tama lampirkan kebijakan CloudWatchAgentServerPolicy IAM ke node pekerja Anda dengan memasukkan perintah berikut. Dalam perintah ini, ganti my-worker-node-role dengan peran IAM yang digunakan oleh node pekerja Kubernetes Anda.

aws iam attach-role-policy \ --role-name my-worker-node-role \ --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy

Kemudian instal add-on Amazon CloudWatch Observability EKS. Untuk menginstal add-on, Anda dapat menggunakan, konsol AWS CLI, CloudFormation, atau Terraform.

AWS CLI
Untuk menggunakan AWS CLI untuk menginstal add-on Amazon CloudWatch Observability EKS

Masukkan perintah berikut. Ganti my-cluster-name dengan nama klaster Anda.

aws eks create-addon --addon-name amazon-cloudwatch-observability --cluster-name my-cluster-name
Amazon EKS console
Untuk menggunakan konsol Amazon EKS untuk menambahkan add-on Amazon CloudWatch Observability EKS
  1. Buka konsol Amazon EKS di https://console.aws.amazon.com/eks/home #/cluster.

  2. Pada panel navigasi sebelah kiri, pilih Klaster.

  3. Pilih nama cluster yang ingin Anda konfigurasi add-on Amazon CloudWatch Observability EKS.

  4. Pilih Add-ons tab.

  5. Pilih Get more add-ons

  6. Pada halaman Pilih add-on, lakukan hal berikut:

    1. Di EKS-addons bagian Amazon, pilih kotak cent ang Amazon CloudWatch Observability.

    2. Pilih Berikutnya.

  7. Pada halaman Configure selected add-ons settings, lakukan hal berikut:

    1. Pilih Versi yang ingin Anda gunakan.

    2. (Opsional) Anda dapat memperluas Pengaturan konfigurasi opsional. Jika Anda memilih Override untuk metode resolusi Konflik, satu atau beberapa pengaturan untuk add-on yang sudah ada dapat ditimpa dengan pengaturan add-on Amazon EKS. Jika Anda tidak mengaktifkan opsi ini dan ada konflik dengan pengaturan yang ada, operasi gagal. Anda dapat menggunakan pesan kesalahan yang dihasilkan untuk memecahkan masalah konflik. Sebelum memilih opsi ini, pastikan add-on Amazon EKS tidak mengelola pengaturan yang perlu Anda kelola sendiri.

    3. Pilih Berikutnya.

  8. Pada halaman Review dan add, pilih Create. Setelah penginstalan add-on selesai, Anda melihat add-on yang diinstal.

CloudFormation
Untuk menggunakan CloudFormation untuk menginstal add-on Amazon CloudWatch Observability EKS

Ganti my-cluster-name dengan nama klaster Anda. Untuk informasi selengkapnya, silakan lihat AWS::Addon.

{ "Resources": { "EKSAddOn": { "Type": "AWS::EKS::Addon", "Properties": { "AddonName": "amazon-cloudwatch-observability", "ClusterName": "my-cluster-name" } } } }
Helm chart
Untuk menggunakan bagan Helm observ abilitas amazon-cloudwatch-
  1. Anda harus menginstal Helm untuk menggunakan bagan ini. Untuk informasi selengkapnya tentang menginstal Helm, lihat dokumentasi Helm.

  2. Setelah Anda menginstal Helm, masukkan perintah berikut. Ganti my-cluster-name dengan nama cluster Anda, dan ganti my-cluster-region dengan Wilayah tempat cluster berjalan.

    helm repo add aws-observability https://aws-observability.github.io/helm-charts helm repo update aws-observability helm install --wait --create-namespace --namespace amazon-cloudwatch amazon-cloudwatch-observability aws-observability/amazon-cloudwatch-observability --set clusterName=my-cluster-name --set region=my-cluster-region
Terraform
Cara menggunakan Terraform untuk menginstal add-on Amazon CloudWatch Observability EKS

Ganti my-cluster-name dengan nama klaster Anda. Untuk informasi selengkapnya, silakan lihat Sumber daya: aws_eks_addon.

resource "aws_eks_addon" "example" { addon_name = "amazon-cloudwatch-observability" cluster_name = "my-cluster-name" }

Opsi 3: Instal menggunakan peran akun layanan IAM (hanya berlaku untuk menggunakan add-on)

Metode ini hanya berlaku jika Anda menggunakan add-on Amazon CloudWatch Observability EKS. Sebelum menggunakan metode ini, verifikasi prasyarat berikut:

  • Anda memiliki sebuah klaster Amazon EKS fungsional dengan simpul yang terlampir di salah satu Wilayah AWS yang mendukung Wawasan Kontainer. Untuk melihat daftar Wilayah yang didukung, silakan lihat Wawasan Kontainer.

  • Anda telah kubectl melakukan instalasi dan mengkonfigurasi untuk klaster. Untuk informasi selengkapnya, silakan lihat Menginstal kubectl dalam Panduan Pengguna Amazon EKS.

  • Anda telah eksctl melakukan instalasi. Untuk informasi selengkapnya, silakan lihat Menginstal atau memperbarui eksctl di Panduan Pengguna Amazon EKS.

AWS CLI
Untuk menggunakan AWS CLI untuk menginstal add-on Amazon CloudWatch Observability EKS menggunakan peran akun layanan IAM
  1. Masukkan perintah berikut untuk membuat penyedia OpenID Connect (OIDC), jika klaster belum memilikinya. Untuk informasi selengkapnya, silakan lihat Mengonfigurasi akun layanan Kubernetes untuk mengambil peran IAM dalam Panduan Pengguna Amazon EKS.

    eksctl utils associate-iam-oidc-provider --cluster my-cluster-name --approve
  2. Masukkan perintah berikut untuk membuat peran IAM dengan CloudWatchAgentServerPolicy kebijakan terlampir, dan konfigurasikan akun layanan agen untuk mengambil peran tersebut menggunakan OIDC. Ganti my-cluster-name dengan nama cluster Anda, dan ganti my-service-account-role dengan nama peran yang ingin Anda kaitkan dengan akun layanan. Jika peran tersebut belum ada, eksctl buatlah untuk Anda.

    eksctl create iamserviceaccount \ --name cloudwatch-agent \ --namespace amazon-cloudwatch --cluster my-cluster-name \ --role-name my-service-account-role \ --attach-policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy \ --role-only \ --approve
  3. Instal add-on berikut dengan memasukan perintah berikut. Ganti my-cluster-name dengan nama cluster Anda, ganti 111122223333 dengan ID akun Anda, dan ganti my-service-account-role dengan peran IAM yang dibuat pada langkah sebelumnya.

    aws eks create-addon --addon-name amazon-cloudwatch-observability --cluster-name my-cluster-name --service-account-role-arn arn:aws:iam::111122223333:role/my-service-account-role
Amazon EKS console
Untuk menggunakan konsol untuk menginstal add-on Amazon CloudWatch Observability EKS menggunakan peran akun layanan IAM
  1. Buka konsol Amazon EKS di https://console.aws.amazon.com/eks/home #/cluster.

  2. Pada panel navigasi sebelah kiri, pilih Klaster.

  3. Pilih nama cluster yang ingin Anda konfigurasi add-on Amazon CloudWatch Observability EKS.

  4. Pilih Add-ons tab.

  5. Pilih Get more add-ons

  6. Pada halaman Pilih add-on, lakukan hal berikut:

    1. Di EKS-addons bagian Amazon, pilih kotak cent ang Amazon CloudWatch Observability.

    2. Pilih Berikutnya.

  7. Pada halaman Configure selected add-ons settings, lakukan hal berikut:

    1. Pilih Versi yang ingin Anda gunakan.

    2. Untuk Add-on akses, pilih peran IAM untuk akun layanan (IRSA)

    3. Pilih peran IAM di kotak Add-on akses.

    4. (Opsional) Anda dapat memperluas Pengaturan konfigurasi opsional. Jika Anda memilih Override untuk metode resolusi Konflik, satu atau beberapa pengaturan untuk add-on yang sudah ada dapat ditimpa dengan pengaturan add-on Amazon EKS. Jika Anda tidak mengaktifkan opsi ini dan ada konflik dengan pengaturan yang ada, operasi gagal. Anda dapat menggunakan pesan kesalahan yang dihasilkan untuk memecahkan masalah konflik. Sebelum memilih opsi ini, pastikan add-on Amazon EKS tidak mengelola pengaturan yang perlu Anda kelola sendiri.

    5. Pilih Berikutnya.

  8. Pada halaman Review dan add, pilih Create. Setelah penginstalan add-on selesai, Anda melihat add-on yang diinstal.

(Opsional) Konfigurasi tambahan

Memilih keluar dari pengumpulan log kontainer

Secara default, add-on menggunakan Fluent Bit untuk mengumpulkan log kontainer dari semua pod dan kemudian mengirim CloudWatch log ke Log. Untuk informasi tentang log mana yang dikumpulkan, silakan lihat Kirim log ke CloudWatch Log.

catatan

Baik add-on maupun bagan Helm tidak mengelola sumber daya Fluentd atau Fluent Bit yang ada dalam sebuah cluster. Anda dapat menghapus sumber daya Fluentd atau Fluent Bit yang ada sebelum menginstal add-on atau bagan Helm. Atau, untuk menjaga pengaturan Anda yang ada dan menghindari add-on atau bagan Helm agar tidak menginstal Fluent Bit, Anda dapat menonaktifkannya dengan mengikuti instruksi di bagian ini.

Untuk memilih keluar dari pengumpulan log kontainer jika Anda menggunakan add-on Amazon CloudWatch Observability EKS, berikan opsi berikut saat Anda membuat atau memperbarui add-on:

--configuration-values '{ "containerLogs": { "enabled": false } }'

Untuk memilih keluar dari koleksi log kontainer jika Anda menggunakan bagan Helm, berikan opsi berikut saat Anda membuat atau memperbarui add-on:

--set containerLogs.enabled=false

Gunakan konfigurasi Fluent Bit kustom

Dimulai dengan add-on Amazon CloudWatch Observability EKS versi 1.7.0, Anda dapat memodifikasi konfigurasi Fluent Bit saat Anda membuat atau memperbarui add-on atau bagan Helm. Anda menyediakan konfigurasi Fluent Bit khusus di bagian level containerLogs root dari konfigurasi lanjutan add-on atau penggantian nilai di bagan Helm. Dalam bagian ini, Anda menyediakan konfigurasi Fluent Bit khusus di config bagian (untuk Linux) atau configWindows bagian (untuk Windows). Selanjutnya config dipecah menjadi sub-bagian berikut:

  • service— Bagian ini mewakili SERVICE konfigurasi untuk menentukan perilaku global mesin Fluent Bit.

  • customParsers— Bagian ini mewakili semua PARSER s global yang ingin Anda sertakan yang mampu mengambil entri log tidak terstruktur dan memberinya struktur untuk memudahkan pemrosesan dan pemfilteran lebih lanjut.

  • extraFiles- Bagian ini dapat digunakan untuk menyediakan conf file Fluent Bit tambahan untuk disertakan. Secara default, 3 conf file berikut disertakan:.

    • application-log.conf- conf File untuk mengirim log aplikasi dari cluster Anda ke grup log /aws/containerinsights/my-cluster-name/application di CloudWatch Log.

    • dataplane-log.confconf File untuk mengirim log yang sesuai dengan komponen bidang data cluster Anda termasuk log CRI, log kubelet, log kube-proxy dan log Amazon VPC CNI ke grup log di Log. /aws/containerinsights/my-cluster-name/dataplane CloudWatch

    • host-log.conf- A conf untuk mengirim log dari/var/log/dmesg,/var/log/messages, dan /var/log/secure di Linux, dan Sistem winlogs di Windows, ke grup log /aws/containerinsights/my-cluster-name/host in CloudWatch.

catatan

Berikan konfigurasi lengkap untuk masing-masing bagian individual ini bahkan jika Anda memodifikasi hanya satu bidang dalam sub-bagian. Sebaiknya gunakan konfigurasi default yang disediakan di bawah ini sebagai baseline dan kemudian memodifikasinya agar Anda tidak menonaktifkan fungsionalitas yang diaktifkan secara default. Anda dapat menggunakan konfigurasi YAML berikut saat memodifikasi konfigurasi lanjutan untuk add-on Amazon EKS atau saat Anda memberikan penggantian nilai untuk bagan Helm.

Untuk menemukan config bagian untuk cluster Anda, lihat aws-observability/helm-charts on GitHub dan temukan rilis yang sesuai dengan versi add-on atau bagan Helm yang Anda instal. Kemudian arahkan /charts/amazon-cloudwatch-observability/values.yaml ke untuk menemukan config bagian (untuk Linux) dan configWindows bagian (untuk Windows) di dalam fluentBit bagian di bawahcontainerLogs.

Sebagai contoh, konfigurasi Fluent Bit default untuk versi 1.7.0 dapat ditemukan di sini.

Kami menyarankan Anda memberikan YAML config as saat Anda menyediakannya menggunakan konfigurasi lanjutan add-on Amazon EKS atau saat Anda menyediakannya sebagai penggantian nilai untuk instalasi Helm Anda. Pastikan YAML sesuai dengan struktur berikut.

containerLogs: fluentBit: config: service: | ... customParsers: | ... extraFiles: application-log.conf: | ... dataplane-log.conf: | ... host-log.conf: | ...

Contoh berikut config mengubah pengaturan global untuk interval flush menjadi 45 detik. Meskipun satu-satunya modifikasi adalah Flush bidang, Anda masih harus memberikan SERVICE definisi lengkap untuk sub-bagian layanan. Karena contoh ini tidak menentukan penggantian untuk sub-bagian lain, default digunakan untuk mereka.

containerLogs: fluentBit: config: service: | [SERVICE] Flush 45 Grace 30 Log_Level error Daemon off Parsers_File parsers.conf storage.path /var/fluent-bit/state/flb-storage/ storage.sync normal storage.checksum off storage.backlog.mem_limit 5M

Contoh konfigurasi berikut mencakup conf file bit Fluent ekstra. Dalam contoh ini, Anda menambahkan kustom my-service.conf di bawah extraFiles dan itu akan disertakan selain tiga defaultextraFiles.

containerLogs: fluentBit: config: extraFiles: my-service.conf: | [INPUT] Name tail Tag myservice.* Path /var/log/containers/*myservice*.log DB /var/fluent-bit/state/flb_myservice.db Mem_Buf_Limit 5MB Skip_Long_Lines On Ignore_Older 1d Refresh_Interval 10 [OUTPUT] Name cloudwatch_logs Match myservice.* region ${AWS_REGION} log_group_name /aws/containerinsights/${CLUSTER_NAME}/myservice log_stream_prefix ${HOST_NAME}- auto_create_group true

Contoh berikutnya menghapus conf file yang ada seluruhnya dariextraFiles. Ini mengecualikan application-log.conf sepenuhnya dengan mengesampingkannya dengan string kosong. Cukup menghilangkan application-log.conf dari extraFiles malah berarti menggunakan default, yang bukan apa yang Anda coba capai dalam contoh ini. Hal yang sama berlaku untuk menghapus conf file kustom apa pun yang mungkin telah Anda tambahkan sebelumnyaextraFiles.

containerLogs: fluentBit: config: extraFiles: application-log.conf: ""

Mengelola toleransi Kubernetes untuk beban kerja pod yang diinstal

Dimulai dengan add-on Amazon CloudWatch Observability EKS versi 1.7.0, add-on dan bagan Helm secara default menetapkan toleransi Kubernetes untuk ment olerir semua noda pada beban kerja pod yang diinstal oleh add-on atau bagan Helm. Ini memastikan bahwa daemonset seperti CloudWatch agen dan Fluent Bit dapat menjadwalkan pod pada semua node di cluster Anda secara default. Untuk informasi selengkapnya tentang toleransi dan noda, lihat Taints and Tolerations dalam dokumentasi Kubernetes.

Toleransi default yang ditetapkan oleh add-on atau bagan Helm adalah sebagai berikut:

tolerations: - operator: Exists

Anda dapat mengganti toleransi default dengan menyetel tolerations bidang di tingkat root saat menggunakan konfigurasi lanjutan add-on atau saat Anda menginstal atau memutakhirkan bagan Helm dengan penggantian nilai. Contohnya akan terlihat seperti berikut:

tolerations: - key: "key1" operator: "Exists" effect: "NoSchedule"

Untuk menghilangkan toleransi sepenuhnya, Anda dapat menggunakan konfigurasi yang terlihat seperti berikut:

tolerations: []

Setiap perubahan toleransi berlaku untuk semua beban kerja pod yang diinstal oleh add-on atau bagan Helm.

Memilih keluar dari pengumpulan metrik komputasi yang dipercepat

Secara default, Container Insights dengan pengamatan yang ditingkatkan mengumpulkan metrik untuk pemantauan Compute Accelerated, termasuk metrik GPU NVIDIA, metrik N AWS euron untuk AWS Trainium dan AWS Inferentia, dan metrik Adaptor Fabric AWS Elastic (EFA).

Metrik GPU NVIDIA dari beban kerja Amazon EKS dikumpulkan secara default dimulai dengan v1.3.0-eksbuild.1 versi add-on EKS atau bagan Helm dan 1.300034.0 versi CloudWatch agen. Untuk daftar metrik yang dikumpulkan dan prasyarat, lihatMetrik GPU NVIDIA.

AWS Metrik neuron untuk akselerator AWS Trainium dan AWS Inferentia dikumpulkan secara default dimulai dengan versi v1.5.0-eksbuild.1 add-on EKS atau bagan Helm, dan versi agen1.300036.0. CloudWatch Untuk daftar metrik yang dikumpulkan dan prasyarat, lihatAWS Metrik neuron untuk AWS Trainium dan AWS Inferentia.

AWS Metrik Elastic Fabric Adapter (EFA) dari node Linux di cluster Amazon EKS dikumpulkan secara default dimulai dengan versi v1.5.2-eksbuild.1 add-on EKS atau bagan Helm dan versi 1.300037.0 CloudWatch agen. Untuk daftar metrik yang dikumpulkan dan prasyarat, lihatAWS Metrik Adaptor Kain Elastis (EFA).

Anda dapat memilih untuk tidak mengumpulkan metrik ini dengan menyet accelerated_compute_metrics el bidang di file konfigurasi CloudWatch agen kefalse. Bidang ini ada di kubernetes bagian metrics_collected bagian dalam file CloudWatch konfigurasi. Berikut ini adalah contoh konfigurasi opt-out. Untuk informasi selengkapnya tentang cara menggunakan konfigurasi CloudWatch agen kustom, lihat bagian berikut,Menggunakan konfigurasi CloudWatch agen kustom.

{ "logs": { "metrics_collected": { "kubernetes": { "enhanced_container_insights": true, "accelerated_compute_metrics": false } } } }

Menggunakan konfigurasi CloudWatch agen kustom

Untuk mengumpulkan metrik, log, atau pelacakan lain menggunakan CloudWatch agen, Anda dapat menentukan konfigurasi khusus sambil tetap mengaktifkan Wawasan Kontainer dan CloudWatch Sinyal Aplikasi. Untuk melakukannya, sematkan file konfigurasi CloudWatch agen dalam kunci konfigurasi di bawah kunci agen konfigurasi lanjutan yang dapat Anda gunakan saat membuat atau memperbarui add-on EKS atau bagan Helm. Berikut ini merupakan konfigurasi agen default ketika Anda tidak memberikan konfigurasi tambahan apa pun.

penting

Konfigurasi kustom apa pun yang Anda berikan menggunakan pengaturan konfigurasi tambahan akan menggantikan konfigurasi default yang digunakan oleh agen. Berhati-hatilah untuk tidak menonaktifkan fungsionalitas yang diaktifkan secara default secara tidak sengaja, seperti Wawasan Kontainer dengan pengamatan yang ditingkatkan dan Sin CloudWatch yal Aplikasi. Dalam skenario bahwa Anda diminta untuk menyediakan konfigurasi agen kustom, kami sarankan menggunakan konfigurasi default berikut sebagai dasar dan kemudian memodifikasinya sesuai dengan itu.

  • Untuk menggunakan add-on EKS CloudWatch observabilitas Amazon

    --configuration-values '{ "agent": { "config": { "logs": { "metrics_collected": { "application_signals": {}, "kubernetes": { "enhanced_container_insights": true } } }, "traces": { "traces_collected": { "application_signals": {} } } } } }'
  • Untuk menggunakan bagan Helm

    --set agent.config='{ "logs": { "metrics_collected": { "application_signals": {}, "kubernetes": { "enhanced_container_insights": true } } }, "traces": { "traces_collected": { "application_signals": {} } } }'

Contoh berikut menunjukkan konfigurasi agen default untuk CloudWatch agen di Windows. CloudWatch Agen di Windows tidak mendukung konfigurasi khusus.

{ "logs": { "metrics_collected": { "kubernetes": { "enhanced_container_insights": true }, } } }

Kelola sertifikat TLS webhook penerimaan

Add-on Amazon CloudWatch Observability EKS dan bagan Helm menggunakan webhook penerimaan Kubernetes untuk memvalidasi dan mengubah permintaan sumber daya ku Instrumentation stom (CR), AmazonCloudWatchAgent dan secara opsional permintaan pod Kubernetes pada cluster jika Sinyal Aplikasi diaktifkan. CloudWatch Di Kubernetes, webhook memerlukan sertifikat TLS yang dikonfigurasi untuk dipercaya oleh server API untuk memastikan komunikasi yang aman.

Secara default, add-on Amazon CloudWatch Observability EKS dan bagan Helm secara otomatis menghasilkan CA yang ditandatangani sendiri dan sertifikat TLS yang ditandatangani oleh CA ini untuk mengamankan komunikasi antara server API dan server webhook. Sertifikat yang dibuat secara otomatis ini memiliki kedaluwarsa default 10 tahun dan tidak diperpanjang secara otomatis setelah kedaluwarsa. Selain itu, bundel CA dan sertifikat dibuat ulang setiap kali add-on atau bagan Helm ditingkatkan atau diinstal ulang, sehingga mengatur ulang kedaluwarsa. Jika ingin mengubah kedaluwarsa default sertifikat yang dibuat secara otomatis, Anda dapat menggunakan konfigurasi tambahan berikut saat membuat atau memperbarui add-on. Ganti expiry-in-days dengan durasi kedaluwarsa yang Anda inginkan dalam beberapa hari.

  • Gunakan ini untuk add-on Amazon CloudWatch Observability EKS

    --configuration-values '{ "admissionWebhooks": { "autoGenerateCert": { "expiryDays": expiry-in-days } } }'
  • Gunakan ini untuk bagan Helm

    --set admissionWebhooks.autoGenerateCert.expiryDays=expiry-in-days

Untuk solusi otoritas sertifikat yang lebih aman dan kaya fitur, add-on ini memiliki dukungan opt-in untuk cert-manager, solusi yang diadopsi secara luas untuk manajemen sertifikat TLS di Kubernetes yang menyederhanakan proses memperoleh, memperbarui, mengelola, dan menggunakan sertifikat tersebut. Ini memastikan bahwa sertifikat valid dan terbaru, dan mencoba memperbarui sertifikat pada waktu yang dikonfigurasi sebelum kedaluwarsa. cert-manager juga menyederhanakan penerbitan sertifikat dari berbagai sumber yang didukung, termasuk Otoritas Sertifikat Pri AWS Certificate Manager badi.

Kami menyarankan Anda meninjau praktik terbaik untuk pengelolaan sertifikat TLS di klaster Anda dan menyarankan Anda untuk ikut serta dalam pengelola sertifikat untuk lingkungan produksi. Perhatikan bahwa jika Anda memilih untuk mengaktifkan cert-manager untuk mengelola sertifikat TLS webhook penerimaan, Anda harus melakukan pra-instal cert-manager di cluster Amazon EKS Anda sebelum menginstal add-on Amazon Observability EKS atau bagan Helm. CloudWatch Untuk informasi selengkapnya tentang opsi instalasi yang tersedia, lihat dokumentasi cert-manager. Setelah Anda menginstalnya, Anda dapat memilih untuk menggunakan cert-manager untuk mengelola sertifikat TLS webhook penerimaan menggunakan konfigurasi tambahan berikut.

  • Jika Anda menggunakan add-on Amazon CloudWatch Observability EKS

    --configuration-values '{ "admissionWebhooks": { "certManager": { "enabled": true } } }'
  • Jika Anda menggunakan bagan Helm

    --set admissionWebhooks.certManager.enabled=true
--configuration-values '{ "admissionWebhooks": { "certManager": { "enabled": true } } }'

Konfigurasi lanjutan yang dibahas di bagian ini secara default akan menggunakan SelfSigned penerbit.

Kumpulkan ID volume Amazon EBS

Jika ingin mengumpulkan ID volume Amazon EBS di log performa, Anda harus menambahkan kebijakan lain ke peran IAM yang terlampir ke simpul pekerja atau akun layanan. Tambahkan hal berikut sebagai kebijakan selaras. Untuk informasi selengkapnya, silakan lihat Menambahkan dan Menghapus Izin Identitas IAM.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "ec2:DescribeVolumes" ], "Resource": "*", "Effect": "Allow" } ] }

Kumpulkan metrik Ekstensi Manajemen Java (JMX)

CloudWatch Agen mendukung pengumpulan metrik Java Management Extensions (JMX) di Amazon EKS. Ini memungkinkan Anda mengumpulkan metrik tambahan dari aplikasi Java yang berjalan di cluster Amazon EKS yang memungkinkan wawasan tentang kinerja, penggunaan memori, lalu lintas, dan metrik penting lainnya. Untuk informasi selengkapnya, lihat Kumpulkan metrik Ekstensi Manajemen Java (JMX).

Aktifkan metrik Kueue

Dimulai dengan versi v2.4.0-eksbuild.1 add-on CloudWatch Observability EKS, Container Insights for Amazon EKS mendukung pengumpulan metrik Kueue dari cluster Amazon EKS. Untuk informasi selengkapnya tentang metrik ini, lihat Metrik Kueue.

Jika Anda menggunakan add-on Amazon SageMaker AI Hyperpod Task Governance EKS, Anda dapat melewati langkah-langkah di bagian Prasyarat dan cukup ikuti langkah-langkah diAktifkan bendera konfigurasi.

Prasyarat

Sebelum Anda menginstal Kueue di cluster Amazon EKS Anda, buat pembaruan berikut di file manifes:

  1. Aktifkan metrik sumber daya antrian cluster opsional untuk Kueue. Untuk melakukan ini, ubah in-line controller_manager_config.yaml di kueue-system ConfigMap. Di metrics bagian tersebut, tambahkan atau hapus komentar barisenableClusterQueueResources: true.

    apiVersion: v1 data: controller_manager_config.yaml: | apiVersion: config.kueue.x-k8s.io/v1beta1 kind: Configuration health: healthProbeBindAddress: :8081 metrics: bindAddress: :8080 enableClusterQueueResources: true <-- ADD/UNCOMMENT THIS LINE
  2. Secara default, semua k8s layanan tersedia di seluruh cluster. Kueue membuat layanan kueue-controller-manager-metrics-service untuk mengekspos metrik. Untuk mencegah pengamatan duplikat untuk metrik, ubah layanan ini untuk mengizinkan akses hanya ke layanan metrik dari node yang sama. Untuk melakukan ini, tambahkan baris internalTrafficPolicy: Local ke kueue-controller-manager-metrics-service definisi.

    apiVersion: v1 kind: Service metadata: labels: ... name: kueue-controller-manager-metrics-service namespace: kueue-system spec: ports: - name: https port: 8443 protocol: TCP targetPort: https internalTrafficPolicy: Local <-- ADD THIS LINE selector: control-plane: controller-manager
  3. Terakhir, kueue-controller-manager pod membuat kube-rbac-proxy wadah. Wadah ini saat ini memiliki tingkat verbositas logging yang tinggi, yang menyebabkan token pembawa cluster dicatat oleh wadah itu ketika scraper metrik mengakses. kueue-controller-manager-metrics-service Kami menyarankan Anda mengurangi verbositas logging ini. Nilai default dalam manifes yang didistribusikan oleh Kueue adalah 10, kami sarankan untuk mengubahnya menjadi 0.

    apiVersion: apps/v1 kind: Deployment metadata: labels: ... name: kueue-controller-manager namespace: kueue-system spec: ... template: ... spec: containers: ... - args: - --secure-listen-address=0.0.0.0:8443 - --upstream=http://127.0.0.1:8080/ - --logtostderr=true - --v=0 <-- CHANGE v=10 TO v=0 image: gcr.io/kubebuilder/kube-rbac-proxy:v0.8.0 name: kube-rbac-proxy ...

Aktifkan bendera konfigurasi

Untuk mengaktifkan metrik Kueue, Anda harus mengaktifkan kueue_container_insights konfigurasi tambahan add-on. Anda dapat melakukan ini dengan menggunakan AWS CLI untuk mengatur add-on Pengamatan EKS, atau dengan menggunakan konsol Amazon EKS.

Setelah berhasil menginstal add-on Pengamatan EKS dengan salah satu metode berikut, Anda dapat melihat metrik cluster Amazon EKS Anda di bawah tab Dasbor HyperPod konsol.

AWS CLI
Untuk mengaktifkan metrik Kueue menggunakan AWS CLI
  • Masukkan AWS CLI perintah berikut untuk menginstal add-on.

    aws eks create-addon --cluster-name cluster-name --addon-name amazon-cloudwatch-observability --configuration-values "configuration_json_file"

    Berikut ini adalah contoh file JSON dengan nilai konfigurasi.

    { "agent": { "config": { "logs": { "metrics_collected": { "kubernetes": { "kueue_container_insights": true, "enhanced_container_insights": true }, "application_signals": { } } }, "traces": { "traces_collected": { "application_signals": { } } } }, }, }
Amazon EKS console
Untuk mengaktifkan metrik Kueue menggunakan konsol Amazon EKS
  1. Buka konsol Amazon EKS di https://console.aws.amazon.com/eks/home #/cluster.

  2. Pilih nama cluster Anda.

  3. Pilih Add-ons.

  4. Temukan add-on Amazon CloudWatch Observability dalam daftar, dan instal. Ketika Anda melakukannya, pilih Konfigur asi opsional dan sertakan nilai konfigurasi JSON berikut.

    { "agent": { "config": { "logs": { "metrics_collected": { "kubernetes": { "kueue_container_insights": true, "enhanced_container_insights": true }, "application_signals": { } } }, "traces": { "traces_collected": { "application_signals": { } } } }, }, }

Menambahkan file konfigurasi OpenTelemetry kolektor

CloudWatch Agen mendukung file konfigurasi OpenTelemetry kolektor tambahan bersama file konfigurasinya sendiri. Fitur ini memungkinkan Anda untuk menggunakan fitur CloudWatch agen seperti Sin CloudWatch yal Aplikasi atau Wawasan Kontainer melalui konfigurasi CloudWatch agen dan memasukkan konfigurasi OpenTelemetry kolektor Anda yang ada dengan satu agen.

Untuk mencegah konflik penggabungan dengan pipeline yang dibuat secara otomatis oleh CloudWatch agen, tambahkan akhiran khusus ke setiap komponen dan pipeline dalam konfigurasi OpenTelemetry kolektor Anda. Ini akan mencegah bentrokan dan menggabungkan konflik.

  • Jika Anda menggunakan add-on Amazon CloudWatch Observability EKS

    --configuration-values file://values.yaml

    atau

    --configuration-values ' agent: otelConfig: receivers: otlp/custom-suffix: protocols: http: {} exporters: awscloudwatchlogs/custom-suffix: log_group_name: "test-group" log_stream_name: "test-stream" service: pipelines: logs/custom-suffix: receivers: [otlp/custom-suffix] exporters: [awscloudwatchlogs/custom-suffix] '
  • Jika Anda menggunakan bagan Helm

    --set agent.otelConfig=' receivers: otlp/custom-suffix: protocols: http: {} exporters: awscloudwatchlogs/custom-suffix: log_group_name: "test-group" log_stream_name: "test-stream" service: pipelines: logs/custom-suffix: receivers: [otlp/custom-suffix] exporters: [awscloudwatchlogs/custom-suffix] '

Mengaktifkan APM melalui Sinyal Aplikasi untuk cluster Amazon EKS Anda

Secara default, Pem OpenTelemetry antauan Kinerja Aplikasi (APM) berbasis (OTEL) diaktifkan melalui Sinyal Aplikasi saat menginstal add-on CloudWatch Observability EKS (V5.0.0 atau lebih besar) atau bagan Helm. Anda dapat menyesuaikan pengaturan tertentu lebih lanjut menggunakan konfigurasi lanjutan untuk add-on Amazon EKS atau dengan mengganti nilai dengan bagan Helm.

catatan

Jika Anda menggunakan solusi APM berbasis OpenTelemetry (OTEL) apa pun, mengaktifkan Sinyal Aplikasi memengaruhi pengaturan pengamatan yang ada. Tinjau implementasi Anda saat ini sebelum melanjutkan. Untuk mempertahankan penyiapan APM yang ada setelah memutakhirkan ke V5.0.0 atau yang lebih baru, lihatMemilih keluar dari Sinyal Aplikasi.

Sinyal Aplikasi Monitor otomatis

Versi 5.0.0 dari add-on CloudWatch Observability Amazon EKS dan bagan Helm memperkenalkan fungsionalitas baru. Anda sekarang dapat secara otomatis mengaktifkan Sinyal Aplikasi untuk semua atau beban kerja layanan tertentu di cluster EKS Anda melalui konfigurasi Monitor Otomatis. Peng autoMonitor aturan berikut dapat ditentukan dalam applicationSignals bagian di bawah manager bagian konfigurasi lanjutan.

  • monitor AllServices — Bendera boolean untuk mengaktifkan (true) atau menonaktifkan (false) pemantauan semua beban kerja layanan oleh Auto monitor. Defaultnya true. Mengaktifkan tanda ini akan memastikan bahwa semua beban kerja Kubernetes (Deployments, DaemonSets, dan StatefulSets) di cluster yang dipetakan ke Layanan Kubernetes akan berada dalam ruang lingkup untuk pengaktifan Sinyal Aplikasi secara otomatis saat ditampilkan untuk pertama kalinya (atau saat dimulai ulang untuk beban kerja yang ada). Sistem mengecualikan beban kerja di ruang kube-system nama amazon-cloudwatch dan secara default.

  • bahasa — Daftar string yang menentukan kumpulan bahasa yang akan coba Sinyal Aplikasi untuk secara otomatis instrumen layanan Anda, ketika monitorAllServices diaktifkan. Default untuk semua bahasa yang didukung.

  • RestartPods — Bendera boolean mengontrol apakah beban kerja dimulai ulang setelah perubahan konfigurasi. Defaultnya false. Mengaktifkan tanda ini untuk true mengontrol apakah beban kerja Kubernetes dalam lingkup monitor otomatis dimulai ulang secara otomatis saat menyimpan perubahan konfigurasi. Pengaturan apa pun pada beban kerja Kubernetes Anda yang memengaruhi restart pod seperti updateStrategy itu akan dipertimbangkan. Pertimbangkan bahwa memulai ulang dapat menyebabkan downtime layanan.

  • CustomSelector — Pengaturan untuk memilih ruang nama Kubernetes tertentu atau beban kerja untuk Auto monitor.

    • java - Tentukan beban kerja untuk instrumen secara otomatis dengan Java

    • python - Tentukan beban kerja untuk instrumen secara otomatis dengan Python

    • nodejs - Tentukan beban kerja untuk instrumen secara otomatis Node.js

    • dotnet - Tentukan beban kerja untuk instrumen secara otomatis dengan.NET

    Untuk setiap bahasa di atas, bidang berikut dapat dikonfigurasi.

    • ruang nama — Daftar string yang menentukan ruang nama yang akan dipilih. Defaultnya adalah daftar kosong, yaitu []

    • penerapan — Daftar string yang menentukan penerapan yang akan dipilih. Tentukan dalam namespace/deployment format. Defaultnya adalah daftar kosong, yaitu []

    • daemonsets — Daftar string yang menentukan daemonset yang akan dipilih. Tentukan dalam namespace/daemonset format. Defaultnya adalah daftar kosong, yaitu []

    • statefulsets — Daftar string yang menentukan statefulsets yang akan dipilih. Tentukan dalam namespace/statefulset format. Defaultnya adalah daftar kosong, yaitu []

  • mengecualikan — Pengaturan untuk mengecualikan ruang nama Kubernetes tertentu atau beban kerja dari Monitor Otomatis. Mengecualikan beban kerja diutamakan ketika beban kerja yang sama juga berada dalam lingkup monitorAllServices ataucustomSelector.

    • java - Tentukan beban kerja untuk dikecualikan agar tidak diinstrumentasi secara otomatis dengan Java

    • python - Tentukan beban kerja untuk dikecualikan agar tidak diinstrumentasi secara otomatis dengan Python

    • nodejs — Tentukan beban kerja untuk dikecualikan agar tidak diinstrumentasi secara otomatis Node.js

    • dotnet - Tentukan beban kerja untuk dikecualikan agar tidak diinstrumentasi secara otomatis dengan.NET

    Untuk setiap bahasa di atas, bidang berikut dapat dikonfigurasi.

    • ruang nama — Daftar string yang menentukan ruang nama yang akan dikecualikan. Defaultnya adalah daftar kosong, yaitu []

    • penerapan — Daftar string yang menentukan penerapan yang akan dikecualikan. Tentukan dalam namespace/deployment format. Defaultnya adalah daftar kosong, yaitu []

    • daemonsets — Daftar string yang menentukan daemonset yang akan dikecualikan. Tentukan dalam namespace/daemonset format. Defaultnya adalah daftar kosong, yaitu []

    • statefulsets — Daftar string yang menentukan statefulsets yang akan dikecualikan. Tentukan dalam namespace/statefulset format. Defaultnya adalah daftar kosong, yaitu []

Berikut ini adalah contoh konfigurasi yang secara otomatis mengaktifkan Sinyal Aplikasi untuk semua beban kerja layanan yang ada dan baru di cluster.

manager: applicationSignals: autoMonitor: monitorAllServices: true restartPods: true

Berikut ini adalah contoh konfigurasi yang secara otomatis mengaktifkan Sinyal Aplikasi untuk setiap beban kerja layanan baru yang dibawa dan untuk setiap beban kerja layanan yang ada yang secara eksplisit dimulai ulang pada cluster.

manager: applicationSignals: autoMonitor: monitorAllServices: true

Berikut ini adalah contoh konfigurasi yang secara otomatis mengaktifkan Sinyal Aplikasi dengan Java untuk semua pod yang ada dan baru yang sesuai dengan beban kerja di pet-warehouse namespace.

manager: applicationSignals: autoMonitor: restartPods: true customSelector: java: namespaces: ["pet-warehouse"]

Berikut ini adalah contoh konfigurasi yang secara otomatis mengaktifkan Sinyal Aplikasi dengan Python untuk semua beban kerja layanan yang ada dan baru di cluster tidak termasuk pet-clinic penerapan.

manager: applicationSignals: autoMonitor: monitorAllServices: true languages: ["python"] restartPods: true exclude: python: deployments: ["pet-warehouse/pet-clinic"]

Berikut ini adalah contoh konfigurasi yang secara otomatis mengaktifkan Sinyal Aplikasi dengan Java untuk semua beban kerja layanan di cluster kecuali untuk yang ada di python-apps namespace dan selanjutnya mengaktifkan Sinyal Aplikasi dengan Python khusus untuk penerapan di sample-python-app namespace. python-apps

manager: applicationSignals: autoMonitor: monitorAllServices: true languages: ["java"] restartPods: true customSelector: python: deployments: ["python-apps/sample-python-app"] exclude: java: namespaces: ["python-apps"]

Pertimbangan untuk cluster Kubernetes besar

Jika Anda menjalankan cluster Kubernetes besar, Anda mungkin memerlukan konfigurasi tambahan untuk memastikan CloudWatch agen berjalan dengan andal. Bagian berikut menjelaskan masalah umum dan konfigurasi yang direkomendasikan untuk cluster besar.

Instalasi agen terpisah untuk metrik tingkat cluster dan tingkat node

catatan

Bagian ini hanya berlaku jika Anda mengaktifkan Wawasan Kontainer dengan pengamatan yang ditingkatkan. Jika Anda menggunakan Con tainer Insights dengan OpenTelemetry metrik secara eksklusif, penginstalan default sudah menerapkan instalasi agen terpisah.

Secara default, CloudWatch agen berjalan sebagai daemonset pada setiap node di cluster Anda. Satu agen Pod dipilih sebagai pemimpin untuk mengumpulkan metrik tingkat cluster. Metrik ini mencakup metrik bidang kontrol dan metrik status beban kerja. Pada cluster besar, pemimpin ini Pod dapat dihentikan dengan kesalahan kehabisan memori (OOM) karena melakukan pekerjaan tambahan sambil berbagi batas sumber daya yang sama dengan semua agen Pod lainnya.

Untuk menentukan apakah Anda mengalami masalah ini, periksa agen Pod dalam keadaan gagal dengan kode keluar 137 dan alasanOOMKilled. Gejala umum adalah bahwa satu agen Pod (pemimpin) mogok, pemimpin baru dipilih, dan itu Pod juga macet, menciptakan siklus berulang. Untuk mengkonfirmasi perilaku ini, periksa pemilihan pemimpin ConfigMap dengan menjalankan perintah berikut.

kubectl describe configmap cwagent-clusterleader -n amazon-cloudwatch

Jika ConfigMap menunjukkan perubahan yang sering terjadi pada entri pemimpin, ini menunjukkan bahwa pemimpin baru dipilih berulang kali, yang menegaskan masalah tersebut.

Untuk menghindari masalah ini, Anda dapat memisahkan agen menjadi dua instalasi:

  • Daemonset untuk metrik tingkat simpul dan Sinyal Aplikasi

  • Penerapan untuk metrik tingkat cluster

Pemisahan ini memungkinkan Anda mengelola dan menskalakan setiap instalasi secara independen.

Untuk mengaktifkan konfigurasi ini, gunakan konfigurasi lanjutan untuk menentukan dua entri di agents bagian:

  1. Setel variabel CWAGENT_ROLE lingkungan ke NODE pada agen daemonset.

  2. Setel variabel CWAGENT_ROLE lingkungan ke LEADER pada agen penerapan.

penting

Konfigurasi agen penerapan hanya harus mengaktifkan Wawasan Kontainer. Jangan aktifkan Sinyal Aplikasi pada agen penerapan. Kedua instalasi berjalan secara hostNetwork default, dan mengaktifkan Sinyal Aplikasi pada keduanya menyebabkan konflik pengikatan port.

Contoh berikut menunjukkan konfigurasi lanjutan yang memisahkan agen menjadi dua instalasi.

agents: - name: cloudwatch-agent env: - name: CWAGENT_ROLE value: NODE - name: cloudwatch-agent-ci-leader mode: deployment config: { "logs": { "metrics_collected": { "kubernetes": { "enhanced_container_insights": true } } } } env: - name: CWAGENT_ROLE value: LEADER resources: limits: memory: 10Gi cpu: 2000m

Dalam contoh ini, selain menyetel variabel CWAGENT_ROLE lingkungan pada setiap penginstalan agen, variabel ini mengganti mode default, konfigurasi, dan batas sumber daya untuk agen penerapan saja. cloudwatch-agentInstalasi dasar menggunakan default.

Anda dapat menyesuaikan lebih lanjut setiap instalasi agen dengan menambahkannodeSelector,tolerations, atau nodeAffinity bidang untuk menjadwalkan pemimpin Pod pada node tertentu. Batas sumber daya yang ditunjukkan pada contoh sebelumnya adalah ilustratif. Sesuaikan nilai-nilai ini berdasarkan ukuran cluster Anda dan jumlah metrik yang dikumpulkan Pod pemimpin.

Pertimbangan untuk Amazon EKS Hybrid Nodes

Node-level metrik tidak tersedia untuk node hibrida karena Wawasan Kontainer bergantung pada ketersediaan Layanan Metadata Instance EC2 (IMDS) untuk metrik tingkat node. Metrik tingkat clusterPod, beban kerja, dan container tersedia untuk node hybrid.

Setelah Anda menginstal add-on, tambal amazoncloudwatchagents sumber daya untuk menambahkan variabel RUN_WITH_IRSA lingkungan sehingga agen berhasil berjalan pada node hybrid:

kubectl patch amazoncloudwatchagents cloudwatch-agent -n amazon-cloudwatch --type=json -p '[{"op":"add","path":"/spec/env/-","value":{"name":"RUN_WITH_IRSA","value":"True"}}]'

Memecahkan masalah add-on Amazon CloudWatch Observability EKS atau bagan Helm

Gunakan informasi berikut untuk membantu memecahkan masalah dengan add-on Amazon CloudWatch Observability EKS atau bagan Helm

Memperbarui dan menghapus add-on Amazon CloudWatch Observability EKS atau bagan Helm

Untuk petunjuk tentang memperbarui atau menghapus add-on Amazon CloudWatch Observability EKS, lihat M engelola add-on Amazon EKS. Gunakan amazon-cloudwatch-observability sebagai nama add-on.

Untuk menghapus bagan Helm di cluster, masukkan perintah berikut.

helm delete amazon-cloudwatch-observability -n amazon-cloudwatch --wait

Verifikasi versi CloudWatch agen yang digunakan oleh add-on Amazon CloudWatch Observability EKS atau bagan Helm

Add-on Amazon CloudWatch Observability EKS dan bagan Helm menginstal sumber daya khusus semacam AmazonCloudWatchAgent itu yang mengontrol perilaku daemonset CloudWatch agen pada cluster, termasuk versi CloudWatch agen yang digunakan. Anda bisa mendapatkan daftar semua sumber daya AmazonCloudWatchAgent kustom yang diinstal pada klaster Anda dengan memasukkan perintah berikut:

kubectl get amazoncloudwatchagent -A

Dalam output perintah ini, Anda harus dapat memeriksa versi CloudWatch agen. Atau, Anda juga dapat mendeskripsikan sumber daya amazoncloudwatchagent atau salah satu pod cloudwatch-agent-* yang berjalan di klaster Anda untuk memeriksa citra yang digunakan.

Menangani ConfigurationConflict saat mengelola add-on atau bagan Helm

Saat Anda menginstal atau memperbarui add-on Amazon CloudWatch Observability EKS atau bagan Helm, jika Anda melihat kegagalan yang disebabkan oleh sumber daya yang ada, kemungkinan karena Anda sudah memiliki CloudWatch agen dan komponen terkait seperti ServiceAccount, ClusterRole dan yang ClusterRoleBinding diinstal pada cluster.

Kesalahan yang ditampilkan oleh add-on akan mencakupConflicts found when trying to apply. Will not continue due to resolve conflicts mode,

Kesalahan yang ditampilkan oleh bagan Helm akan mirip denganError: INSTALLATION FAILED: Unable to continue with install and invalid ownership metadata..

Ketika add-on atau bagan Helm mencoba menginstal CloudWatch agen dan komponen terkaitnya, jika mendeteksi adanya perubahan dalam konten, secara default gagal instalasi atau pembaruan untuk menghindari penulisan status sumber daya pada cluster.

Jika Anda mencoba masuk ke add-on Amazon CloudWatch Observability EKS dan Anda melihat kegagalan ini, sebaiknya hapus pengaturan CloudWatch agen yang sudah ada yang sebelumnya telah Anda instal di cluster dan kemudian menginstal add-on EKS atau bagan Helm. Pastikan untuk membuat cadangan penyesuaian apa pun yang mungkin telah Anda buat ke pengaturan CloudWatch agen asli seperti konfigurasi agen khusus, dan berikan ini ke add-on atau bagan Helm saat Anda menginstal atau memperbaruinya berikutnya. Jika sebelumnya Anda telah menginstal CloudWatch agen untuk orientasi ke Container Insights, lihat Panduan penyiapan (AWS CLI) untuk informasi selengkapnya.

Atau, add-on mendukung opsi konfigurasi resolusi konflik yang memiliki kemampuan untuk menentukan OVERWRITE. Anda dapat menggunakan opsi ini untuk melanjutkan dengan melakukan instalasi atau memperbarui add-on dengan menimpa konflik di klaster. Jika Anda menggunakan konsol Amazon EKS, Anda akan menemukan Metode penyelesaian konflik saat Anda memilih Pengaturan konfigurasi opsional ketika Anda membuat atau memperbarui add-on. Jika Anda menggunakan AWS CLI, Anda dapat memberikan perintah Anda --resolve-conflicts OVERWRITE untuk membuat atau memperbarui add-on.

Memilih keluar dari Sinyal Aplikasi

Fine-tune preferensi pemantauan layanan Anda di CloudWatch konsol atau dengan SDK.

Untuk menonaktifkan pemantauan otomatis Sinyal Aplikasi, ikuti prosedur di bawah ini:

Menggunakan CLI atau SDK

Konfigurasi berikut dapat diterapkan baik sebagai konfigurasi lanjutan ke add-on EKS atau sebagai penggantian nilai saat menggunakan bagan helm.

{ "manager": { "applicationSignals": { "autoMonitor": { "monitorAllServices": false } } } }

Mulai ulang layanan Anda agar perubahan berlaku.

Menggunakan konsol

Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/.

  1. Di panel navigasi, di bawah Sinyal Aplikasi (APM), pilih Layanan.

  2. Pilih Aktifkan Sinyal Aplikasi untuk melihat halaman pengaktifan.

  3. Kosongkan Auto-Monitor kotak centang untuk setiap layanan yang tidak ingin Anda pantau.

  4. Mulai ulang layanan Anda agar perubahan berlaku.