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.
Siapkan sistem operasi untuk node hybrid
Bottlerocket, Amazon Linux 2023 (AL2023), Ubuntu, dan RHEL divalidasi secara berkelanjutan untuk digunakan sebagai sistem operasi node untuk node hibrida. Bottlerocket hanya didukung oleh lingkungan VMware v AWS Sphere. AL2023 tidak tercakup oleh Paket AWS Dukungan jika dijalankan di luar Amazon EC2. AL2023 hanya dapat digunakan di lingkungan virtual lokal, lihat Panduan Pengguna Amazon Linux 2023 untuk informasi selengkapnya. AWS mendukung integrasi node hybrid dengan sistem operasi Ubuntu dan RHEL tetapi tidak memberikan dukungan untuk sistem operasi itu sendiri.
Anda bertanggung jawab atas penyediaan dan manajemen sistem operasi. Saat menguji node hibrida untuk pertama kalinya, paling mudah menjalankan Amazon EKS Hybrid Nodes CLI (nodeadm) pada host yang sudah disediakan. Untuk penerapan produksi, kami sarankan Anda menyertakan nodeadm gambar sistem operasi yang dikonfigurasi untuk dijalankan sebagai layanan systemd untuk secara otomatis menggabungkan host ke cluster Amazon EKS saat startup host. Jika Anda menggunakan Bottlerocket sebagai sistem operasi node Anda di vSphere, Anda tidak perlu menggunakannya nodeadm karena Bottlerocket sudah berisi dependensi yang diperlukan untuk node hybrid dan akan secara otomatis terhubung ke cluster yang Anda konfigurasi saat startup host.
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.
Kompatibilitas versi
Tabel di bawah ini mewakili versi sistem operasi yang kompatibel dan divalidasi untuk digunakan sebagai sistem operasi node untuk node hybrid. Jika Anda menggunakan varian atau versi sistem operasi lain yang tidak termasuk dalam tabel ini, maka kompatibilitas node hybrid dengan varian atau versi sistem operasi Anda tidak tercakup oleh AWS Dukungan. Node hibrida bersifat agnostik terhadap infrastruktur yang mendasarinya dan mendukung arsitektur x86 dan ARM.
| Sistem Operasi | Versi |
|---|---|
|
Amazon Linux |
Amazon Linux 2023 (AL2023) |
|
Bottlerocket |
v1.37.0 dan di atas varian VMware yang menjalankan Kubernetes v1.28 dan di atasnya |
|
Ubuntu |
Ubuntu 20.04, Ubuntu 22.04, Ubuntu 24.04 |
|
Linux Red Hat Enterprise |
RHEL 8, RHEL 9 |
Pertimbangan sistem operasi
Umum
-
Amazon EKS Hybrid Nodes CLI (
nodeadm) dapat digunakan untuk menyederhanakan instalasi dan konfigurasi komponen node hibrida dan dependensi. Anda dapat menjalankannodeadm installproses selama pipeline pembuatan image sistem operasi atau saat runtime di setiap host lokal. Untuk informasi selengkapnya tentang komponennodeadmyang diinstal, lihatReferensi nodead m node hibrida. -
Jika Anda menggunakan proxy di lingkungan lokal untuk menjangkau internet, ada konfigurasi sistem operasi tambahan yang diperlukan untuk proses penginstalan dan peningkatan untuk mengonfigurasi pengelola paket Anda agar menggunakan proxy. Lihat Konfigurasikan proxy untuk node hybrid untuk instruksi.
Bottlerocket
-
Langkah-langkah dan alat untuk menghubungkan node Bottlerocket berbeda dari langkah-langkah untuk sistem operasi lain dan dibahas secara terpisahHubungkan node hybrid dengan Bottlerocket, bukan langkah-langkah di dalamnya. Hubungkan node hibrida
-
Langkah-langkah untuk Bottlerocket tidak menggunakan alat CLI node hybrid,.
nodeadm -
Hanya varian VMware dari Bottlerocket versi v1.37.0 dan yang lebih tinggi yang didukung dengan EKS Hybrid Nodes. Varian VMware dari Bottlerocket tersedia untuk Kubernetes versi v1.28 dan yang lebih tinggi. Varian Bottlerocket lainnya tidak
didukung sebagai sistem operasi node hybrid. CATATAN: Varian Bottlerocket VMware hanya tersedia untuk arsitektur x86_64.
Kontainer
-
Containerd adalah runtime container Kubernetes standar dan merupakan ketergantungan untuk node hybrid, serta semua jenis komputasi node Amazon EKS. Amazon EKS Hybrid Nodes CLI (
nodeadm) mencoba menginstal containerd selama proses berlangsung.nodeadm installAnda dapat mengonfigurasi instalasi containerd saatnodeadm installruntime dengan opsi baris--containerd-sourceperintah. Opsi yang valid adalahnone,distro, dandocker. Jika Anda menggunakan RHEL, itudistrobukan opsi yang valid dan Anda dapat mengonfigurasinodeadmuntuk menginstal build containerd dari repo Docker atau Anda dapat menginstal containerd secara manual. Saat menggunakan AL2023 atau Ubuntu,nodeadmdefault untuk menginstal containerd dari distribusi sistem operasi. Jika Anda tidak ingin nodeadm menginstal containerd, gunakan opsi.--containerd-source none
Ubuntu
-
Jika Anda menggunakan Ubuntu 24.04, Anda mungkin perlu memperbarui versi containerd Anda atau mengubah AppArmor konfigurasi Anda untuk mengadopsi perbaikan yang memungkinkan pod untuk diakhiri dengan benar, lihat Ubuntu #2065423.
Diperlukan reboot untuk menerapkan perubahan pada AppArmor profil. Versi terbaru Ubuntu 24.04 memiliki versi containerd yang diperbarui di pengelola paketnya dengan perbaikan (containerd versi 1.7.19+).
LENGAN
-
Jika Anda menggunakan perangkat keras ARM, prosesor yang ARMv8.2 sesuai dengan Ekstensi Kriptografi (ARMv8.2+crypto) diperlukan untuk menjalankan add-on EKS kube-proxy versi 1.31 ke atas. Semua sistem Raspberry Pi sebelum Raspberry Pi 5, serta prosesor Cortex-A72 berbasis, tidak memenuhi persyaratan ini. Sebagai solusinya, Anda dapat terus menggunakan add-on EKS kube-proxy versi 1.30 hingga mencapai akhir dukungan diperpanjang pada Juli 2026, lihat kalender rilis Kubernetes, atau gunakan gambar kube-proxy khusus dari hulu.
-
Pesan kesalahan berikut di log kube-proxy menunjukkan ketidakcocokan ini:
Fatal glibc error: This version of Amazon Linux requires a newer ARM64 processor compliant with at least ARM architecture 8.2-a with Cryptographic extensions. On EC2 this is Graviton 2 or later.
Membangun gambar sistem operasi
Amazon EKS menyediakan contoh template Packer yang dapat nodeadm dan mengkonfigurasinya untuk dijalankan saat host-startup. Proses ini disarankan untuk menghindari menarik dependensi node hybrid secara individual pada setiap host dan untuk mengotomatiskan proses bootstrap node hybrid. Anda dapat menggunakan contoh template Packer dengan gambar ISO Ubuntu 22.04, Ubuntu 24.04, RHEL 8 atau RHEL 9 dan dapat menampilkan gambar dengan format ini: OVA, Qcow2, atau mentah.
Prasyarat
Sebelum menggunakan contoh template Packer, Anda harus menginstal yang berikut pada mesin tempat Anda menjalankan Packer.
-
Packer versi 1.11.0 atau lebih tinggi. Untuk petunjuk tentang menginstal Packer, lihat Meng instal Packer
dalam dokumentasi Packer. -
Jika membangun OVA, plugin VMware vSphere 1.4.0 atau lebih tinggi
-
Jika membangun
Qcow2atau gambar mentah, plugin QEMU versi 1.x
Tetapkan Variabel Lingkungan
Sebelum menjalankan build Packer, atur variabel lingkungan berikut pada mesin tempat Anda menjalankan Packer.
Umum
Variabel lingkungan berikut harus diatur untuk membangun gambar dengan semua sistem operasi dan format output.
| Variabel Lingkungan | Tipe | Deskripsi |
|---|---|---|
|
PKR_SSH_PASSWORD |
String |
Packer menggunakan |
|
ISO_URL |
String |
URL ISO untuk digunakan. Dapat berupa tautan web untuk mengunduh dari server, atau jalur absolut ke file lokal |
|
ISO_CHECKSUM |
String |
Checksum terkait untuk ISO yang disediakan. |
|
PENYEDIA KREDENSI |
String |
Penyedia kredensi untuk node hibrida. Nilai yang valid adalah |
|
K8S_VERSION |
String |
Versi Kubernetes untuk node hibrida (misalnya). |
|
NODEADM_ARCH |
String |
Arsitektur untuk |
RHEL
Jika Anda menggunakan RHEL, variabel lingkungan berikut harus diatur.
| Variabel Lingkungan | Tipe | Deskripsi |
|---|---|---|
|
RH_NAMA PENGGUNA |
String |
Nama pengguna manajer langganan RHEL |
|
RH_PASSWORD |
String |
Kata sandi pengelola langganan RHEL |
|
RHEL_VERSION |
String |
Versi iso Rhel sedang digunakan. Nilai-nilai yang valid adalah |
Ubuntu
Tidak ada variabel Ubuntu-specific lingkungan yang diperlukan.
vSphere
Jika Anda membangun VMware vSphere OVA, variabel lingkungan berikut harus disetel.
| Variabel Lingkungan | Tipe | Deskripsi |
|---|---|---|
|
SERVER VSPHERE |
String |
Alamat server vSphere |
|
VSPHERE_USER |
String |
Nama pengguna vSphere |
|
VSPHERE_PASSWORD |
String |
Kata sandi vSphere |
|
VSPHERE_DATACENTER |
String |
Nama pusat data vSphere |
|
VSPHERE_CLUSTER |
String |
Nama cluster vSphere |
|
PENYIMPANAN DATA VSPHERE_ |
String |
Nama penyimpanan data vSphere |
|
VSPHERE_NETWORK |
String |
Nama jaringan vSphere |
|
VSPHERE_OUTPUT_FOLDER |
String |
folder keluaran vSphere untuk template |
QEMU
| Variabel Lingkungan | Tipe | Deskripsi |
|---|---|---|
|
FORMAT_KELUARAN PENGEPAK |
String |
Format keluaran untuk pembuat QEMU. Nilai yang valid adalah |
Validasi templat
Sebelum menjalankan build Anda, validasi template Anda dengan perintah berikut setelah mengatur variabel lingkungan Anda. Ganti template.pkr.hcl jika Anda menggunakan nama yang berbeda untuk template Anda.
packer validate template.pkr.hcl
Membangun gambar
Bangun gambar Anda dengan perintah berikut dan gunakan -only bendera untuk menentukan target dan sistem operasi untuk gambar Anda. Ganti template.pkr.hcl jika Anda menggunakan nama yang berbeda untuk template Anda.
OVA vSphere
catatan
Jika Anda menggunakan RHEL dengan vSphere, Anda perlu mengonversi file kickstart ke gambar OEMDRV dan meneruskannya sebagai ISO untuk boot. Untuk informasi selengkapnya, lihat Readme Packer
Ubuntu 22.04 OVA
packer build -only=general-build.vsphere-iso.ubuntu22 template.pkr.hcl
Ubuntu 24.04 OVA
packer build -only=general-build.vsphere-iso.ubuntu24 template.pkr.hcl
RHEL 8 OVES
packer build -only=general-build.vsphere-iso.rhel8 template.pkr.hcl
RHEL 9 OVES
packer build -only=general-build.vsphere-iso.rhel9 template.pkr.hcl
QEMU
catatan
Jika Anda membuat gambar untuk CPU host tertentu yang tidak cocok dengan host pembangun Anda, lihat dokumentasi -cpu flag dengan nama CPU host saat Anda menjalankan perintah berikut.
Ubuntu 22.04 Qcow2/Mentah
packer build -only=general-build.qemu.ubuntu22 template.pkr.hcl
Ubuntu 24.04 Qcow2/Mentah
packer build -only=general-build.qemu.ubuntu24 template.pkr.hcl
RHEL 8 Qcow2/Mentah
packer build -only=general-build.qemu.rhel8 template.pkr.hcl
RHEL 9 Qcow2/Mentah
packer build -only=general-build.qemu.rhel9 template.pkr.hcl
Lewati konfigurasi nodeadm melalui data pengguna
Anda dapat meneruskan konfigurasi untuk nodeadm data pengguna Anda melalui cloud-init untuk mengonfigurasi dan secara otomatis menghubungkan node hybrid ke cluster EKS Anda saat startup host. Di bawah ini adalah contoh bagaimana mencapai hal ini saat menggunakan VMware vSphere sebagai infrastruktur untuk node hybrid Anda.
-
Instal
govcCLI mengikuti instruksi di read megovc on. GitHub -
Setelah menjalankan build Packer di bagian sebelumnya dan menyediakan template Anda, Anda dapat mengkloning template Anda untuk membuat beberapa node berbeda menggunakan yang berikut ini. Anda harus mengkloning template untuk setiap VM baru yang Anda buat yang akan digunakan untuk node hybrid. Ganti variabel dalam perintah di bawah ini dengan nilai untuk lingkungan Anda. Per
VM_NAMEintah di bawah ini digunakan sebagaiNODE_NAMEsaat Anda menyuntikkan nama untuk VM Anda melaluimetadata.yamlfile Anda.govc vm.clone -vm "/PATH/TO/TEMPLATE" -ds="YOUR_DATASTORE" \ -on=false -template=false -folder=/FOLDER/TO/SAVE/VM "VM_NAME" -
Setelah mengkloning template untuk setiap VM baru Anda, buat
userdata.yamldanmetadata.yamluntuk VM Anda. VM Anda dapat berbagi hal yang samauserdata.yamlmetadata.yamldan Anda akan mengisinya berdasarkan per VM dalam langkah-langkah di bawah ini.nodeadmKonfigurasi dibuat dan didefinisikan diwrite_filesbagian Andauserdata.yaml. Contoh di bawah ini menggunakan aktivasi hibrida AWS SSM sebagai penyedia kredensia lokal untuk node hibrida. Untuk informasi lebih lanjut tentangnodeadmkonfigurasi, lihatReferensi nodead m node hibrida.userdata.yaml:
#cloud-config users: - name: # username for login. Use 'builder' for RHEL or 'ubuntu' for Ubuntu. passwd: # password to login. Default is 'builder' for RHEL. groups: [adm, cdrom, dip, plugdev, lxd, sudo] lock-passwd: false sudo: ALL=(ALL) NOPASSWD:ALL shell: /bin/bash write_files: - path: /usr/local/bin/nodeConfig.yaml permissions: '0644' content: | apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: # Cluster Name region: # AWS region hybrid: ssm: activationCode: # Your ssm activation code activationId: # Your ssm activation id runcmd: - /usr/local/bin/nodeadm init -c file:///usr/local/bin/nodeConfig.yaml >> /var/log/nodeadm-init.log 2>&1metadata.yaml:
Ciptakan
metadata.yamluntuk lingkungan Anda. Simpan format"$NODE_NAME"variabel dalam file karena ini akan diisi dengan nilai pada langkah berikutnya.instance-id: "$NODE_NAME" local-hostname: "$NODE_NAME" network: version: 2 ethernets: nics: match: name: ens* dhcp4: yes -
Tambahkan
metadata.yamlfileuserdata.yamldan sebagaigzip+base64string dengan perintah berikut. Perintah berikut harus dijalankan untuk masing-masing VM yang Anda buat. GantiVM_NAMEdengan nama VM yang Anda perbarui.export NODE_NAME="VM_NAME" export USER_DATA=$(gzip -c9 <userdata.yaml | base64) govc vm.change -dc="YOUR_DATASTORE" -vm "$NODE_NAME" -e guestinfo.userdata="${USER_DATA}" govc vm.change -dc="YOUR_DATASTORE" -vm "$NODE_NAME" -e guestinfo.userdata.encoding=gzip+base64 envsubst '$NODE_NAME' < metadata.yaml > metadata.yaml.tmp export METADATA=$(gzip -c9 <metadata.yaml.tmp | base64) govc vm.change -dc="YOUR_DATASTORE" -vm "$NODE_NAME" -e guestinfo.metadata="${METADATA}" govc vm.change -dc="YOUR_DATASTORE" -vm "$NODE_NAME" -e guestinfo.metadata.encoding=gzip+base64 -
Nyalakan VM baru Anda, yang akan secara otomatis terhubung ke cluster EKS yang Anda konfigurasikan.
govc vm.power -on "${NODE_NAME}"