

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

# Buat node Bottlerocket yang dikelola sendiri
<a name="launch-node-bottlerocket"></a>

**catatan**  
Grup node terkelola mungkin menawarkan beberapa keuntungan untuk kasus penggunaan Anda. Untuk informasi selengkapnya, lihat [Sederhanakan siklus hidup node dengan grup node terkelola](managed-node-groups.md).

Topik ini menjelaskan cara meluncurkan grup Auto Scaling dari [ node ](https://aws.amazon.com/bottlerocket/) Bottlerocket yang mendaftar ke cluster Amazon EKS Anda. Bottlerocket adalah sistem operasi Linux-based open-source AWS yang dapat Anda gunakan untuk menjalankan wadah pada mesin virtual atau host logam kosong. Setelah simpul bergabung dengan klaster, Anda dapat men-deploy aplikasi Kubernetes pada mereka. Untuk informasi selengkapnya tentang Bottlerocket, lihat [ Menggunakan AMI Bottlerocket dengan Amazon EKS aktif GitHub dan dukungan AMI K [ ustom ](https://eksctl.io/usage/custom-ami-support/) dalam dokumentasi. ](https://github.com/bottlerocket-os/bottlerocket/blob/develop/QUICKSTART-EKS.md) `eksctl`

Untuk informasi tentang peningkatan di tempat, lihat Operator Pembaruan [ Bottlerocket on. ](https://github.com/bottlerocket-os/bottlerocket-update-operator) GitHub

**penting**  
Simpul Amazon EKS adalah instans Amazon EC2 standar, dan Anda dikenakan biaya berdasarkan harga instans Amazon EC2 normal. Untuk informasi selengkapnya, lihat [Harga Amazon EC2](https://aws.amazon.com/ec2/pricing/).
Anda dapat meluncurkan node Bottlerocket di cluster yang diperluas Amazon EKS di AWS Outposts, tetapi Anda tidak dapat meluncurkannya di cluster lokal di Outpost. AWS Untuk informasi selengkapnya, lihat [Menerapkan Amazon EKS lokal dengan AWS Outposts](eks-outposts.md).
Anda dapat menerapkan ke instans Amazon EC2 dengan `x86` atau prosesor Arm. Namun, Anda tidak dapat menerapkan ke instans yang memiliki chip Inferentia.
Bottlerocket kompatibel dengan. AWS CloudFormation Namun, tidak ada CloudFormation template resmi yang dapat disalin untuk menerapkan node Bottlerocket untuk Amazon EKS.
Gambar Bottlerocket tidak datang dengan server SSH atau shell. Anda dapat menggunakan metode akses di luar band untuk mengizinkan SSH mengaktifkan wadah admin dan untuk melewati beberapa langkah konfigurasi bootstrap dengan data pengguna. Untuk informasi lebih lanjut, lihat bagian ini di [ bottleroc README.md ](https://github.com/bottlerocket-os/bottlerocket) ket di: GitHub  
 [Eksplorasi ](https://github.com/bottlerocket-os/bottlerocket#exploration) 
 [Wadah admin ](https://github.com/bottlerocket-os/bottlerocket#admin-container) 
 [Pengaturan Kubernetes ](https://github.com/bottlerocket-os/bottlerocket#kubernetes-settings) 

Prosedur ini membutuhkan `eksctl` versi `0.215.0` atau yang lebih baru. Anda dapat memeriksa versi Anda dengan perintah berikut:

```
eksctl version
```

Untuk petunjuk tentang cara menginstal atau meningkatkan`eksctl`, lihat [ Instalasi ](https://eksctl.io/installation) dalam `eksctl` dokumentasi.

**catatan**  
Prosedur ini hanya bekerja untuk klaster yang dibuat dengan `eksctl`.

1. Salin konten berikut ke perangkat Anda. Ganti {{my-cluster}} dengan nama klaster Anda. Nama hanya dapat berisi karakter alfanumerik (peka huruf besar/kecil) dan tanda hubung. Itu harus dimulai dengan karakter alfanumerik dan tidak boleh lebih dari 100 karakter. Nama harus unik dalam Wil AWS ayah dan AWS akun tempat Anda membuat cluster. Ganti {{ng-bottlerocket}} dengan nama untuk grup node Anda. Nama grup node tidak boleh lebih dari 63 karakter. Itu harus dimulai dengan huruf atau digit, tetapi juga dapat menyertakan tanda hubung dan garis bawah untuk karakter yang tersisa. Untuk menerapkan pada instance Arm, ganti {{m5.large}} dengan tipe instance Arm. Ganti {{my-ec2-keypair-name}} dengan nama pasangan kunci Amazon EC2 SSH yang dapat Anda gunakan untuk terhubung menggunakan SSH ke node Anda setelah diluncurkan. Jika Anda belum memiliki pasangan kunci Amazon EC2, Anda dapat membuatnya di Konsol Manajemen AWS. Untuk informasi selengkapnya, lihat [ Pasangan kunci Amazon EC2 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) di Panduan * Pengguna Amazon EC2. * Ganti semua nilai contoh yang tersisa dengan nilai Anda sendiri. Setelah Anda membuat penggantian, jalankan perintah yang dimodifikasi untuk membuat `bottlerocket.yaml` file.

   Jika menentukan jenis instans Arm Amazon EC2, maka tinjau pertimbangan di AMI Arm [ Amazon Linux yang dioptimalkan Amazon EKS ](eks-optimized-ami.md#arm-ami) sebelum menerapkan. Untuk petunjuk tentang cara menerapkan menggunakan AMI khusus, lihat Mem [ bangun Bottlerocket ](https://github.com/bottlerocket-os/bottlerocket/blob/develop/BUILDING.md) on GitHub dan dukungan AMI K [ ustom ](https://eksctl.io/usage/custom-ami-support/) dalam dokumentasi. `eksctl` Untuk menerapkan grup node terkelola, gunakan AMI khusus menggunakan template peluncuran. Untuk informasi selengkapnya, lihat [Sesuaikan node terkelola dengan templat peluncuran](launch-templates.md).
**penting**  
Untuk menyebarkan grup node ke subnet AWS Outposts, W AWS avelength, atau Zona AWS Lokal, jangan lewati subnet AWS Outposts, Wavel AWS ength, atau Zona AWS Lokal saat Anda membuat cluster. Anda harus menentukan subnet dalam contoh berikut. Untuk informasi selengkapnya lihat [Buat nodegroup dari file config](https://eksctl.io/usage/nodegroups/#creating-a-nodegroup-from-a-config-file) dan [Skema file config](https://eksctl.io/usage/schema/) di dalam dokumentasi `eksctl`. Ganti {{region-code}} dengan AWS Wilayah tempat cluster Anda berada.

   ```
   cat >bottlerocket.yaml <<EOF
   ---
   apiVersion: eksctl.io/v1alpha5
   kind: ClusterConfig
   
   metadata:
     name: my-cluster
     region: region-code
     version: '1.36'
   
   iam:
     withOIDC: true
   
   nodeGroups:
     - name: ng-bottlerocket
       instanceType: m5.large
       desiredCapacity: 3
       amiFamily: Bottlerocket
       ami: auto-ssm
       iam:
          attachPolicyARNs:
             - arn:aws: iam::aws:policy/AmazonEKSWorkerNodePolicy
             - arn:aws: iam::aws:policy/AmazonEC2ContainerRegistryReadOnly
             - arn:aws: iam::aws:policy/AmazonSSMManagedInstanceCore
             - arn:aws: iam::aws:policy/AmazonEKS_CNI_Policy
       ssh:
           allow: true
           publicKeyName: my-ec2-keypair-name
   EOF
   ```

1. Deploy simpul Anda dengan perintah berikut.

   ```
   eksctl create nodegroup --config-file=bottlerocket.yaml
   ```

   Contoh output adalah sebagai berikut.

   Beberapa baris dikeluarkan saat node dibuat. Salah satu baris terakhir output adalah baris contoh berikut.

   ```
   [✔]  created 1 nodegroup(s) in cluster "my-cluster"
   ```

1. (Opsional) Buat [volume persisten](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) Kubernetes pada simpul Bottlerocket menggunakan [Plugin Amazon EBS CSI](https://github.com/kubernetes-sigs/aws-ebs-csi-driver). Driver Amazon EBS default bergantung pada alat sistem file yang tidak disertakan dengan Bottlerocket. Untuk informasi selengkapnya tentang cara membuat kelas penyimpanan menggunakan driver, lihat [Gunakan penyimpanan volume Kubernetes dengan Amazon EBS](ebs-csi.md).

1. (Opsional) Secara default, `kube-proxy` setel parameter `nf_conntrack_max` kernel ke nilai default yang mungkin berbeda dari apa yang awalnya ditetapkan Bottlerocket saat boot. Untuk mempertahankan pengaturan [ default Bottlerocket](https://github.com/bottlerocket-os/bottlerocket-core-kit/blob/develop/packages/release/release-sysctl.conf), edit `kube-proxy` konfigurasi dengan perintah berikut.

   ```
   kubectl edit -n kube-system daemonset kube-proxy
   ```

   Tambahkan `--conntrack-max-per-core` dan `--conntrack-min` ke `kube-proxy` argumen yang ada dalam contoh berikut. Pengaturan `0` menyiratkan bahwa tidak ada perubahan.

   ```
         containers:
         - command:
           - kube-proxy
           - --v=2
           - --config=/var/lib/kube-proxy-config/config
           - --conntrack-max-per-core=0
           - --conntrack-min=0
   ```

1. (Opsional) Deploy [aplikasi sampel](sample-deployment.md) untuk menguji simpul Bottlerocket Anda.

1. Sebaiknya blokir akses Pod ke IMDS jika kondisi berikut ini benar:
   + Anda berencana untuk menetapkan peran IAM ke semua akun layanan Kubernetes Anda sehingga Pod hanya memiliki izin minimum yang mereka butuhkan.
   + Tidak ada Pod di cluster yang memerlukan akses ke layanan metadata instans EC2 Amazon (IMDS) karena alasan lain, seperti mengambil Wilayah saat ini. AWS 

   Untuk informasi selengkapnya, lihat Mem [ batasi akses ke profil instance yang ditetapkan ke node pekerja](https://aws.github.io/aws-eks-best-practices/security/docs/iam/#restrict-access-to-the-instance-profile-assigned-to-the-worker-node).