Instal Agen dan CloudWatch agen SSM di node pekerja Amazon EKS menggunakan preBootstrapCommands - AWS Prescriptive Guidance

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

Instal Agen dan CloudWatch agen SSM di node pekerja Amazon EKS menggunakan preBootstrapCommands

Kamahadevi Hiremath, Amazon Web Services

Ringkasan

Pola ini menyediakan contoh kode dan langkah-langkah untuk menginstal AWS Systems Manager Agent (Agen SSM) dan CloudWatch agen Amazon di node pekerja Amazon Elastic Kubernetes Service (Amazon EKS) di Amazon Web Services (AWS) Cloud selama pembuatan klaster Amazon EKS. Anda dapat menginstal Agen dan CloudWatch agen SSM dengan menggunakan preBootstrapCommands properti dari skema file eksctl konfigurasi (dokumentasi Weaveworks). Kemudian, Anda dapat menggunakan Agen SSM untuk terhubung ke node worker Anda tanpa menggunakan key pair Amazon Elastic Compute Cloud EC2 (Amazon). Selain itu, Anda dapat menggunakan CloudWatch agen untuk memantau pemanfaatan memori dan disk pada node pekerja Amazon EKS Anda.

Prasyarat dan batasan

Prasyarat

Batasan

  • Sebaiknya hindari menambahkan skrip yang sudah berjalan lama ke preBootstrapCommands properti, karena ini menunda node bergabung dengan klaster Amazon EKS selama aktivitas penskalaan. Kami menyarankan Anda membuat Amazon Machine Image (AMI) kustom sebagai gantinya.

  • Pola ini hanya berlaku untuk instans Amazon EC2 Linux.

Arsitektur

Tumpukan teknologi

  • Amazon CloudWatch

  • Amazon Elastic Kubernetes Service (Amazon EKS)

  • AWS Systems Manager Parameter Store

Arsitektur target

Diagram berikut menunjukkan contoh pengguna yang menghubungkan ke node pekerja Amazon EKS menggunakan Agen SSM yang diinstal menggunakan. preBootstrapCommands

User connecting to Amazon EKS worker nodes via Systems Manager, with SSM Agent and CloudWatch agent on each node.

Diagram menunjukkan alur kerja berikut:

  1. Pengguna membuat kluster Amazon EKS dengan menggunakan file eksctl konfigurasi dengan preBootstrapCommands properti, yang menginstal Agen dan CloudWatch agen SSM.

  2. Setiap instance baru yang bergabung dengan cluster nanti karena aktivitas penskalaan dibuat dengan Agen dan agen SSM yang sudah diinstal sebelumnya. CloudWatch

  3. Pengguna terhubung ke Amazon EC2 dengan menggunakan Agen SSM dan kemudian memonitor memori dan pemanfaatan disk dengan menggunakan agen. CloudWatch

Alat

  • Amazon CloudWatch membantu Anda memantau metrik sumber daya AWS Anda dan aplikasi yang Anda jalankan di AWS secara real time.

  • Amazon Elastic Kubernetes Service (Amazon EKS) membantu Anda menjalankan Kubernetes di AWS tanpa perlu menginstal atau memelihara control plane atau node Kubernetes Anda sendiri.

  • AWS Systems Manager Parameter Store menyediakan penyimpanan hierarkis yang aman untuk manajemen data konfigurasi dan manajemen rahasia.

  • AWS Systems Manager Session Manager membantu Anda mengelola EC2 instans, instans lokal, dan mesin virtual melalui shell berbasis browser interaktif, sekali klik, atau melalui AWS Command Line Interface (AWS CLI).

  • eksctl adalah utilitas baris perintah untuk membuat dan mengelola cluster Kubernetes di Amazon EKS.

  • kubectl adalah utilitas baris perintah untuk berkomunikasi dengan server API cluster.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Simpan file konfigurasi CloudWatch agen.

Simpan file konfigurasi CloudWatch agen di AWS Systems Manager Parameter Store di Wilayah AWS tempat Anda ingin membuat klaster Amazon EKS. Untuk melakukan ini, buat parameter di AWS Systems Manager Parameter Store dan catat nama parameter (misalnya,AmazonCloudwatch-linux).

Untuk informasi selengkapnya, lihat kode file konfigurasi CloudWatch agen Contoh di bagian Informasi tambahan dari pola ini.

DevOps insinyur

Buat file konfigurasi eksctl dan cluster.

  1. Buat file eksctl konfigurasi yang menyertakan langkah-langkah instalasi CloudWatch agen dan Agen SSM. Untuk informasi selengkapnya, lihat Contoh kode file konfigurasi eksctl di bagian Informasi tambahan dari pola ini.

  2. Buat cluster dengan menjalankan eksctl create cluster -f cluster.yaml perintah.

AWS DevOps
TugasDeskripsiKeterampilan yang dibutuhkan

Uji Agen SSM.

Gunakan SSH untuk menyambung ke node cluster Amazon EKS Anda dengan menggunakan salah satu metode yang tercakup dalam Memulai sesi dari dokumentasi AWS Systems Manager.

AWS DevOps

Uji CloudWatch agennya.

Gunakan CloudWatch konsol untuk memvalidasi CloudWatch agen:

  1. Masuk ke AWS Management Console dan buka CloudWatch konsol.

  2. Pada panel navigasi, perluas Metrik, lalu pilih Semua metrik.

  3. Di kotak pencarian di tab Browse, masukkan lalu pilih CWAgent metrik untuk melihat metrik memori dan disk.

AWS DevOps

Sumber daya terkait

Informasi tambahan

Contoh file konfigurasi CloudWatch agen

Dalam contoh berikut, CloudWatch agen dikonfigurasi untuk memantau pemanfaatan disk dan memori pada instance Amazon Linux:

{ "agent": { "metrics_collection_interval": 60, "run_as_user": "cwagent" }, "metrics": { "append_dimensions": { "AutoScalingGroupName": "${aws:AutoScalingGroupName}", "ImageId": "${aws:ImageId}", "InstanceId": "${aws:InstanceId}", "InstanceType": "${aws:InstanceType}" }, "metrics_collected": { "disk": { "measurement": [ "used_percent" ], "metrics_collection_interval": 60, "resources": [ "*" ] }, "mem": { "measurement": [ "mem_used_percent" ], "metrics_collection_interval": 60 } } } }

Contoh file konfigurasi eksctl

apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: test region: us-east-2 version: "1.24" managedNodeGroups: - name: test minSize: 2 maxSize: 4 desiredCapacity: 2 volumeSize: 20 instanceType: t3.medium preBootstrapCommands: - sudo yum install amazon-ssm-agent -y - sudo systemctl enable amazon-ssm-agent - sudo systemctl start amazon-ssm-agent - sudo yum install amazon-cloudwatch-agent -y - sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c ssm:AmazonCloudwatch-linux iam: attachPolicyARNs: - arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy - arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy - arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly - arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy - arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore

Detail kode tambahan

  • Di baris terakhir preBootstrapCommands properti, AmazonCloudwatch-linux adalah nama parameter yang dibuat di AWS System Manager Parameter Store. Anda harus menyertakan AmazonCloudwatch-linux di Parameter Store di Wilayah AWS yang sama tempat Anda membuat klaster Amazon EKS. Anda juga dapat menentukan jalur file, tetapi sebaiknya gunakan Systems Manager untuk otomatisasi dan penggunaan kembali yang lebih mudah.

  • Jika Anda menggunakan preBootstrapCommands dalam file eksctl konfigurasi, Anda akan melihat dua templat peluncuran di AWS Management Console. Template peluncuran pertama mencakup perintah yang ditentukan dalampreBootstrapCommands. Template kedua mencakup perintah yang ditentukan dalam preBootstrapCommands dan data pengguna Amazon EKS default. Data ini diperlukan untuk mendapatkan node untuk bergabung dengan cluster. Grup Auto Scaling grup node menggunakan data pengguna ini untuk memutar instance baru.

  • Jika Anda menggunakan iam atribut dalam file eksctl konfigurasi, Anda harus mencantumkan kebijakan Amazon EKS default dengan kebijakan tambahan apa pun yang diperlukan dalam kebijakan AWS Identity and Access Management (IAM) terlampir. Dalam cuplikan kode dari Buat file konfigurasi eksctl dan langkah cluster, CloudWatchAgentServerPolicy dan kebijakan tambahan AmazonSSMMangedInstanceCore ditambahkan untuk memastikan bahwa CloudWatch agen dan Agen SSM berfungsi seperti yang diharapkan. KebijakanAmazonEKSWorkerNodePolicy,AmazonEKS_CNI_Policy, adalah AmazonEC2ContainerRegistryReadOnly kebijakan wajib yang diperlukan agar klaster Amazon EKS berfungsi dengan benar.