

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

# Tetapkan lebih banyak alamat IP ke node Amazon EKS dengan awalan
<a name="cni-increase-ip-addresses"></a>

 **Berlaku untuk**: Node Linux dan Windows dengan EC2 instans Amazon

 **Berlaku untuk**: Subnet publik dan pribadi

Setiap EC2 instans Amazon mendukung jumlah maksimum antarmuka jaringan elastis dan jumlah maksimum alamat IP yang dapat ditetapkan untuk setiap antarmuka jaringan. Setiap node membutuhkan satu alamat IP untuk setiap antarmuka jaringan. Semua alamat IP lain yang tersedia dapat ditetapkan`Pods`. Masing-masing `Pod` membutuhkan alamat IP sendiri. Akibatnya, Anda mungkin memiliki node yang memiliki sumber daya komputasi dan memori yang tersedia, tetapi tidak dapat mengakomodasi tambahan `Pods` karena node telah kehabisan alamat IP untuk ditetapkan. `Pods`

Anda dapat meningkatkan jumlah alamat IP yang dapat ditetapkan `Pods` oleh node dengan menetapkan awalan IP, daripada menetapkan alamat IP sekunder individual ke node Anda. Setiap awalan mencakup beberapa alamat IP. Jika Anda tidak mengonfigurasi klaster untuk penetapan awalan IP, klaster Anda harus membuat lebih banyak panggilan antarmuka pemrograman EC2 aplikasi Amazon (API) untuk mengonfigurasi antarmuka jaringan dan alamat IP yang diperlukan untuk konektivitas Pod. Seiring pertumbuhan cluster ke ukuran yang lebih besar, frekuensi panggilan API ini dapat menyebabkan waktu peluncuran Pod dan instance yang lebih lama. Hal ini mengakibatkan penundaan penskalaan untuk memenuhi permintaan beban kerja yang besar dan runcing, dan menambah biaya dan overhead manajemen karena Anda perlu menyediakan cluster tambahan dan untuk memenuhi persyaratan penskalaan. VPCs Untuk informasi selengkapnya, lihat Ambang batas [skalabilitas Kubernetes pada](https://github.com/kubernetes/community/blob/master/sig-scalability/configs-and-limits/thresholds.md). GitHub

## Kompatibilitas dengan plugin Amazon VPC CNI untuk fitur Kubernetes
<a name="cni-increase-ip-addresses-compatability"></a>

Anda dapat menggunakan awalan IP dengan fitur-fitur berikut:
+ IPv4 Terjemahan Alamat Jaringan Sumber - Untuk informasi lebih lanjut, lihat[Aktifkan akses internet keluar untuk Pod](external-snat.md).
+ IPv6 alamat ke klaster, Pod, dan layanan - Untuk informasi selengkapnya, lihat[Pelajari tentang IPv6 alamat ke klaster, Pod, dan layanan](cni-ipv6.md).
+ Membatasi lalu lintas menggunakan kebijakan jaringan Kubernetes - Untuk informasi selengkapnya, lihat. [Batasi lalu lintas Pod dengan kebijakan jaringan Kubernetes](cni-network-policy.md)

Daftar berikut memberikan informasi tentang pengaturan plugin Amazon VPC CNI yang berlaku. Untuk informasi selengkapnya tentang setiap setelan, lihat [amazon-vpc-cni-k8s](https://github.com/aws/amazon-vpc-cni-k8s/blob/master/README.md) di GitHub.
+  `WARM_IP_TARGET` 
+  `MINIMUM_IP_TARGET` 
+  `WARM_PREFIX_TARGET` 

## Pertimbangan
<a name="cni-increase-ip-addresses-considerations"></a>

Pertimbangkan hal berikut saat Anda menggunakan fitur ini:
+ Setiap jenis EC2 instans Amazon mendukung jumlah maksimum Pod. Jika grup node terkelola Anda terdiri dari beberapa tipe instans, jumlah Pod maksimum terkecil untuk sebuah instance di klaster diterapkan ke semua node dalam klaster.
+ Secara default, jumlah maksimum `Pods` yang dapat Anda jalankan pada node adalah 110, tetapi Anda dapat mengubah nomor itu. Jika Anda mengubah nomor dan memiliki grup node terkelola yang sudah ada, AMI berikutnya atau update template peluncuran grup node Anda akan menghasilkan node baru yang muncul dengan nilai yang diubah.
+ Saat beralih dari menetapkan alamat IP ke menetapkan awalan IP, kami menyarankan Anda membuat grup node baru untuk meningkatkan jumlah alamat IP yang tersedia, daripada melakukan penggantian bergulir node yang ada. Menjalankan Pod pada node yang memiliki alamat IP dan prefiks yang ditetapkan dapat menyebabkan ketidakkonsistenan dalam kapasitas alamat IP yang diiklankan, yang berdampak pada beban kerja future pada node. Untuk cara yang disarankan dalam melakukan transisi, lihat [Mode Delegasi Awalan untuk Linux di Panduan](https://docs.aws.amazon.com/eks/latest/best-practices/prefix-mode-linux.html) *Praktik Terbaik Amazon EKS*.
+ Cakupan grup keamanan berada pada tingkat simpul - Untuk informasi selengkapnya, lihat Grup [keamanan](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html).
+ Awalan IP yang ditetapkan ke antarmuka jaringan mendukung kepadatan Pod yang tinggi per node dan memiliki waktu peluncuran terbaik.
+ Awalan IP dan alamat IP dikaitkan dengan antarmuka jaringan EC2 elastis Amazon standar. Pod yang membutuhkan grup keamanan tertentu diberi alamat IP utama dari antarmuka jaringan cabang. Anda dapat mencampur Pod yang mendapatkan alamat IP, atau alamat IP dari awalan IP dengan Pod yang mendapatkan antarmuka jaringan cabang pada node yang sama.
+ Untuk cluster dengan node Linux saja.
  + Setelah Anda mengonfigurasi add-on untuk menetapkan awalan ke antarmuka jaringan, Anda tidak dapat menurunkan versi plugin Amazon VPC CNI untuk add-on Kubernetes ke versi yang `1.9.0` lebih rendah dari (`1.10.1`atau) tanpa menghapus semua node di semua grup node di cluster Anda.
  + Jika Anda juga menggunakan grup keamanan untuk Pod, dengan `POD_SECURITY_GROUP_ENFORCING_MODE` = `standard` dan `AWS_VPC_K8S_CNI_EXTERNALSNAT` =`false`, ketika Pod Anda berkomunikasi dengan titik akhir di luar VPC Anda, grup keamanan node akan digunakan, bukan grup keamanan apa pun yang telah Anda tetapkan ke Pod Anda.

    Jika Anda juga menggunakan [grup keamanan untuk Pod](security-groups-for-pods.md), dengan `POD_SECURITY_GROUP_ENFORCING_MODE` =`strict`, saat `Pods` berkomunikasi dengan titik akhir di luar VPC, grup keamanan `Pod’s` akan digunakan.

# Tingkatkan alamat IP yang tersedia untuk node Amazon EKS Anda
<a name="cni-increase-ip-addresses-procedure"></a>

Anda dapat meningkatkan jumlah alamat IP yang dapat ditetapkan node ke Pod dengan menetapkan awalan IP, daripada menetapkan alamat IP sekunder individual ke node Anda.

## Prasyarat
<a name="_prerequisites"></a>
+ Anda membutuhkan cluster yang ada. Untuk menyebarkan satu, lihat[Buat kluster Amazon EKS](create-cluster.md).
+ Subnet tempat node Amazon EKS Anda berada harus memiliki blok yang cukup berdekatan `/28` (untuk `IPv4` cluster) atau (untuk cluster) Classless Inter-Domain `IPv6` Routing `/80` (CIDR). Anda hanya dapat memiliki node Linux dalam sebuah `IPv6` cluster. Menggunakan awalan IP dapat gagal jika alamat IP tersebar di seluruh subnet CIDR. Sebaiknya lakukan hal berikut:
  + Menggunakan reservasi CIDR subnet sehingga meskipun ada alamat IP dalam rentang cadangan masih digunakan, setelah dirilis, alamat IP tidak dipindahkan. Ini memastikan bahwa awalan tersedia untuk alokasi tanpa segmentasi.
  + Gunakan subnet baru yang secara khusus digunakan untuk menjalankan beban kerja yang awalan IP ditetapkan. Beban kerja Windows dan Linux dapat berjalan di subnet yang sama saat menetapkan awalan IP.
+ Untuk menetapkan awalan IP ke node Anda, node Anda harus berbasis Nitro. AWS Instans yang tidak berbasis Nitro terus mengalokasikan alamat IP sekunder individual, tetapi memiliki jumlah alamat IP yang jauh lebih rendah untuk ditetapkan ke Pod daripada instans berbasis Nitro.
+  **Untuk cluster dengan node Linux saja** - Jika cluster Anda dikonfigurasi untuk `IPv4` keluarga, Anda harus memiliki versi `1.9.0` atau yang lebih baru dari plugin Amazon VPC CNI untuk add-on Kubernetes diinstal. Anda dapat memeriksa versi Anda saat ini dengan perintah berikut.

  ```
  kubectl describe daemonset aws-node --namespace kube-system | grep Image | cut -d "/" -f 2
  ```

  Jika cluster Anda dikonfigurasi untuk `IPv6` keluarga, Anda harus menginstal `1.10.1` versi add-on. Jika versi plugin Anda lebih awal dari versi yang diperlukan, Anda harus memperbaruinya. Untuk informasi selengkapnya, lihat bagian update [Assign IPs to Pod dengan Amazon VPC CNI](managing-vpc-cni.md).
+  **Untuk cluster dengan node Windows saja** 
  + Anda harus mengaktifkan dukungan Windows untuk cluster Anda. Untuk informasi selengkapnya, lihat [Menerapkan node Windows pada kluster EKS](windows-support.md).

## Tetapkan awalan alamat IP ke node
<a name="cni-increase-ip-procedure"></a>

Konfigurasikan cluster Anda untuk menetapkan awalan alamat IP ke node. Selesaikan prosedur yang cocok dengan sistem operasi node Anda.

### Linux
<a name="_linux"></a>

1. Aktifkan parameter untuk menetapkan awalan ke antarmuka jaringan untuk Amazon VPC CNI. DaemonSet Saat Anda menerapkan klaster, versi `1.10.1` atau yang lebih baru dari plugin Amazon VPC CNI untuk add-on Kubernetes akan di-deploy dengannya. Jika Anda membuat cluster dengan `IPv6` keluarga, pengaturan ini disetel ke secara `true` default. Jika Anda membuat cluster dengan `IPv4` keluarga, pengaturan ini disetel ke secara `false` default.

   ```
   kubectl set env daemonset aws-node -n kube-system ENABLE_PREFIX_DELEGATION=true
   ```
**penting**  
Bahkan jika subnet Anda memiliki alamat IP yang tersedia, jika subnet tidak memiliki `/28` blok yang berdekatan, Anda akan melihat kesalahan berikut di plugin Amazon VPC CNI untuk log Kubernetes.  

   ```
   InsufficientCidrBlocks: The specified subnet does not have enough free cidr blocks to satisfy the request
   ```
Hal ini dapat terjadi karena fragmentasi alamat IP sekunder yang ada tersebar di subnet. Untuk mengatasi kesalahan ini, buat subnet baru dan luncurkan Pod di sana, atau gunakan reservasi CIDR EC2 subnet Amazon untuk memesan ruang di dalam subnet untuk digunakan dengan penetapan awalan. Untuk informasi selengkapnya, lihat [Reservasi CIDR Subnet](https://docs.aws.amazon.com/vpc/latest/userguide/subnet-cidr-reservation.html) di Panduan Pengguna Amazon VPC.

1. Jika Anda berencana untuk menerapkan grup node terkelola tanpa template peluncuran, atau dengan template peluncuran yang belum Anda tentukan ID AMI, dan Anda menggunakan versi plugin Amazon VPC CNI untuk Kubernetes pada atau lebih baru dari versi yang tercantum dalam prasyarat, lalu lewati ke langkah berikutnya. Grup node terkelola secara otomatis menghitung jumlah maksimum Pod untuk Anda.

   Jika Anda menerapkan grup node yang dikelola sendiri atau grup node terkelola dengan template peluncuran yang telah Anda tentukan ID AMI, Anda harus menentukan jumlah maksimum Pod yang direkomendasikan Amazon EKS untuk node Anda. Ikuti petunjuk di , tambahkan `--cni-prefix-delegation-enabled` ke langkah 3. Perhatikan output untuk digunakan di langkah selanjutnya.
**penting**  
Grup node terkelola memberlakukan jumlah maksimum pada nilai. `maxPods` Untuk contoh dengan kurang dari 30 v CPUs jumlah maksimum adalah 110 dan untuk semua contoh lainnya jumlah maksimum adalah 250. Jumlah maksimum ini diterapkan apakah delegasi awalan diaktifkan atau tidak.

1. Jika Anda menggunakan cluster yang dikonfigurasi`IPv6`, lewati ke langkah berikutnya.

   Tentukan parameter di salah satu opsi berikut. Untuk menentukan opsi mana yang tepat untuk Anda dan nilai apa yang akan diberikan untuknya, lihat [WARM\$1PREFIX\$1TARGET, WARM\$1IP\$1TARGET, dan MINIMUM\$1IP\$1TARGET aktif](https://github.com/aws/amazon-vpc-cni-k8s/blob/master/docs/prefix-and-ip-target.md). GitHub

   Anda dapat mengganti nilai contoh dengan nilai lebih besar dari nol.
   +  `WARM_PREFIX_TARGET` 

     ```
     kubectl set env ds aws-node -n kube-system WARM_PREFIX_TARGET=1
     ```
   +  `WARM_IP_TARGET`atau `MINIMUM_IP_TARGET` — Jika salah satu nilai ditetapkan, itu akan menggantikan nilai yang ditetapkan untuk. `WARM_PREFIX_TARGET`

     ```
     kubectl set env ds aws-node -n kube-system WARM_IP_TARGET=5
     ```

     ```
     kubectl set env ds aws-node -n kube-system MINIMUM_IP_TARGET=2
     ```

1. Buat salah satu jenis grup node berikut dengan setidaknya satu jenis instans Amazon EC2 Nitro Amazon Linux 2023. Untuk daftar jenis instans Nitro, lihat [Instans yang dibangun di Sistem Nitro di Panduan](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances) Pengguna Amazon EC2 . Kemampuan ini tidak didukung pada Windows. Untuk opsi yang disertakan*110*, ganti dengan nilai dari langkah 3 (disarankan), atau nilai Anda sendiri.
   +  **Dikelola sendiri** — Menerapkan grup node menggunakan instruksi di [Buat node Amazon Linux yang dikelola](launch-workers.md) sendiri. Sebelum membuat CloudFormation tumpukan, buka file template dan sesuaikan `UserData` di `NodeLaunchTemplate` menjadi seperti berikut

     ```
     ...
                 apiVersion: node.eks.aws/v1alpha1
                 kind: NodeConfig
                 spec:
                   cluster:
                     name: ${ClusterName}
                     apiServerEndpoint: ${ApiServerEndpoint}
                     certificateAuthority: ${CertificateAuthorityData}
                     cidr: ${ServiceCidr}
                   kubelet:
                     config:
                       maxPods: 110
     ...
     ```

     Jika Anda menggunakan `eksctl` untuk membuat grup node, Anda dapat menggunakan perintah berikut.

     ```
     eksctl create nodegroup --cluster my-cluster --managed=false --max-pods-per-node 110
     ```
   +  **Dikelola** - Terapkan grup node Anda menggunakan salah satu opsi berikut:
     +  **Tanpa template peluncuran atau dengan template peluncuran tanpa ID AMI yang ditentukan** — Selesaikan prosedur di [Buat grup node terkelola untuk klaster Anda](create-managed-node-group.md). Grup node terkelola secara otomatis menghitung `max-pods` nilai yang direkomendasikan Amazon EKS untuk Anda.
     +  **Dengan template peluncuran dengan ID AMI tertentu** — Dalam template peluncuran Anda, tentukan ID AMI Amazon EKS yang dioptimalkan, atau AMI kustom yang dibuat dari AMI Amazon EKS yang dioptimalkan, lalu [terapkan grup node menggunakan template peluncuran](launch-templates.md) dan berikan data pengguna berikut di template peluncuran. Data pengguna ini melewati `NodeConfig` objek yang akan dibaca oleh `nodeadm` alat pada node. Untuk informasi selengkapnya`nodeadm`, lihat [dokumentasi nodeadm](https://awslabs.github.io/amazon-eks-ami/nodeadm).

       ```
       MIME-Version: 1.0
       Content-Type: multipart/mixed; boundary="//"
       
       --//
       Content-Type: application/node.eks.aws
       
       ---
       apiVersion: node.eks.aws/v1alpha1
       kind: NodeConfig
       spec:
        cluster:
          apiServerEndpoint: [.replaceable]`my-cluster`
          certificateAuthority: [.replaceable]`LS0t...`
          cidr: [.replaceable]`10.100.0.0/16`
          name: [.replaceable]`my-cluster
        kubelet:
          config:
            maxPods: [.replaceable]`110`
       --//--
       ```

       Jika Anda menggunakan `eksctl` untuk membuat grup node, Anda dapat menggunakan perintah berikut.

       ```
       eksctl create nodegroup --cluster my-cluster --max-pods-per-node 110
       ```

       Jika Anda telah membuat AMI kustom yang tidak dibangun dari AMI Amazon EKS yang dioptimalkan, maka Anda perlu membuat konfigurasi sendiri.
**catatan**  
Jika Anda juga ingin menetapkan alamat IP ke Pod dari subnet yang berbeda dari instans, maka Anda perlu mengaktifkan kapabilitas pada langkah ini. Untuk informasi selengkapnya, lihat [Menerapkan Pod di subnet alternatif dengan jaringan khusus](cni-custom-network.md).

### Windows
<a name="_windows"></a>

1. Aktifkan penugasan awalan IP.

   1. Buka `amazon-vpc-cni` `ConfigMap` untuk mengedit.

      ```
      kubectl edit configmap -n kube-system amazon-vpc-cni -o yaml
      ```

   1. Tambahkan baris berikut ke `data` bagian.

      ```
        enable-windows-prefix-delegation: "true"
      ```

   1. Simpan file dan tutup editor.

   1. Konfirmasikan bahwa baris telah ditambahkan ke`ConfigMap`.

      ```
      kubectl get configmap -n kube-system amazon-vpc-cni -o "jsonpath={.data.enable-windows-prefix-delegation}"
      ```

      Jika output yang dikembalikan tidak`true`, maka mungkin ada kesalahan. Coba selesaikan langkahnya lagi.
**penting**  
Bahkan jika subnet Anda memiliki alamat IP yang tersedia, jika subnet tidak memiliki `/28` blok yang berdekatan, Anda akan melihat kesalahan berikut di plugin Amazon VPC CNI untuk log Kubernetes.  

      ```
      InsufficientCidrBlocks: The specified subnet does not have enough free cidr blocks to satisfy the request
      ```
Hal ini dapat terjadi karena fragmentasi alamat IP sekunder yang ada tersebar di subnet. Untuk mengatasi kesalahan ini, buat subnet baru dan luncurkan Pod di sana, atau gunakan reservasi CIDR EC2 subnet Amazon untuk memesan ruang di dalam subnet untuk digunakan dengan penetapan awalan. Untuk informasi selengkapnya, lihat [Reservasi CIDR Subnet](https://docs.aws.amazon.com/vpc/latest/userguide/subnet-cidr-reservation.html) di Panduan Pengguna Amazon VPC.

1. (Opsional) Tentukan konfigurasi tambahan untuk mengontrol perilaku pra-penskalaan dan penskalaan dinamis untuk klaster Anda. Untuk informasi selengkapnya, lihat [Opsi konfigurasi dengan mode Delegasi Awalan di Windows](https://github.com/aws/amazon-vpc-resource-controller-k8s/blob/master/docs/windows/prefix_delegation_config_options.md) aktif. GitHub

   1. Buka `amazon-vpc-cni` `ConfigMap` untuk mengedit.

      ```
      kubectl edit configmap -n kube-system amazon-vpc-cni -o yaml
      ```

   1. Ganti nilai contoh dengan nilai lebih besar dari nol dan tambahkan entri yang Anda butuhkan ke `data` bagian`ConfigMap`. Jika Anda menetapkan nilai untuk salah satu `warm-ip-target` atau`minimum-ip-target`, nilai akan menggantikan nilai yang ditetapkan untuk. `warm-prefix-target`

      ```
        warm-prefix-target: "1"
        warm-ip-target: "5"
        minimum-ip-target: "2"
      ```

   1. Simpan file dan tutup editor.

1. Buat grup node Windows dengan setidaknya satu jenis instans Amazon EC2 Nitro. Untuk daftar jenis instans Nitro, lihat [Instans yang dibangun di Sistem Nitro di Panduan](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instance-types.html#ec2-nitro-instances) Pengguna Amazon EC2 . Secara default, jumlah maksimum Pod yang dapat Anda deploy ke sebuah node adalah 110. Jika Anda ingin menambah atau mengurangi angka itu, tentukan yang berikut ini dalam data pengguna untuk konfigurasi bootstrap. Ganti *max-pods-quantity* dengan nilai pod maks Anda.

   ```
   -KubeletExtraArgs '--max-pods=max-pods-quantity'
   ```

   Jika Anda menerapkan grup node terkelola, konfigurasi ini perlu ditambahkan dalam template peluncuran. Untuk informasi selengkapnya, lihat [Sesuaikan node terkelola dengan templat peluncuran](launch-templates.md). Untuk informasi selengkapnya tentang parameter konfigurasi untuk skrip bootstrap Windows, lihat[Parameter konfigurasi skrip bootstrap](eks-optimized-windows-ami.md#bootstrap-script-configuration-parameters).

## Tentukan Pod maksimal dan alamat IP yang tersedia
<a name="cni-increase-ip-verify"></a>

1. Setelah node Anda di-deploy, lihat node di cluster Anda.

   ```
   kubectl get nodes
   ```

   Contoh output adalah sebagai berikut.

   ```
   NAME                                             STATUS     ROLES    AGE   VERSION
   ip-192-168-22-103.region-code.compute.internal   Ready      <none>   19m   v1.XX.X-eks-6b7464
   ip-192-168-97-94.region-code.compute.internal    Ready      <none>   19m   v1.XX.X-eks-6b7464
   ```

1. Jelaskan salah satu node untuk menentukan nilai `max-pods` untuk node dan jumlah alamat IP yang tersedia. Ganti *192.168.30.193* dengan `IPv4` alamat atas nama salah satu node Anda yang dikembalikan pada output sebelumnya.

   ```
   kubectl describe node ip-192-168-30-193.region-code.compute.internal | grep 'pods\|PrivateIPv4Address'
   ```

   Contoh output adalah sebagai berikut.

   ```
   pods:                                  110
   vpc.amazonaws.com/PrivateIPv4Address:  144
   ```

   Pada output sebelumnya, `110` adalah jumlah maksimum Pod yang Kubernetes akan deploy ke node, meskipun *144* alamat IP tersedia.