Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Instal Agen SSM di node pekerja Amazon EKS dengan menggunakan Kubernetes DaemonSet
Mahendra Revanasiddappa, Amazon Web Services
Ringkasan
Catatan, September 2021: Amazon EKS terbaru yang dioptimalkan AMIs menginstal Agen SSM secara otomatis. Untuk informasi lebih lanjut, lihat catatan rilis
Di Amazon Elastic Kubernetes Service (Amazon EKS), karena pedoman keamanan, node pekerja tidak memiliki pasangan kunci Secure Shell (SSH) yang melekat padanya. Pola ini menunjukkan bagaimana Anda dapat menggunakan tipe DaemonSet sumber daya Kubernetes untuk menginstal AWS Systems Manager Agent (SSM Agent) pada semua node pekerja, alih-alih menginstalnya secara manual atau mengganti Amazon Machine Image (AMI) untuk node. DaemonSet menggunakan pekerjaan cron pada node pekerja untuk menjadwalkan instalasi Agen SSM. Anda juga dapat menggunakan pola ini untuk menginstal paket lain pada node pekerja.
Saat Anda memecahkan masalah di klaster, menginstal Agen SSM sesuai permintaan memungkinkan Anda membuat sesi SSH dengan node pekerja, mengumpulkan log, atau melihat konfigurasi instans, tanpa pasangan kunci SSH.
Prasyarat dan batasan
Prasyarat
Cluster Amazon EKS yang ada dengan node pekerja Amazon Elastic Compute Cloud (Amazon EC2).
Instance kontainer harus memiliki izin yang diperlukan untuk berkomunikasi dengan layanan SSM. Peran terkelola AWS Identity and Access Management (IAM) Amazon SSMManaged InstanceCore menyediakan izin yang diperlukan agar Agen SSM berjalan pada instans. EC2 Untuk informasi selengkapnya, lihat dokumentasi AWS Systems Manager.
Batasan
Pola ini tidak berlaku untuk AWS Fargate, karena DaemonSets tidak didukung pada platform Fargate.
Pola ini hanya berlaku untuk node pekerja berbasis Linux.
DaemonSet Pod berjalan dalam mode istimewa. Jika klaster Amazon EKS memiliki webhook yang memblokir pod dalam mode istimewa, Agen SSM tidak akan diinstal.
Arsitektur
Diagram berikut menggambarkan arsitektur untuk pola ini.

Alat
Alat
kubectl adalah utilitas baris perintah yang digunakan untuk berinteraksi dengan kluster Amazon EKS. Pola ini digunakan
kubectluntuk menyebarkan a DaemonSet di kluster Amazon EKS, yang akan menginstal Agen SSM di semua node pekerja.Amazon EKS memudahkan Anda menjalankan Kubernetes di AWS tanpa harus menginstal, mengoperasikan, dan memelihara bidang kontrol atau node Kubernetes Anda sendiri. Kubernetes adalah sebuah sistem sumber terbuka untuk melakukan otomatisasi terhadap deployment, penskalaan, dan pengelolaan aplikasi terkontainer.
AWS Systems Manager Session Manager memungkinkan Anda mengelola EC2 instans, instans lokal, dan mesin virtual (VMs) melalui shell interaktif berbasis browser satu klik, atau melalui AWS Command Line Interface (AWS CLI).
Kode
Gunakan kode berikut untuk membuat file DaemonSet konfigurasi yang akan menginstal Agen SSM di kluster Amazon EKS. Ikuti instruksi di bagian Epik.
cat << EOF > ssm_daemonset.yaml apiVersion: apps/v1 kind: DaemonSet metadata: labels: k8s-app: ssm-installer name: ssm-installer namespace: kube-system spec: selector: matchLabels: k8s-app: ssm-installer template: metadata: labels: k8s-app: ssm-installer spec: containers: - name: sleeper image: busybox command: ['sh', '-c', 'echo I keep things running! && sleep 3600'] initContainers: - image: amazonlinux imagePullPolicy: Always name: ssm command: ["/bin/bash"] args: ["-c","echo '* * * * * root yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm & rm -rf /etc/cron.d/ssmstart' > /etc/cron.d/ssmstart"] securityContext: allowPrivilegeEscalation: true volumeMounts: - mountPath: /etc/cron.d name: cronfile terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumes: - name: cronfile hostPath: path: /etc/cron.d type: Directory dnsPolicy: ClusterFirst restartPolicy: Always schedulerName: default-scheduler terminationGracePeriodSeconds: 30 EOF
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Instal dan konfigurasikan kubectl untuk mengakses kluster EKS. | Jika | DevOps |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Buat file DaemonSet konfigurasi. | Gunakan kode di bagian Kode sebelumnya dalam pola ini untuk membuat file DaemonSet konfigurasi yang disebut Pod yang diluncurkan oleh DaemonSet memiliki wadah utama dan Ketika wadah init telah selesai, wadah utama menunggu selama 60 menit sebelum keluar. Setelah 60 menit, pod baru diluncurkan. Pod ini menginstal Agen SSM, jika tidak ada, atau memperbarui Agen SSM ke versi terbaru. Jika diperlukan, Anda dapat memodifikasi | DevOps |
Terapkan DaemonSet di cluster Amazon EKS. | Untuk menyebarkan file DaemonSet konfigurasi yang Anda buat pada langkah sebelumnya di klaster Amazon EKS, gunakan perintah berikut:
Perintah ini membuat sebuah DaemonSet untuk menjalankan pod pada node pekerja untuk menginstal Agen SSM. | DevOps |
Sumber daya terkait
Menginstal kubectl (dokumentasi Amazon EKS)
Menyiapkan Session Manager (dokumentasi AWS Systems Manager)