

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

# Hubungkan node hybrid dengan Bottlerocket
<a name="hybrid-nodes-bottlerocket"></a>

Topik ini menjelaskan cara menghubungkan node hybrid yang menjalankan Bottlerocket ke cluster Amazon EKS. [Bottlerocket](https://aws.amazon.com/bottlerocket/) adalah distribusi Linux open source yang disponsori dan didukung oleh. AWS Bottlerocket dibuat khusus untuk menampung beban kerja kontainer. Dengan Bottlerocket, Anda dapat meningkatkan ketersediaan penerapan kontainer dan mengurangi biaya operasional dengan mengotomatiskan pembaruan infrastruktur kontainer Anda. Bottlerocket hanya mencakup perangkat lunak penting untuk menjalankan kontainer, yang meningkatkan penggunaan sumber daya, mengurangi ancaman keamanan, dan menurunkan overhead manajemen.

Hanya VMware varian Bottlerocket versi v1.37.0 ke atas yang didukung dengan EKS Hybrid Nodes. VMware varian dari Bottlerocket tersedia untuk Kubernetes versi v1.28 dan di atasnya. Gambar OS untuk varian ini termasuk kubelet, containerd, aws-iam-authenticator dan prasyarat perangkat lunak lainnya untuk EKS Hybrid Nodes. Anda dapat mengonfigurasi komponen ini menggunakan file [pengaturan](https://github.com/bottlerocket-os/bottlerocket#settings) Bottlerocket yang menyertakan data pengguna yang dikodekan base64 untuk bootstrap Bottlerocket dan wadah admin. Mengkonfigurasi pengaturan ini memungkinkan Bottlerocket untuk menggunakan penyedia kredensi node hybrid Anda untuk mengautentikasi node hybrid ke cluster Anda. Setelah node hibrid Anda bergabung dengan cluster, mereka akan muncul dengan status `Not Ready` di konsol Amazon EKS dan di perkakas yang kompatibel dengan Kubernetes seperti. `kubectl` Setelah menyelesaikan langkah-langkah di halaman ini, lanjutkan [Konfigurasikan CNI untuk node hybrid](hybrid-nodes-cni.md) untuk membuat node hibrida Anda siap untuk menjalankan aplikasi.

## Prasyarat
<a name="_prerequisites"></a>

Sebelum menghubungkan node hybrid ke cluster Amazon EKS Anda, pastikan Anda telah menyelesaikan langkah-langkah prasyarat.
+ Anda memiliki konektivitas jaringan dari lingkungan lokal ke AWS Wilayah yang menghosting kluster Amazon EKS Anda. Untuk informasi selengkapnya, lihat [Mempersiapkan jaringan untuk node hybrid](hybrid-nodes-networking.md).
+ Anda telah membuat peran IAM Hybrid Nodes dan menyiapkan penyedia kredensi lokal (aktivasi hybrid AWS Systems Manager atau AWS IAM Roles Anywhere). Untuk informasi selengkapnya, lihat [Siapkan kredensil untuk node hybrid](hybrid-nodes-creds.md).
+ Anda telah membuat cluster Amazon EKS yang mendukung node hybrid Anda. Untuk informasi selengkapnya, lihat [Buat klaster Amazon EKS dengan node hybrid](hybrid-nodes-cluster-create.md).
+ Anda telah mengaitkan peran IAM Hybrid Nodes Anda dengan izin Kubernetes Role-Based Access Control (RBAC). Untuk informasi selengkapnya, lihat [Mempersiapkan akses cluster untuk node hybrid](hybrid-nodes-cluster-prep.md).

## Langkah 1: Buat file TOMM pengaturan Bottlerocket
<a name="_step_1_create_the_bottlerocket_settings_toml_file"></a>

Untuk mengkonfigurasi Bottlerocket untuk node hybrid, Anda perlu membuat `settings.toml` file dengan konfigurasi yang diperlukan. Isi file TOMM akan berbeda berdasarkan penyedia kredensi yang Anda gunakan (Peran SSM atau IAM Di Mana Saja). File ini akan diteruskan sebagai data pengguna saat menyediakan instance Bottlerocket.

**catatan**  
File TOMM yang disediakan di bawah ini hanya mewakili pengaturan minimum yang diperlukan untuk menginisialisasi VMWare mesin Bottlerocket sebagai simpul pada cluster EKS. [Bottlerocket menyediakan berbagai pengaturan untuk mengatasi beberapa kasus penggunaan yang berbeda, jadi untuk opsi konfigurasi lebih lanjut di luar inisialisasi node hibrida, silakan lihat dokumentasi Bottlerocket untuk daftar lengkap semua pengaturan yang [didokumentasikan untuk versi Bottlerocket](https://bottlerocket.dev/en) yang Anda gunakan (misalnya, di sini adalah semua pengaturan yang tersedia untuk Bottlerocket 1.51.x).](https://bottlerocket.dev/en/os/1.51.x/api/settings-index)

### SSM
<a name="_ssm"></a>

Jika Anda menggunakan AWS Systems Manager sebagai penyedia kredensi Anda, buat `settings.toml` file dengan konten berikut:

```
[settings.kubernetes]
cluster-name = "<cluster-name>"
api-server = "<api-server-endpoint>"
cluster-certificate = "<cluster-certificate-authority>"
hostname-override = "<hostname>"
provider-id = "eks-hybrid:///<region>/<cluster-name>/<hostname>"
authentication-mode = "aws"
cloud-provider = ""
server-tls-bootstrap = true

[settings.network]
hostname = "<hostname>"

[settings.aws]
region = "<region>"

[settings.kubernetes.credential-providers.ecr-credential-provider]
enabled = true
cache-duration = "12h"
image-patterns = [
    "*.dkr.ecr.*.amazonaws.com",
    "*.dkr.ecr.*.amazonaws.com.rproxy.govskope.us.cn",
    "*.dkr.ecr.*.amazonaws.eu",
    "*.dkr.ecr-fips.*.amazonaws.com",
    "*.dkr.ecr-fips.*.amazonaws.eu",
    "public.ecr.aws"
]

[settings.kubernetes.node-labels]
"eks.amazonaws.com/compute-type" = "hybrid"
"eks.amazonaws.com/hybrid-credential-provider" = "ssm"

[settings.host-containers.admin]
enabled = true
user-data = "<base64-encoded-admin-container-userdata>"

[settings.bootstrap-containers.eks-hybrid-setup]
mode = "always"
user-data = "<base64-encoded-bootstrap-container-userdata>"

[settings.host-containers.control]
enabled = true
```

Ganti placeholder dengan nilai-nilai berikut:
+  `<cluster-name>`: Nama cluster Amazon EKS Anda.
+  `<api-server-endpoint>`: Titik akhir server API cluster Anda.
+  `<cluster-certificate-authority>`: Bundel CA yang dikodekan base64 dari cluster Anda.
+  `<region>`: AWS Wilayah yang menghosting cluster Anda, misalnya “us-east-1".
+  `<hostname>`: Nama host dari instance Bottlerocket, yang juga akan dikonfigurasi sebagai nama node. Ini bisa berupa nilai unik pilihan Anda, tetapi harus mengikuti konvensi penamaan [Objek Kubernetes.](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names) Selain itu, nama host yang Anda gunakan tidak boleh lebih dari 64 karakter. CATATAN: Saat menggunakan penyedia SSM, nama host dan nama node ini akan diganti dengan ID instance terkelola (misalnya, `mi-*` ID) setelah instance terdaftar dengan SSM.
+  `<base64-encoded-admin-container-userdata>`: Konten base64 yang dikodekan dari konfigurasi kontainer admin Bottlerocket. Mengaktifkan wadah admin memungkinkan Anda terhubung ke instance Bottlerocket Anda dengan SSH untuk eksplorasi dan debugging sistem. Meskipun ini bukan pengaturan yang diperlukan, kami sarankan untuk mengaktifkannya untuk kemudahan pemecahan masalah. Lihat [dokumentasi kontainer admin Bottlerocket untuk informasi lebih lanjut tentang otentikasi dengan wadah admin](https://github.com/bottlerocket-os/bottlerocket-admin-container#authenticating-with-the-admin-container). Kontainer admin mengambil pengguna SSH dan input kunci dalam format JSON, misalnya,

```
{
  "user": "<ssh-user>",
  "ssh": {
    "authorized-keys": [
      "<ssh-authorized-key>"
    ]
  }
}
```
+  `<base64-encoded-bootstrap-container-userdata>`: Konten base64 yang dikodekan dari konfigurasi wadah bootstrap Bottlerocket. Lihat [dokumentasi wadah bootstrap Bottlerocket](https://github.com/bottlerocket-os/bottlerocket-bootstrap-container) untuk informasi lebih lanjut tentang konfigurasinya. Container bootstrap bertanggung jawab untuk mendaftarkan instance sebagai Instans Terkelola AWS SSM dan menggabungkannya sebagai node Kubernetes di Cluster Amazon EKS Anda. Data pengguna yang diteruskan ke wadah bootstrap berbentuk pemanggilan perintah yang menerima sebagai masukan kode aktivasi hibrida SSM dan ID yang sebelumnya Anda buat:

```
eks-hybrid-ssm-setup --activation-id=<activation-id> --activation-code=<activation-code> --region=<region>
```

### IAM Roles Anywhere
<a name="_iam_roles_anywhere"></a>

Jika Anda menggunakan AWS IAM Roles Anywhere sebagai penyedia kredensi Anda, buat `settings.toml` file dengan konten berikut:

```
[settings.kubernetes]
cluster-name = "<cluster-name>"
api-server = "<api-server-endpoint>"
cluster-certificate = "<cluster-certificate-authority>"
hostname-override = "<hostname>"
provider-id = "eks-hybrid:///<region>/<cluster-name>/<hostname>"
authentication-mode = "aws"
cloud-provider = ""
server-tls-bootstrap = true

[settings.network]
hostname = "<hostname>"

[settings.aws]
region = "<region>"
config = "<base64-encoded-aws-config-file>"

[settings.kubernetes.credential-providers.ecr-credential-provider]
enabled = true
cache-duration = "12h"
image-patterns = [
    "*.dkr.ecr.*.amazonaws.com",
    "*.dkr.ecr.*.amazonaws.com.rproxy.govskope.us.cn",
    "*.dkr.ecr.*.amazonaws.eu",
    "*.dkr.ecr-fips.*.amazonaws.com",
    "*.dkr.ecr-fips.*.amazonaws.eu",
    "public.ecr.aws"
]

[settings.kubernetes.node-labels]
"eks.amazonaws.com/compute-type" = "hybrid"
"eks.amazonaws.com/hybrid-credential-provider" = "iam-ra"

[settings.host-containers.admin]
enabled = true
user-data = "<base64-encoded-admin-container-userdata>"

[settings.bootstrap-containers.eks-hybrid-setup]
mode = "always"
user-data = "<base64-encoded-bootstrap-container-userdata>"
```

Ganti placeholder dengan nilai-nilai berikut:
+  `<cluster-name>`: Nama cluster Amazon EKS Anda.
+  `<api-server-endpoint>`: Titik akhir server API cluster Anda.
+  `<cluster-certificate-authority>`: Bundel CA yang dikodekan base64 dari cluster Anda.
+  `<region>`: AWS Wilayah yang menampung klaster Anda, misalnya, “us-east-1"
+  `<hostname>`: Nama host dari instance Bottlerocket, yang juga akan dikonfigurasi sebagai nama node. Ini bisa berupa nilai unik pilihan Anda, tetapi harus mengikuti konvensi penamaan [Objek Kubernetes.](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names) Selain itu, nama host yang Anda gunakan tidak boleh lebih dari 64 karakter. CATATAN: Saat menggunakan penyedia IAM-RA, nama node harus cocok dengan CN sertifikat pada host jika Anda mengonfigurasi kebijakan kepercayaan peran IAM Hybrid Nodes Anda dengan kondisi sumber daya. `"sts:RoleSessionName": "${aws:PrincipalTag/x509Subject/CN}"`
+  `<base64-encoded-aws-config-file>`: Konten berkas konfigurasi Anda yang disandikan base64. AWS Isi file harus sebagai berikut:

```
[default]
credential_process = aws_signing_helper credential-process --certificate /root/.aws/node.crt --private-key /root/.aws/node.key --profile-arn <profile-arn> --role-arn <role-arn> --trust-anchor-arn <trust-anchor-arn> --role-session-name <role-session-name>
```
+  `<base64-encoded-admin-container-userdata>`: Konten base64 yang dikodekan dari konfigurasi kontainer admin Bottlerocket. Mengaktifkan wadah admin memungkinkan Anda terhubung ke instance Bottlerocket Anda dengan SSH untuk eksplorasi dan debugging sistem. Meskipun ini bukan pengaturan yang diperlukan, kami sarankan untuk mengaktifkannya untuk kemudahan pemecahan masalah. Lihat [dokumentasi kontainer admin Bottlerocket untuk informasi lebih lanjut tentang otentikasi dengan wadah admin](https://github.com/bottlerocket-os/bottlerocket-admin-container#authenticating-with-the-admin-container). Kontainer admin mengambil pengguna SSH dan input kunci dalam format JSON, misalnya,

```
{
  "user": "<ssh-user>",
  "ssh": {
    "authorized-keys": [
      "<ssh-authorized-key>"
    ]
  }
}
```
+  `<base64-encoded-bootstrap-container-userdata>`: Konten base64 yang dikodekan dari konfigurasi wadah bootstrap Bottlerocket. Lihat [dokumentasi wadah bootstrap Bottlerocket](https://github.com/bottlerocket-os/bottlerocket-bootstrap-container) untuk informasi lebih lanjut tentang konfigurasinya. Wadah bootstrap bertanggung jawab untuk membuat sertifikat host IAM Roles Anywhere dan file kunci pribadi sertifikat pada instance. Ini kemudian akan digunakan oleh `aws_signing_helper` untuk mendapatkan kredensi sementara untuk mengautentikasi dengan kluster Amazon EKS Anda. Data pengguna yang diteruskan ke dalam wadah bootstrap berbentuk pemanggilan perintah yang menerima sebagai masukan isi sertifikat dan kunci pribadi yang Anda buat sebelumnya:

```
eks-hybrid-iam-ra-setup --certificate=<certificate> --key=<private-key>
```

## Langkah 2: Menyediakan Bottlerocket vSphere VM dengan data pengguna
<a name="_step_2_provision_the_bottlerocket_vsphere_vm_with_user_data"></a>

Setelah Anda membuat file TOMM, berikan sebagai data pengguna selama pembuatan VSphere VM. Perlu diingat bahwa data pengguna harus dikonfigurasi sebelum VM dinyalakan untuk pertama kalinya. Dengan demikian, Anda harus menyediakannya saat membuat instance, atau jika Anda ingin membuat VM sebelumnya, VM harus dalam status PoweredOff sampai Anda mengonfigurasi data pengguna untuk itu. Misalnya, jika menggunakan `govc` CLI:

### Membuat VM untuk pertama kalinya
<a name="_creating_vm_for_the_first_time"></a>

```
govc vm.create \
  -on=true \
  -c=2 \
  -m=4096 \
  -net.adapter=<network-adapter> \
  -net=<network-name> \
  -e guestinfo.userdata.encoding="base64" \
  -e guestinfo.userdata="$(base64 -w0 settings.toml)" \
  -template=<template-name> \
  <vm-name>
```

### Memperbarui data pengguna untuk VM yang ada
<a name="_updating_user_data_for_an_existing_vm"></a>

```
govc vm.create \
    -on=false \
    -c=2 \
    -m=4096 \
    -net.adapter=<network-adapter> \
    -net=<network-name> \
    -template=<template-name> \
    <vm-name>

govc vm.change
    -vm <vm-name> \
    -e guestinfo.userdata="$(base64 -w0 settings.toml)" \
    -e guestinfo.userdata.encoding="base64"

govc vm.power -on <vm-name>
```

Pada bagian di atas, `-e guestinfo.userdata.encoding="base64"` opsi menentukan bahwa data pengguna dikodekan base64. `-e guestinfo.userdata`Opsi ini meneruskan konten `settings.toml` berkas yang dikodekan base64 sebagai data pengguna ke instance Bottlerocket. Ganti placeholder dengan nilai spesifik Anda, seperti template Bottlerocket OVA dan detail jaringan.

## Langkah 3: Verifikasi koneksi node hybrid
<a name="_step_3_verify_the_hybrid_node_connection"></a>

Setelah instans Bottlerocket dimulai, instans akan mencoba bergabung dengan cluster Amazon EKS Anda. Anda dapat memverifikasi koneksi di konsol Amazon EKS dengan menavigasi ke tab Compute untuk klaster Anda atau dengan menjalankan perintah berikut:

```
kubectl get nodes
```

**penting**  
Node Anda akan memiliki status`Not Ready`, yang diharapkan dan karena kurangnya CNI yang berjalan pada node hybrid Anda. Jika node Anda tidak bergabung dengan cluster, lihat[Memecahkan masalah node hybrid](hybrid-nodes-troubleshooting.md).

## Langkah 4: Konfigurasikan CNI untuk node hybrid
<a name="_step_4_configure_a_cni_for_hybrid_nodes"></a>

Untuk membuat node hybrid Anda siap menjalankan aplikasi, lanjutkan dengan langkah-langkahnya[Konfigurasikan CNI untuk node hybrid](hybrid-nodes-cni.md).