

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

# Buat node Microsoft Windows yang dikelola sendiri
<a name="launch-windows-workers"></a>

Topik ini menjelaskan cara meluncurkan grup Auto Scaling dari node Windows yang mendaftar dengan kluster Amazon EKS Anda. Setelah simpul bergabung dengan klaster, Anda dapat men-deploy aplikasi Kubernetes pada mereka.

**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 Windows di Amazon EKS cluster yang diperluas di AWS Outposts, tetapi Anda tidak dapat meluncurkannya di cluster AWS lokal di Outposts. Untuk informasi selengkapnya, lihat [Menerapkan Amazon EKS lokal dengan Outposts AWS](eks-outposts.md).

Aktifkan dukungan Windows untuk cluster Anda. Kami menyarankan Anda meninjau pertimbangan penting sebelum meluncurkan grup node Windows. Untuk informasi selengkapnya, lihat [Aktifkan dukungan Windows](windows-support.md#enable-windows-support).

Anda dapat meluncurkan node Windows yang dikelola sendiri dengan salah satu dari berikut ini:
+  [`eksctl`](#eksctl_create_windows_nodes) 
+  [Konsol Manajemen AWS](#console_create_windows_nodes) 

## `eksctl`
<a name="eksctl_create_windows_nodes"></a>

 **Luncurkan node Windows yang dikelola sendiri menggunakan `eksctl`** 

Prosedur ini mengharuskan Anda untuk sudah menginstal `eksctl`, dan bahwa `eksctl` versi yang Anda miliki setidaknya `0.215.0`. Anda dapat memeriksa versi Amazon Linux 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. (Opsional) Jika kebijakan IAM terkelola **Amazoneks\$1CNI\$1Policy** (jika Anda memiliki klaster) atau *AmazonEKS\$1CNI\$1IPv6\$1Policy* (yang Anda [buat sendiri](cni-iam-role.md#cni-iam-role-create-ipv6-policy) jika Anda memiliki `IPv4` klaster) dilampirkan ke peran IAM [node Amazon EKS Anda, kami sarankan untuk menetapkannya ke peran IAM](create-node-role.md) yang Anda kaitkan ke akun layanan Kubernetes sebagai gantinya. `IPv6` `aws-node` Untuk informasi selengkapnya, lihat [Konfigurasikan plugin Amazon VPC CNI untuk menggunakan IRSA](cni-iam-role.md).

1. Prosedur ini mengasumsikan bahwa Anda memiliki cluster yang ada. Jika Anda belum memiliki kluster Amazon EKS dan grup node Amazon Linux untuk menambahkan grup node Windows, kami sarankan Anda mengikuti[Memulai dengan Amazon EKS - `eksctl`](getting-started-eksctl.md). Panduan ini memberikan panduan lengkap tentang cara membuat cluster Amazon EKS dengan node Amazon Linux.

   Buat grup simpul Anda dengan perintah berikut. Ganti *region-code* dengan AWS Wilayah tempat cluster Anda berada. 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 di dalam AWS Wilayah dan AWS akun tempat Anda membuat cluster. Ganti *ng-windows* 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. Anda dapat mengganti *2019* dengan `2022` menggunakan Windows Server 2022 atau `2025` menggunakan Windows Server 2025. Ganti sisa nilai contoh dengan nilai Anda sendiri.
**penting**  
Untuk menyebarkan grup node ke subnet AWS Outposts, AWS Wavelength, atau Local Zone, jangan lewatkan subnet AWS Outposts, Wavelength, AWS atau Local Zone saat Anda membuat cluster. Buat grup node dengan file konfigurasi, tentukan subnet AWS Outposts, Wavelength, atau Local Zone. Untuk informasi selengkapnya, lihat [Membuat nodegroup dari file konfigurasi dan skema](https://eksctl.io/usage/nodegroups/#creating-a-nodegroup-from-a-config-file) [file Config](https://eksctl.io/usage/schema/) dalam dokumentasi. `eksctl`

   ```
   eksctl create nodegroup \
       --region region-code \
       --cluster my-cluster \
       --name ng-windows \
       --node-type t2.large \
       --nodes 3 \
       --nodes-min 1 \
       --nodes-max 4 \
       --managed=false \
       --node-ami-family WindowsServer2019FullContainer
   ```
**catatan**  
Jika simpul gagal bergabung dengan klaster, lihat [Simpul gagal untuk bergabung dengan klaster](troubleshooting.md#worker-node-fail) dalam panduan Pemecahan Masalah.
Untuk melihat opsi yang tersedia untuk `eksctl` perintah, masukkan perintah berikut.  

     ```
     eksctl command -help
     ```

   Contoh output adalah sebagai berikut. Beberapa baris adalah output sementara node dibuat. Salah satu baris terakhir dari output adalah baris contoh berikutnya.

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

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

1. Sebaiknya blokir akses Pod ke IMDS jika kondisi berikut 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 dalam klaster yang memerlukan akses ke layanan metadata instans Amazon EC2 (IMDS) karena alasan lain, seperti mengambil Region saat ini. AWS 

   Untuk informasi selengkapnya, lihat [Membatasi 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).

## Konsol Manajemen AWS
<a name="console_create_windows_nodes"></a>

 **Prasyarat** 
+ Klaster Amazon EKS yang sudah ada dan grup simpul Linux. Jika Anda tidak memiliki sumber daya ini, kami sarankan Anda membuatnya menggunakan salah satu panduan kami di[Memulai dengan Amazon EKS](getting-started.md). Panduan ini menjelaskan cara membuat cluster Amazon EKS dengan node Linux.
+ Grup VPC dan keamanan yang ada yang memenuhi persyaratan untuk klaster Amazon EKS. Untuk informasi selengkapnya, lihat [Lihat persyaratan jaringan Amazon EKS untuk VPC dan subnet](network-reqs.md) dan [Lihat persyaratan grup keamanan Amazon EKS untuk cluster](sec-group-reqs.md). Panduan dalam [Memulai dengan Amazon EKS](getting-started.md) membuat VPC yang memenuhi persyaratan. Atau, Anda juga dapat mengikuti [Buat VPC Amazon untuk kluster Amazon EKS](creating-a-vpc.md) Anda untuk membuatnya secara manual.
+ Cluster Amazon EKS yang ada yang menggunakan VPC dan grup keamanan yang memenuhi persyaratan kluster Amazon EKS. Untuk informasi selengkapnya, lihat [Buat kluster Amazon EKS](create-cluster.md). Jika Anda memiliki subnet di AWS Wilayah di mana Anda mengaktifkan AWS Outposts, AWS Wavelength, atau AWS Local Zones, subnet tersebut tidak boleh diteruskan saat Anda membuat cluster.

 **Langkah 1: Luncurkan node Windows yang dikelola sendiri menggunakan Konsol Manajemen AWS ** 

1. Tunggu status klaster Anda ditampilkan sebagai `ACTIVE`. Jika Anda meluncurkan node sebelum cluster aktif, node gagal mendaftar dengan cluster dan Anda perlu meluncurkannya kembali.

1. Buka [konsol AWS CloudFormation ](https://console.aws.amazon.com/cloudformation/) 

1. Pilih **Buat tumpukan**.

1. Untuk **Tentukan templat**, pilih **Amazon S3 URL**.

1. Salin URL berikut dan tempel ke URL **Amazon S3**.

   ```
   https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2023-02-09/amazon-eks-windows-nodegroup.yaml
   ```

1. Pilih **Berikutnya** dua kali.

1. Pada halaman **Quick create stack**, masukkan parameter berikut yang sesuai:
   +  **Nama tumpukan**: Pilih nama tumpukan untuk AWS CloudFormation tumpukan Anda. Misalnya, Anda bisa menyebutnya`my-cluster-nodes`.
   +  **ClusterName**: Masukkan nama yang Anda gunakan saat membuat cluster Amazon EKS Anda.
**penting**  
Nama ini harus sama persis dengan nama yang Anda gunakan di [Langkah 1: Buat cluster Amazon EKS Anda](getting-started-console.md#eks-create-cluster). Jika tidak, node Anda tidak dapat bergabung dengan cluster.
   +  **ClusterControlPlaneSecurityGroup**: Pilih grup keamanan dari AWS CloudFormation output yang Anda hasilkan saat membuat [VPC](creating-a-vpc.md) Anda. Langkah-langkah berikut menunjukkan satu metode untuk mengambil grup yang berlaku.

     1. Buka [konsol Amazon EKS](https://console.aws.amazon.com/eks/home#/clusters).

     1. Pilih nama cluster.

     1. Pilih tab **Jaringan**.

     1. Gunakan nilai **grup keamanan tambahan** sebagai referensi saat memilih dari daftar **ClusterControlPlaneSecurityGroup**tarik-turun.
   +  **NodeGroupName**: Masukkan nama untuk grup node Anda. Nama ini dapat digunakan nanti untuk mengidentifikasi grup node Auto Scaling yang dibuat untuk 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.
   +  **NodeAutoScalingGroupMinSize**: Masukkan jumlah minimum node yang dapat diskalakan oleh grup Auto Scaling node Anda.
   +  **NodeAutoScalingGroupDesiredCapacity**: Masukkan jumlah node yang diinginkan untuk diskalakan saat tumpukan Anda dibuat.
   +  **NodeAutoScalingGroupMaxSize**: Masukkan jumlah maksimum node yang dapat diskalakan oleh grup Auto Scaling node Anda.
   +  **NodeInstanceType**: Pilih jenis instance untuk node Anda. Untuk informasi selengkapnya, lihat [Pilih jenis instans node Amazon EC2 yang optimal](choosing-instance-type.md).
**catatan**  
[Tipe instans yang didukung untuk versi terbaru [plugin Amazon VPC CNI untuk Kubernetes tercantum di vpc\$1ip\$1resource\$1limit.go](https://github.com/aws/amazon-vpc-cni-k8s) on.](https://github.com/aws/amazon-vpc-cni-k8s/blob/master/pkg/vpc/vpc_ip_resource_limit.go) GitHub Anda mungkin perlu memperbarui versi CNI untuk menggunakan jenis instans terbaru yang didukung. Untuk informasi selengkapnya, lihat [Tetapkan IPs ke Pod dengan Amazon VPC CNI](managing-vpc-cni.md).
   +  **NodeImageIdSSMParam**: Diisi sebelumnya dengan parameter Amazon EC2 Systems Manager dari ID AMI Windows Core Windows Core Amazon EKS yang direkomendasikan saat ini. Untuk menggunakan versi lengkap Windows, ganti *Core* dengan`Full`.
   +  **NodeImageId**: (Opsional) Jika Anda menggunakan AMI kustom Anda sendiri (bukan AMI yang dioptimalkan Amazon EKS), masukkan ID AMI node untuk AWS Wilayah Anda. Jika Anda menentukan nilai untuk bidang ini, itu akan menggantikan nilai apa pun di **NodeImageIdSSMParam**bidang.
   +  **NodeVolumeSize**: Tentukan ukuran volume root untuk node Anda, di GiB.
   +  **KeyName**: Masukkan nama key pair Amazon EC2 SSH yang dapat Anda gunakan untuk terhubung menggunakan SSH ke node Anda setelah diluncurkan. Jika Anda belum memiliki key pair Amazon EC2, Anda dapat membuatnya di. Konsol Manajemen AWS Untuk informasi selengkapnya, lihat [pasangan kunci Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-key-pairs.html) di Panduan Pengguna *Amazon EC2*.
**catatan**  
Jika Anda tidak menyediakan key pair di sini, AWS CloudFormation tumpukan gagal dibuat.
   +  **BootstrapArguments**: Tentukan argumen opsional apa pun untuk diteruskan ke skrip bootstrap simpul, seperti `kubelet` argumen tambahan yang digunakan`-KubeletExtraArgs`.
   +  **Nonaktifkan IMDSv1**: Secara default, setiap node mendukung Layanan Metadata Instans Versi 1 (IMDSv1) dan. IMDSv2 Anda dapat menonaktifkan IMDSv1. Untuk mencegah penggunaan node dan Pod future dalam grup node MDSv1, setel **Disable IMDSv1** ke **true**. Untuk informasi selengkapnya tentang IMDS, lihat [Mengonfigurasi layanan metadata instans](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html).
   +  **VpcId**: Pilih ID untuk [VPC](creating-a-vpc.md) yang Anda buat.
   +  **NodeSecurityGroups**: Pilih grup keamanan yang dibuat untuk grup node Linux Anda saat Anda membuat [VPC](creating-a-vpc.md) Anda. Jika node Linux Anda memiliki lebih dari satu grup keamanan yang melekat padanya, tentukan semuanya. Ini untuk, misalnya, jika grup node Linux dibuat dengan`eksctl`.
   +  **Subnet**: Pilih subnet yang Anda buat. Jika Anda membuat VPC menggunakan langkah-langkah dalam [Membuat VPC Amazon untuk kluster Amazon EKS Anda](creating-a-vpc.md), tentukan hanya subnet pribadi dalam VPC untuk node Anda untuk diluncurkan.
**penting**  
Jika salah satu subnet adalah subnet publik, maka mereka harus mengaktifkan pengaturan tugas alamat IP publik otomatis. Jika pengaturan tidak diaktifkan untuk subnet publik, maka node apa pun yang Anda terapkan ke subnet publik tersebut tidak akan diberi alamat IP publik dan tidak akan dapat berkomunikasi dengan cluster atau layanan lainnya. AWS Jika subnet digunakan sebelum 26 Maret 2020 menggunakan salah satu [templat AWS CloudFormation VPC Amazon](creating-a-vpc.md) EKS, atau dengan menggunakan`eksctl`, maka penetapan alamat IP publik otomatis dinonaktifkan untuk subnet publik. Untuk informasi tentang cara mengaktifkan penetapan alamat IP publik untuk subnet, lihat [Memodifikasi atribut IPv4 pengalamatan publik](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html#subnet-public-ip) untuk subnet Anda. Jika node dikerahkan ke subnet pribadi, maka node dapat berkomunikasi dengan cluster dan AWS layanan lainnya melalui gateway NAT.
Jika subnet tidak memiliki akses internet, pastikan Anda mengetahui pertimbangan dan langkah tambahan dalam [Menyebarkan kluster pribadi dengan](private-clusters.md) akses internet terbatas.
Jika Anda memilih subnet AWS Outposts, Wavelength, atau Local Zone, maka subnet tidak boleh diteruskan saat Anda membuat cluster.

1. Nyatakan bahwa tumpukan dapat membuat sumber daya IAM, kemudian pilih **Buat tumpukan**.

1. Setelah tumpukan Anda selesai dibuat, pilih tumpukan di konsol dan pilih **Outputs**.

1. Rekam **NodeInstanceRole**untuk grup node yang telah dibuat. Anda memerlukan ini saat mengonfigurasi simpul Amazon EKS Windows Anda.

 **Langkah 2: Aktifkan node untuk bergabung dengan cluster Anda** 

1. Periksa untuk melihat apakah Anda sudah memiliki `aws-auth``ConfigMap`.

   ```
   kubectl describe configmap -n kube-system aws-auth
   ```

1. Jika Anda ditampilkan `aws-auth``ConfigMap`, maka perbarui sesuai kebutuhan.

   1. Buka `ConfigMap` untuk mengedit.

      ```
      kubectl edit -n kube-system configmap/aws-auth
      ```

   1. Tambahkan `mapRoles` entri baru sesuai kebutuhan. Tetapkan `rolearn` nilai ke **NodeInstanceRole**nilai yang Anda rekam dalam prosedur sebelumnya.

      ```
      [...]
      data:
        mapRoles: |
      - rolearn: <ARN of linux instance role (not instance profile)>
            username: system:node:{{EC2PrivateDNSName}}
            groups:
              - system:bootstrappers
              - system:nodes
          - rolearn: <ARN of windows instance role (not instance profile)>
            username: system:node:{{EC2PrivateDNSName}}
            groups:
              - system:bootstrappers
              - system:nodes
              - eks:kube-proxy-windows
      [...]
      ```

   1. Simpan file dan keluar dari editor teks Anda.

1. Jika Anda menerima kesalahan yang menyatakan "`Error from server (NotFound): configmaps "aws-auth" not found`, maka terapkan stok`ConfigMap`.

   1. Unduh peta konfigurasi.

      ```
      curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/aws-auth-cm-windows.yaml
      ```

   1. Dalam `aws-auth-cm-windows.yaml` file, atur `rolearn` nilai ke nilai yang berlaku **NodeInstanceRole**yang Anda rekam dalam prosedur sebelumnya. Anda dapat melakukan ini dengan editor teks, atau dengan mengganti nilai contoh dan menjalankan perintah berikut:

      ```
      sed -i.bak -e 's|<ARN of linux instance role (not instance profile)>|my-node-linux-instance-role|' \
          -e 's|<ARN of windows instance role (not instance profile)>|my-node-windows-instance-role|' aws-auth-cm-windows.yaml
      ```
**penting**  
Jangan mengubah baris lain dalam file ini.
Jangan gunakan peran IAM yang sama untuk node Windows dan Linux.

   1. Terapkan konfigurasi. Perintah ini mungkin memakan waktu beberapa menit untuk menyelesaikannya.

      ```
      kubectl apply -f aws-auth-cm-windows.yaml
      ```

1. Perhatikan status simpul Anda dan tunggu sampai simpul mencapai Status `Ready`.

   ```
   kubectl get nodes --watch
   ```

   Masukkan `Ctrl`\$1`C` untuk kembali ke prompt shell.
**catatan**  
Jika Anda menerima kesalahan otorisasi atau jenis sumber daya, lihat [Tidak sah atau akses ditolak (`kubectl`)](troubleshooting.md#unauthorized) di topik pemecahan masalah.

   Jika node gagal bergabung dengan cluster, maka lihat [Simpul gagal untuk bergabung dengan klaster](troubleshooting.md#worker-node-fail) di chapter Troubleshooting.

 **Langkah 3: Tindakan tambahan** 

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

1. (Opsional) Jika kebijakan IAM terkelola **Amazoneks\$1CNI\$1Policy** (jika Anda memiliki klaster) atau *AmazonEKS\$1CNI\$1IPv6\$1Policy* (yang Anda [buat sendiri](cni-iam-role.md#cni-iam-role-create-ipv6-policy) jika Anda memiliki `IPv4` klaster) dilampirkan ke peran IAM [node Amazon EKS Anda, kami sarankan untuk menetapkannya ke peran IAM](create-node-role.md) yang Anda kaitkan ke akun layanan Kubernetes sebagai gantinya. `IPv6` `aws-node` Untuk informasi selengkapnya, lihat [Konfigurasikan plugin Amazon VPC CNI untuk menggunakan IRSA](cni-iam-role.md).

1. Sebaiknya blokir akses Pod ke IMDS jika kondisi berikut 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 dalam klaster yang memerlukan akses ke layanan metadata instans Amazon EC2 (IMDS) karena alasan lain, seperti mengambil Region saat ini. AWS 

   Untuk informasi selengkapnya, lihat [Membatasi 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).