View a markdown version of this page

Referensi nodead m node hibrida - Amazon EKS

Bantu meningkatkan halaman ini

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

Untuk berkontribusi pada panduan pengguna ini, pilih GitHub tautan Edit halaman ini di yang terletak di panel kanan setiap halaman.

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

Referensi nodead m node hibrida

Amazon EKS Hybrid Nodes CLI (nodeadm) menyederhanakan instalasi, konfigurasi, pendaftaran, dan penghapusan instalasi komponen node hibrida. Anda dapat menyertakan nodeadm dalam gambar sistem operasi Anda untuk mengotomatiskan bootstrap node hybrid, lihat Siapkan sistem operasi untuk node hybrid untuk informasi lebih lanjut.

nodeadmVersi untuk node hibrida berbeda dari nodeadm versi yang digunakan untuk bootstrap instans Amazon EC2 sebagai node di cluster Amazon EKS. Ikuti dokumentasi dan referensi untuk nodeadm versi yang sesuai. Halaman dokumentasi ini untuk nodeadm versi node hybrid.

Kode sumber untuk node hybrid nodeadm dipublikasikan di https://github.com/aws/eks-hybrid GitHub repositori.

penting

Anda harus menjalankan nodeadm dengan pengguna yang memiliki root/sudo hak istimewa.

Diperlukan versi nodeadm untuk penyedia kredenSIAL SSM

Jika Anda menggunakan AWS System Manager (SSM) sebagai penyedia kredensia untuk node hibrida, Anda harus menggunakan nodeadm versi 1.0.19 atau yang lebih baru untuk instalasi dan peningkatan baru. Versi sebelumnya nodeadm berisi kunci penandatanganan SSM yang sudah ketinggalan zaman dan gagal selama nodeadm install dan nodeadm upgrade dengan kesalahan verifikasi tanda tangan berikut:

"msg":"Command failed","error":"failed to install ssm installer: validating ssm-setup-cli signature: Signature Verification Error: No matching signature"

Untuk mengatasi kesalahan ini, unduh versi terbaru nodeadm sebelum menjalankan nodeadm install ataunodeadm upgrade.

Unduh nodeadm

Versi node hybrid di-host di Amazon S3 yang didepan oleh Amazon CloudFront. nodeadm Untuk menginstal nodeadm pada setiap host lokal, Anda dapat menjalankan perintah berikut dari host lokal Anda.

Untuk host x86_64

curl -OL 'https://hybrid-assets.eks.amazonaws.com/releases/latest/bin/linux/amd64/nodeadm'

Untuk host ARM

curl -OL 'https://hybrid-assets.eks.amazonaws.com/releases/latest/bin/linux/arm64/nodeadm'

Tambahkan izin file yang dapat dieksekusi ke biner yang diunduh di setiap host.

chmod +x nodeadm

menginstal nodeadm

Per nodeadm install intah ini digunakan untuk menginstal artefak dan dependensi yang diperlukan untuk menjalankan dan menggabungkan node hybrid ke cluster Amazon EKS. Per nodeadm install intah dapat dijalankan secara individual pada setiap node hybrid atau dapat dijalankan selama pipeline pembuatan gambar untuk pra-instal dependensi node hybrid dalam gambar sistem operasi.

Penggunaan

nodeadm install [KUBERNETES_VERSION] [flags]

Argumen Posisi

(Diperlukan) Versi KUBERNETES_VERSION mayor.minor dari EKS Kubernetes untuk menginstal, misalnya 1.32

Bendera

Nama Diperlukan Deskripsi

-p,

--credential-provider

BETUL

Penyedia kredensi untuk menginstal. Nilai yang didukung adalah iam-ra dan ssm. Untuk informasi selengkapnya, lihat Siapkan kredenSIAL untuk node hibrida.

-s,

--containerd-source

SALAH

Sumber untukcontainerd. nodeadmmendukung penginst containerd alan dari distro OS, paket Docker, dan melewatkan containerd instalasi.

Nilai-nilai

distro- Ini adalah nilai default. nodeadmakan menginstal containerd paket terbaru yang didistribusikan oleh node OS yang kompatibel dengan versi EKS Kubernetes. distrobukan nilai yang didukung untuk sistem operasi Red Hat Enterprise Linux (RHEL).

docker- nodeadm akan menginstal containerd paket terbaru yang dibangun dan didistribusikan oleh Docker yang kompatibel dengan versi EKS Kubernetes. dockerbukan nilai yang didukung untuk Amazon Linux 2023.

none- tidak nodeadm akan menginstal containerd paket. Anda harus menginstal secara manual containerd sebelum menjalankannodeadm init.

-r,

--region

SALAH

Menentukan AWS Wilayah untuk mengunduh artefak seperti Agen SSM. Default ke us-west-2.

-t,

--timeout

SALAH

Durasi perintah instalasi maksimum. Input mengikuti format durasi. Sebagai contoh, 1h23m. Batas waktu unduhan default untuk perintah instal diatur ke 20 menit.

-h, --help

SALAH

Menampilkan pesan bantuan dengan parameter bendera, subperintah, dan nilai posisi yang tersedia.

Contoh

Instal versi Kubernetes 1.32 dengan AWS Systems Manager (SSM) sebagai penyedia kredensi

nodeadm install 1.32 --credential-provider ssm

Instal versi Kubernetes 1.32 dengan AWS Systems Manager (SSM) sebagai penyedia kredensi, Docker sebagai sumber containerd, dengan batas waktu unduhan 20 menit.

nodeadm install 1.32 --credential-provider ssm --containerd-source docker --timeout 20m

Instal versi Kubernetes 1.32 dengan AWS IAM Roles Anywhere sebagai penyedia kredensi

nodeadm install 1.32 --credential-provider iam-ra

pemeriksaan konfigurasi nodeadm

Per nodeadm config check intah memeriksa konfigurasi node yang disediakan untuk kesalahan. Perintah ini dapat digunakan untuk memverifikasi dan memvalidasi kebenaran file konfigurasi simpul hibrida.

Penggunaan

nodeadm config check [flags]

Bendera

Nama Diperlukan Deskripsi

-c,

--config-source

BETUL

Sumber konfigurasi nodeadm. Untuk node hybrid input harus mengikuti URI dengan skema file.

-h, --help

SALAH

Menampilkan pesan bantuan dengan parameter bendera, subperintah, dan nilai posisi yang tersedia.

Contoh

nodeadm config check -c file://nodeConfig.yaml

Nodeadm Init

Per nodeadm init intah memulai dan menghubungkan node hybrid dengan cluster Amazon EKS yang dikonfigurasi. Lihat Konfigurasi Node untuk aktivasi hibrida SSM atau Konfigurasi Node untuk Peran IAM Di Mana Saja untuk detail tentang cara mengkonfigurasi nodeConfig.yaml file.

Penggunaan

nodeadm init [flags]

Bendera

Nama Diperlukan Deskripsi

-c,

--config-source

BETUL

Sumber nodeadm konfigurasi. Untuk node hybrid input harus mengikuti URI dengan skema file.

-s,

--skip

SALAH

Fase yang init harus dilewati. Tidak disarankan untuk melewatkan salah satu fase kecuali membantu memperbaiki masalah.

Nilai-nilai

install-validationmelewatkan pemeriksaan apakah perintah install sebelumnya berhasil berjalan.

cni-validationmelewatkan pemeriksaan apakah port VXLAN Cilium atau Calico CNI dibuka jika firewall diaktifkan pada node

node-ip-validationmelewatkan pemeriksaan apakah IP node termasuk dalam CIDR di jaringan node jarak jauh

-h, --help

SALAH

Menampilkan pesan bantuan dengan parameter bendera, subperintah, dan nilai posisi yang tersedia.

Contoh

nodeadm init -c file://nodeConfig.yaml

upgrade nodeadm

Per nodeadm upgrade intah memutakhirkan semua artefak yang diinstal ke versi terbaru dan mem-bootstrap node untuk mengonfigurasi artefak yang ditingkatkan dan bergabung dengan cluster EKS. AWS Upgrade adalah perintah yang mengganggu beban kerja yang berjalan di node. Harap pindahkan beban kerja Anda ke node lain sebelum menjalankan upgrade.

Penggunaan

nodeadm upgrade [KUBERNETES_VERSION] [flags]

Argumen Posisi

(Diperlukan) Versi KUBERNETES_VERSION mayor.minor dari EKS Kubernetes untuk menginstal, misalnya 1.32

Bendera

Nama Diperlukan Deskripsi

-c,

--config-source

BETUL

Sumber nodeadm konfigurasi. Untuk node hybrid input harus mengikuti URI dengan skema file.

-t,

--timeout

SALAH

Batas waktu untuk mengunduh artefak. Input mengikuti format durasi. Misalnya 1h23m. Batas waktu unduhan default untuk perintah upgrade diatur ke 10 menit.

-s,

--skip

SALAH

Fase peningkatan harus dilewati. Tidak disarankan untuk melewatkan fase apa pun kecuali membantu memperbaiki masalah.

Nilai-nilai

pod-validationmelewatkan pemeriksaan apakah semua no pod berjalan di node, kecuali set daemon dan pod statis.

node-validationmelewatkan pemeriksaan apakah node telah dibatasi.

init-validationmelewatkan pemeriksaan apakah node telah berhasil diinisialisasi sebelum menjalankan upgrade.

containerd-major-version-upgrademencegah peningkatan versi utama containerd selama pemutakhiran node.

-h, --help

SALAH

Menampilkan pesan bantuan dengan parameter bendera, subperintah, dan nilai posisi yang tersedia.

Contoh

nodeadm upgrade 1.32 -c file://nodeConfig.yaml
nodeadm upgrade 1.32 -c file://nodeConfig.yaml --timeout 20m

menghapus nodeadm

Per nodeadm uninstall intah menghentikan dan menghapus instalasi artefak selama nodeadmnodeadm install, termasuk kubelet dan containerd. Perhatikan, perintah uninstall tidak menguras atau menghapus node hybrid Anda dari cluster Anda. Anda harus menjalankan operasi drain dan menghapus secara terpisah, lihat Hapus node hybrid untuk informasi lebih lanjut. Secara default, tidak nodeadm uninstall akan melanjutkan jika ada pod yang tersisa di node. Demikian pula, nodeadm uninstall tidak menghapus dependensi CNI atau dependensi add-on Kubernetes lain yang Anda jalankan di cluster Anda. Untuk menghapus instalasi CNI sepenuhnya dari host Anda, lihat instruksi diKonfigurasikan CNI untuk node hybrid. Jika Anda menggunakan aktivasi hibrida AWS SSM sebagai penyedia kredentif lokal, nodeadm uninstall perintah akan membatalkan pendaftaran host Anda sebagai instans yang dikelola SSM. AWS

Penggunaan

nodeadm uninstall [flags]

Bendera

Nama Diperlukan Deskripsi

-s,

--skip

SALAH

Fase uninstall harus dilewati. Tidak disarankan untuk melewatkan salah satu fase kecuali membantu memperbaiki masalah.

Nilai-nilai

pod-validationmelewatkan pemeriksaan apakah semua no pod berjalan di node, kecuali set daemon dan pod statis.

node-validationmelewatkan pemeriksaan apakah node telah dibatasi.

init-validationmelewatkan pemeriksaan apakah node telah berhasil diinisialisasi sebelum menjalankan uninstall.

-h,

--help

SALAH

Menampilkan pesan bantuan dengan parameter bendera, subperintah, dan nilai posisi yang tersedia.

-f,

--force

SALAH

Paksa hapus direktori tambahan yang mungkin berisi file yang tersisa dari komponen Kubernetes dan CNI.

PERINGATAN

Ini akan menghapus semua konten di direktori Kubernetes dan CNI default (/var/lib/cni,, /etc/cni/net.d dll). Jangan gunakan bendera ini jika Anda menyimpan data Anda sendiri di lokasi ini.

Mulai dari nodeadmv1.0.9, ./nodeadm uninstall --skip node-validation,pod-validation --force perintah tidak lagi menghapus direktori. /var/lib/kubelet Ini karena mungkin berisi volume Pod dan direktori volume-subpath yang terkadang menyertakan filesystem node yang terpasang.

Tips penanganan yang aman

- Menghapus jalur yang dipasang dapat menyebabkan penghapusan sistem file node yang dipasang secara tidak disengaja. Sebelum menghapus /var/lib/kubelet direktori secara manual, hati-hati memeriksa semua mount aktif dan unmount volume dengan aman untuk menghindari kehilangan data.

Contoh

nodeadm uninstall
nodeadm uninstall --skip node-validation,pod-validation

debug nodeadm

Per nodeadm debug intah ini dapat digunakan untuk memecahkan masalah node hybrid yang tidak sehat atau salah konfigurasi. Ini memvalidasi persyaratan berikut ada di tempat.

  • Node memiliki akses jaringan ke AWS API yang diperlukan untuk mendapatkan kredenSIAL,

  • Node dapat mendapatkan AWS kredenSIAL untuk peran IAM Nodes Hibrid yang dikonfigurasi,

  • Node memiliki akses jaringan ke titik akhir EKS Kubernetes API dan validitas sertifikat titik akhir EKS Kubernetes API,

  • Node dapat mengotentikasi dengan cluster EKS, identitasnya di cluster valid, dan node memiliki akses ke cluster EKS melalui VPC yang dikonfigurasi untuk cluster EKS.

Jika kesalahan ditemukan, output perintah menyarankan langkah-langkah pemecahan masalah. Langkah-langkah validasi tertentu menunjukkan proses anak. Jika ini gagal, output ditampilkan di bagian stderr di bawah kesalahan validasi.

Penggunaan

nodeadm debug [flags]

Bendera

Nama Diperlukan Deskripsi

-c, --config-source

BETUL

Sumber nodeadm konfigurasi. Untuk node hybrid input harus mengikuti URI dengan skema file.

--no-color

SALAH

Menonaktifkan output warna. Berguna untuk otomatisasi.

-h, --help

SALAH

Menampilkan pesan bantuan dengan parameter bendera, subperintah, dan nilai posisi yang tersedia.

Contoh

nodeadm debug -c file://nodeConfig.yaml

Lokasi file Nodeadm

menginstal nodeadm

Saat menjalankannodeadm install, file dan lokasi file berikut dikonfigurasi.

Artefak Jalur

Peran IAM Anywhere CLI

/usr/local/bin/aws_signing_helper

Kubelet biner

/usr/bin/kubbelet

Kubectl biner

usr/local/bin/kubectl

Penyedia KredenSIAL ECR

/etc/eks/imag provider/ecr e-credential- -penyedia kredensi

AWS Otentikator IAM

/usr/local/bin/aws-pengautentikasi iam

CLI Pengaturan SSM

/opt/ssm/ssm-setup-cli

SSM Agent

Di Ubuntu -/snap/amazon-ssm- /amazon-ssm-agent agent/current

Pada RHEL & AL2023 - /amazon-ssm-agent usr/bin

Containerd

Di Ubuntu & AL2023 - /containerd usr/bin

Di RHEL -/bin/containerd

Iptables

Di Ubuntu & AL2023 - /iptables usr/sbin

Di RHEL -/sbin/iptables

Plugin CNI

/opt/cni/tempat sampah

pelacak artefak yang diinstal

/opt/nodeadm/pelacak

Nodeadm Init

Saat menjalankannodeadm init, file dan lokasi file berikut dikonfigurasi.

Nama Jalur

Kubelet kubik figur

/var/lib/kubelet/kubeconfig

Konfigurasi Kubelet

etc/kubernetes//kubelet/config.json

Satuan sistem Kubelet

/etc/systemd/system/kubelet.layanan

Konfigurasi penyedia kredenSIAL gambar

/etc/eks/gambar-kredensial--.json provider/config

Berkas env Kubelet

/etc/eks/kubelet/environment

Sertifikat Kubelet

/etc/kubernetes/pki/ca.crt

Konfigurasi kontainer

/etc/containerd/config.toml

Konfigurasi modul kernel kontainer

/etc/modules-muat. d/containerd.conf

AWS berkas konfigurasi

/etc/aws/hybrid/config

AWS file kredenSIAL (jika mengaktifkan file kredenSIAL)

/eks-hibrida/. aws/credentials

AWS unit sistem pembantu penandatanganan

/etc/systemd/system/aws_signing_helper_update.layanan

Berkas conf Sysctl

/etc/sysctl. d/99-nodeadm.conf

Ca-certificates

/etc/ssl/certs/ca-sertifikat.crt

File kunci Gpg

/etc/apt/keyrings/docker.asc

File sumber repo Docker

/etc/apt/sources.list. d/docker.daftar

Konfigurasi Node untuk aktivasi hibrida SSM

Berikut ini adalah contoh nodeConfig.yaml saat menggunakan aktivasi hibrida AWS SSM untuk kredenSIAL node hibrida.

apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: # Name of the EKS cluster region: # AWS Region where the EKS cluster resides hybrid: ssm: activationCode: # SSM hybrid activation code activationId: # SSM hybrid activation id

Konfigurasi Node untuk Peran IAM Di Mana Saja

Berikut ini adalah contoh nodeConfig.yaml untuk AWS IAM Roles Anywhere untuk kredenSIAL node hibrida.

Saat menggunakan AWS IAM Roles Anywhere sebagai penyedia kredenSIAL lokal, yang nodeName Anda gunakan dalam nodeadm konfigurasi harus selaras dengan izin yang Anda cakupkan untuk peran IAM Node Hibrid Anda. Misalnya, jika izin Anda untuk peran Hybrid Nodes IAM hanya mengizinkan AWS IAM Roles Anywhere untuk mengambil peran ketika nama sesi peran sama dengan CN sertifikat host, maka nodeName dalam nodeadm konfigurasi Anda harus sama dengan CN sertifikat Anda. nodeNameYang Anda gunakan tidak boleh lebih dari 64 karakter. Untuk informasi selengkapnya, lihat Siapkan kredenSIAL untuk node hibrida.

apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: # Name of the EKS cluster region: # AWS Region where the EKS cluster resides hybrid: iamRolesAnywhere: nodeName: # Name of the node trustAnchorArn: # ARN of the IAM Roles Anywhere trust anchor profileArn: # ARN of the IAM Roles Anywhere profile roleArn: # ARN of the Hybrid Nodes IAM role certificatePath: # Path to the certificate file to authenticate with the IAM Roles Anywhere trust anchor privateKeyPath: # Path to the private key file for the certificate

Konfigurasi Node untuk menyesuaikan kubelet (Opsional)

Anda dapat meneruskan konfigurasi kubelet dan flag dalam konfigurasi Andanodeadm. Lihat contoh berikut untuk cara menambahkan label node tambahan abc.example.com/test-label dan mengatur konfigurasi kubelet shutdownGracePeriod ke 30 detik. Untuk informasi selengkapnya tentang opsi konfigurasi kubelet, lihat referensi Konfigurasi Kubelet (v1beta1) dalam dokumentasi Kubernetes. Untuk informasi selengkapnya tentang flag baris perintah kubelet, lihat referensi kubelet CLI di dokumentasi Kubernetes.

apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: # Name of the EKS cluster region: # AWS Region where the EKS cluster resides kubelet: config: # Map of kubelet config and values shutdownGracePeriod: 30s flags: # List of kubelet flags - --node-labels=abc.example.com/test-label=true hybrid: ssm: activationCode: # SSM hybrid activation code activationId: # SSM hybrid activation id

Konfigurasi Node untuk menyesuaikan containerd (Opsional)

Anda dapat meneruskan konfigurasi containerd khusus dalam konfigurasi Andanodeadm. Konfigurasi containerd untuk nodeadm menerima TOML in-line. Lihat contoh di bawah ini untuk cara mengonfigurasi containerd untuk menonaktifkan penghapusan lapisan gambar yang belum dibongkar di penyimpanan konten containerd.

apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: # Name of the EKS cluster region: # AWS Region where the EKS cluster resides containerd: config: | # Inline TOML containerd additional configuration [plugins."io.containerd.grpc.v1.cri".containerd] discard_unpacked_layers = false hybrid: ssm: activationCode: # SSM hybrid activation code activationId: # SSM hybrid activation id
catatan

Containerd versi 1.x dan 2.x menggunakan format konfigurasi yang berbeda. Containerd 1.x menggunakan konfigurasi versi 2, sedangkan containerd 2.x menggunakan konfigurasi versi 3. Meskipun containerd 2.x tetap kompatibel ke belakang dengan konfigurasi versi 2, konfigurasi versi 3 direkomendasikan untuk kinerja optimal. Periksa versi containerd Anda dengan containerd --version atau tinjau log nodeadm instalasi. Untuk detail lebih lanjut tentang pembuatan versi konfigurasi, lihat https://containerd.io/releases/

Anda juga dapat menggunakan konfigurasi containerd untuk mengaktifkan dukungan SELinux. Dengan SELinux diaktifkan pada containerd, pastikan pod yang dijadwalkan pada node memiliki SecurityContext dan se yang tepat diaktifkan. LinuxOptions Informasi lebih lanjut tentang mengkonfigurasi konteks keamanan dapat ditemukan di dokumentasi Kubernetes.

catatan

Red Hat Enterprise Linux (RHEL) 8 dan RHEL 9 mengaktifkan SELinux secara default dan diatur ke ketat pada host. Amazon Linux 2023 mengaktifkan SELinux secara default dan diatur ke mode permisif. Ketika SELinux diatur ke mode permisif pada host, mengaktifkannya di containerd tidak akan memblokir permintaan tetapi akan mencatatnya sesuai dengan konfigurasi SELinux pada host.

apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: # Name of the EKS cluster region: # AWS Region where the EKS cluster resides containerd: config: | # Inline TOML containerd additional configuration [plugins."io.containerd.grpc.v1.cri"] enable_selinux = true hybrid: ssm: activationCode: # SSM hybrid activation code activationId: # SSM hybrid activation id