

 **Bantu tingkatkan 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 **Edit halaman ini pada GitHub** tautan 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
<a name="hybrid-nodes-os"></a>

Bottlerocket, Amazon Linux 2023 AL2 (023), Ubuntu, dan RHEL divalidasi secara berkelanjutan untuk digunakan sebagai sistem operasi node untuk node hibrida. Bottlerocket didukung oleh di lingkungan AWS VMware vSphere saja. AL2023 tidak tercakup oleh AWS Support Plans saat dijalankan di luar Amazon EC2. AL2023 hanya dapat digunakan di lingkungan virtual lokal, lihat [Panduan Pengguna Amazon Linux 2023](https://docs.aws.amazon.com/linux/al2023/ug/outside-ec2.html) 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 Anda menguji node hybrid untuk pertama kalinya, paling mudah menjalankan Amazon EKS Hybrid Nodes CLI (`nodeadm`) pada host yang sudah disediakan. Untuk penerapan produksi, kami menyarankan Anda menyertakan `nodeadm` gambar sistem operasi yang dikonfigurasi untuk dijalankan sebagai layanan systemd untuk secara otomatis bergabung dengan host ke kluster Amazon EKS saat startup host. Jika Anda menggunakan Bottlerocket sebagai sistem operasi node Anda di vSphere, Anda tidak perlu menggunakan `nodeadm` karena Bottlerocket sudah berisi dependensi yang diperlukan untuk node hybrid dan secara otomatis akan terhubung ke cluster yang Anda konfigurasikan saat startup host.

## Kompatibilitas versi
<a name="_version_compatibility"></a>

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 Support. Node hybrid 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 VMware varian di atasnya 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
<a name="_operating_system_considerations"></a>

### Umum
<a name="_general"></a>
+ Amazon EKS Hybrid Nodes CLI (`nodeadm`) dapat digunakan untuk menyederhanakan instalasi dan konfigurasi komponen dan dependensi node hybrid. Anda dapat menjalankan `nodeadm install` proses selama pipeline build image sistem operasi atau saat runtime di setiap host lokal. Untuk informasi selengkapnya tentang komponen yang `nodeadm` diinstal, lihat. [`nodeadm`Referensi node hibrida](hybrid-nodes-nodeadm.md)
+ Jika Anda menggunakan proxy di lingkungan lokal untuk menjangkau internet, ada konfigurasi sistem operasi tambahan yang diperlukan untuk proses penginstalan dan pemutakhiran guna mengonfigurasi manajer paket Anda agar menggunakan proxy. Lihat [Konfigurasikan proxy untuk node hybrid](hybrid-nodes-proxy.md) untuk instruksi.

### Bottlerocket
<a name="_bottlerocket"></a>
+ Langkah-langkah dan alat untuk menghubungkan node Bottlerocket berbeda dari langkah-langkah untuk sistem operasi lain dan dibahas secara terpisah[Hubungkan node hybrid dengan Bottlerocket](hybrid-nodes-bottlerocket.md), bukan langkah-langkah masuk. [Connect node hybrid](hybrid-nodes-join.md)
+ Langkah-langkah untuk Bottlerocket tidak menggunakan alat CLI node hybrid,. `nodeadm`
+ Hanya VMware varian Bottlerocket versi v1.37.0 ke atas yang didukung dengan EKS Hybrid Nodes. VMware varian Bottlerocket tersedia untuk Kubernetes versi v1.28 ke atas. [Varian Bottlerocket lainnya](https://bottlerocket.dev/en/os/1.36.x/concepts/variants) tidak didukung sebagai sistem operasi node hybrid. CATATAN: VMware varian Bottlerocket hanya tersedia untuk arsitektur x86\$164.

### Kontainer
<a name="_containerd"></a>
+ Containerd adalah runtime container Kubernetes standar dan merupakan dependensi untuk node hybrid, serta semua tipe komputasi node Amazon EKS. Amazon EKS Hybrid Nodes CLI (`nodeadm`) mencoba menginstal containerd selama proses berlangsung. `nodeadm install` Anda dapat mengonfigurasi instalasi containerd `nodeadm install` saat runtime dengan `--containerd-source` opsi baris perintah. Opsi yang valid adalah`none`,`distro`, dan`docker`. Jika Anda menggunakan RHEL, `distro` ini bukan opsi yang valid dan Anda dapat mengonfigurasi `nodeadm` untuk menginstal build containerd dari repo Docker atau Anda dapat menginstal containerd secara manual. Saat menggunakan AL2 023 atau Ubuntu, `nodeadm` default untuk menginstal containerd dari distribusi sistem operasi. Jika Anda tidak ingin nodeadm menginstal containerd, gunakan opsi. `--containerd-source none`

### Ubuntu
<a name="_ubuntu"></a>
+ [Jika Anda menggunakan Ubuntu 24.04, Anda mungkin perlu memperbarui versi containerd atau mengubah konfigurasi AppArmor Anda untuk mengadopsi perbaikan yang memungkinkan pod dihentikan dengan benar, lihat Ubuntu \$12065423.](https://bugs.launchpad.net/ubuntu/+source/containerd-app/\+bug/2065423) Diperlukan reboot untuk menerapkan perubahan pada AppArmor profil. Versi terbaru Ubuntu 24.04 memiliki versi containerd yang diperbarui di manajer paketnya dengan perbaikan (containerd versi 1.7.19\$1).

### LENGAN
<a name="_arm"></a>
+ Jika Anda menggunakan perangkat keras ARM, prosesor yang sesuai dengan ARMv8 .2 dengan Ekstensi Kriptografi (ARMv8.2\$1crypto) diperlukan untuk menjalankan add-on EKS kube-proxy versi 1.31 ke atas. Semua sistem Raspberry Pi sebelum Raspberry Pi 5, serta prosesor berbasis Cortex-A72, tidak memenuhi persyaratan ini. Sebagai solusinya, Anda dapat terus menggunakan add-on EKS kube-proxy versi 1.30 hingga mencapai akhir dukungan yang diperluas pada bulan Juli 2026, lihat kalender rilis [Kubernetes, atau menggunakan gambar kube-proxy kustom](https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html) 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
<a name="_building_operating_system_images"></a>

Amazon EKS menyediakan [contoh template Packer](https://github.com/aws/eks-hybrid/tree/main/example/packer) yang dapat Anda gunakan untuk membuat gambar sistem operasi yang menyertakan `nodeadm` dan mengonfigurasinya agar berjalan saat startup host. Proses ini disarankan untuk menghindari penarikan 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
<a name="_prerequisites"></a>

Sebelum menggunakan contoh template Packer, Anda harus memiliki yang berikut diinstal pada mesin dari tempat Anda menjalankan Packer.
+ Packer versi 1.11.0 atau lebih tinggi. Untuk petunjuk tentang menginstal Packer, lihat [Install Packer](https://developer.hashicorp.com/packer/tutorials/docker-get-started/get-started-install-cli) di dokumentasi Packer.
+ Jika membangun OVAs, VMware vSphere plugin 1.4.0 atau lebih tinggi
+ Jika membangun `Qcow2` atau gambar mentah, plugin QEMU versi 1.x

### Tetapkan Variabel Lingkungan
<a name="_set_environment_variables"></a>

Sebelum menjalankan build Packer, atur variabel lingkungan berikut pada mesin dari tempat Anda menjalankan Packer.

 **Umum** 

Variabel lingkungan berikut harus diatur untuk membangun gambar dengan semua sistem operasi dan format output.


| Variabel Lingkungan | Jenis | Deskripsi | 
| --- | --- | --- | 
|  PKR\$1SSH\$1PASSWORD  |  String  |  Packer menggunakan `ssh_password` variabel `ssh_username` dan ke SSH ke dalam mesin yang dibuat saat penyediaan. Ini harus sesuai dengan kata sandi yang digunakan untuk membuat pengguna awal dalam file kickstart atau data pengguna OS masing-masing. Default ditetapkan sebagai “builder” atau “ubuntu” tergantung pada OS. Saat mengatur kata sandi Anda, pastikan untuk mengubahnya dalam `user-data` file yang sesuai `ks.cfg` atau agar sesuai.  | 
|  ISO\$1URL  |  String  |  URL ISO yang akan digunakan. Bisa berupa tautan web untuk diunduh dari server, atau jalur absolut ke file lokal  | 
|  ISO\$1CHECKSUM  |  String  |  Checksum terkait untuk ISO yang disediakan.  | 
|  CREDENTIAL\$1PROVIDER  |  String  |  Penyedia kredensyal untuk node hibrida. Nilai yang valid adalah `ssm` (default) untuk aktivasi hibrida SSM dan `iam` untuk Peran IAM Di Mana Saja  | 
|  K8S\$1VERSION  |  String  |  Versi Kubernetes untuk node hybrid (misalnya). `1.31` Untuk versi Kubernetes yang didukung, lihat versi yang didukung [Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html).  | 
|  NODEADM\$1ARCH  |  String  |  Arsitektur untuk`nodeadm install`. Pilih `amd` atau`arm`.  | 

 **RHEL** 

Jika Anda menggunakan RHEL, variabel lingkungan berikut harus diatur.


| Variabel Lingkungan | Jenis | Deskripsi | 
| --- | --- | --- | 
|  RH\$1NAMA PENGGUNA  |  String  |  Nama pengguna manajer langganan RHEL  | 
|  RH\$1KATA SANDI  |  String  |  Kata sandi pengelola langganan RHEL  | 
|  RHEL\$1VERSION  |  String  |  Versi Rhel iso sedang digunakan. Nilai-nilai yang valid adalah `8` atau `9`.  | 

 **Ubuntu** 

Tidak ada variabel lingkungan khusus Ubuntu yang diperlukan.

 **vSphere** 

Jika Anda sedang membangun OVA VMware vSphere, variabel lingkungan berikut harus diatur.


| Variabel Lingkungan | Jenis | Deskripsi | 
| --- | --- | --- | 
|  VSPHERE\$1SERVER  |  String  |  Alamat server vSphere  | 
|  VSPHERE\$1USER  |  String  |  Nama pengguna vSphere  | 
|  VSPHERE\$1PASSWORD  |  String  |  Kata sandi vSphere  | 
|  VSPHERE\$1DATACENTER  |  String  |  Nama pusat data vSphere  | 
|  VSPHERE\$1CLUSTER  |  String  |  Nama cluster vSphere  | 
|  VSPHERE\$1DATASTORE  |  String  |  vSphere nama datastore  | 
|  VSPHERE\$1NETWORK  |  String  |  nama jaringan vSphere  | 
|  VSPHERE\$1OUTPUT\$1FOLDER  |  String  |  folder output vSphere untuk template  | 

 **QEMU** 


| Variabel Lingkungan | Jenis | Deskripsi | 
| --- | --- | --- | 
|  FORMAT PACKER\$1OUTPUT\$1  |  String  |  Format output untuk pembangun QEMU. Nilai yang valid adalah `qcow2` dan `raw`.  | 

 **Validasi template** 

Sebelum menjalankan build, validasi template Anda dengan perintah berikut setelah menyetel variabel lingkungan. Ganti `template.pkr.hcl` jika Anda menggunakan nama yang berbeda untuk template Anda.

```
packer validate template.pkr.hcl
```

### Membangun gambar
<a name="_build_images"></a>

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.

 **vSphere OVAs** 

**catatan**  
Jika Anda menggunakan RHEL dengan vSphere, Anda perlu mengonversi file kickstart ke gambar OEMDRV dan meneruskannya sebagai ISO untuk boot. Untuk informasi lebih lanjut, lihat [Packer Readme](https://github.com/aws/eks-hybrid/tree/main/example/packer#utilizing-rhel-with-vsphere) di EKS Hybrid Nodes GitHub Repository.

 **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 TELUR** 

```
packer build -only=general-build.vsphere-iso.rhel8 template.pkr.hcl
```

 **RHEL 9 TELUR** 

```
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 [QEMU](https://www.qemu.org/docs/master/system/qemu-cpu-models.html) untuk nama yang cocok dengan CPU host Anda dan gunakan `-cpu` tanda 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
<a name="_pass_nodeadm_configuration_through_user_data"></a>

Anda dapat meneruskan konfigurasi untuk `nodeadm` data pengguna Anda melalui cloud-init untuk mengonfigurasi dan secara otomatis menghubungkan node hybrid ke kluster EKS Anda saat startup host. Di bawah ini adalah contoh bagaimana untuk mencapai ini ketika menggunakan VMware vSphere sebagai infrastruktur untuk node hybrid Anda.

1. Instal `govc` CLI mengikuti instruksi di [govc](https://github.com/vmware/govmomi/blob/main/govc/README.md) readme on. GitHub

1. Setelah menjalankan build Packer di bagian sebelumnya dan menyediakan template Anda, Anda dapat mengkloning template Anda untuk membuat beberapa node berbeda menggunakan 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. Perintah `VM_NAME` di bawah ini digunakan sebagai Anda `NODE_NAME` ketika Anda menyuntikkan nama untuk Anda VMs melalui `metadata.yaml` file Anda.

   ```
   govc vm.clone -vm "/PATH/TO/TEMPLATE" -ds="YOUR_DATASTORE" \
       -on=false -template=false -folder=/FOLDER/TO/SAVE/VM "VM_NAME"
   ```

1. Setelah mengkloning template untuk masing-masing yang baru Anda VMs, buat `userdata.yaml` dan `metadata.yaml` untuk Anda VMs. Anda VMs dapat berbagi hal yang sama `userdata.yaml` `metadata.yaml` dan dan Anda akan mengisinya berdasarkan per VM dalam langkah-langkah di bawah ini. `nodeadm`Konfigurasi dibuat dan didefinisikan di `write_files` bagian Anda`userdata.yaml`. Contoh di bawah ini menggunakan aktivasi hibrida AWS SSM sebagai penyedia kredensi lokal untuk node hibrid. Untuk informasi lebih lanjut tentang `nodeadm` konfigurasi, lihat[`nodeadm`Referensi node hibrida](hybrid-nodes-nodeadm.md).

    **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>&1
   ```

    **metadata.yaml:** 

   Buat `metadata.yaml` untuk 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
   ```

1. Tambahkan `userdata.yaml` dan `metadata.yaml` file sebagai `gzip+base64` string dengan perintah berikut. Perintah berikut harus dijalankan untuk masing-masing yang VMs Anda buat. Ganti `VM_NAME` dengan 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
   ```

1. Nyalakan yang baru Anda VMs, yang akan secara otomatis terhubung ke cluster EKS yang Anda konfigurasikan.

   ```
   govc vm.power -on "${NODE_NAME}"
   ```