

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

# Kolam Node Kapasitas Statis dalam Mode Otomatis EKS
<a name="auto-static-capacity"></a>

Amazon EKS Auto Mode mendukung kumpulan node kapasitas statis yang mempertahankan jumlah node tetap terlepas dari permintaan pod. Kumpulan node kapasitas statis berguna untuk beban kerja yang memerlukan kapasitas yang dapat diprediksi, instance cadangan, atau persyaratan kepatuhan khusus di mana Anda perlu mempertahankan jejak infrastruktur yang konsisten.

Tidak seperti kumpulan node dinamis yang menskalakan berdasarkan permintaan penjadwalan pod, kumpulan node kapasitas statis mempertahankan jumlah node yang telah Anda konfigurasikan.

## Konfigurasikan kumpulan node kapasitas statis
<a name="_configure_a_static_capacity_node_pool"></a>

Untuk membuat kumpulan node kapasitas statis, atur `replicas` bidang dalam NodePool spesifikasi Anda. `replicas`Bidang mendefinisikan jumlah pasti node yang akan dipertahankan oleh kumpulan node. Lihat [Contoh](#static-capacity-examples) cara mengkonfigurasi`replicas`.

## Pertimbangan kumpulan node kapasitas statis
<a name="_static_capacity_node_pool_considerations"></a>

Pool node kapasitas statis memiliki beberapa kendala dan perilaku penting:

 **Kendala konfigurasi:** 
+  **Tidak dapat beralih mode**: Setelah Anda mengatur `replicas` kumpulan node, Anda tidak dapat menghapusnya. Kumpulan node tidak dapat beralih antara mode statis dan dinamis.
+  **Batas sumber daya terbatas**: Hanya `limits.nodes` bidang yang didukung di bagian batas. Batas CPU dan memori tidak berlaku.
+  **Tidak ada bidang berat**: `weight` Bidang tidak dapat diatur pada kumpulan node kapasitas statis karena pemilihan node tidak didasarkan pada prioritas.

 **Perilaku operasional:** 
+  **Tidak ada konsolidasi**: Node dalam kumpulan kapasitas statis tidak dipertimbangkan untuk konsolidasi.
+  **Operasi penskalaan**: Operasi skala melewati anggaran gangguan node tetapi masih menghormati. PodDisruptionBudgets
+  **Penggantian node**: Node masih diganti untuk drift (seperti pembaruan AMI) dan kedaluwarsa berdasarkan konfigurasi Anda.

## Praktik terbaik
<a name="_best_practices"></a>

 **Perencanaan kapasitas:** 
+ Tetapkan `limits.nodes` lebih tinggi daripada `replicas` untuk memungkinkan penskalaan sementara selama operasi penggantian node.
+ Pertimbangkan kapasitas maksimum yang diperlukan selama node drift atau pembaruan AMI saat menetapkan batas.

 **Pemilihan instans:** 
+ Gunakan jenis instans tertentu ketika Anda memiliki Instans Cadangan atau persyaratan perangkat keras tertentu.
+ Hindari persyaratan yang terlalu ketat yang mungkin membatasi ketersediaan instance selama penskalaan.

 **Manajemen gangguan:** 
+ Konfigurasikan anggaran gangguan yang sesuai untuk menyeimbangkan ketersediaan dengan operasi pemeliharaan.
+ Pertimbangkan toleransi aplikasi Anda untuk penggantian node saat menetapkan persentase anggaran.

 **Pemantauan** : 
+ Pantau `status.nodes` lapangan secara teratur untuk memastikan kapasitas yang Anda inginkan tetap terjaga.
+ Siapkan peringatan ketika jumlah node sebenarnya menyimpang dari replika yang diinginkan.

 **Distribusi zona:** 
+ Untuk ketersediaan tinggi, sebarkan kapasitas statis di beberapa Availability Zone.
+ Saat Anda membuat kumpulan node kapasitas statis yang mencakup beberapa zona ketersediaan, Mode Otomatis EKS mendistribusikan node di seluruh zona yang ditentukan, tetapi distribusinya tidak dijamin genap.
+ Untuk distribusi yang dapat diprediksi dan merata di seluruh zona ketersediaan, buat kumpulan node kapasitas statis terpisah, masing-masing disematkan ke zona ketersediaan tertentu menggunakan `topology.kubernetes.io/zone` persyaratan.
+ Jika Anda membutuhkan 12 node yang didistribusikan secara merata di tiga zona, buat tiga kumpulan node dengan masing-masing 4 replika, bukan satu kumpulan node dengan 12 replika di tiga zona.

## Menskalakan kumpulan node kapasitas statis
<a name="_scale_a_static_capacity_node_pool"></a>

Anda dapat mengubah jumlah replika dalam kumpulan node kapasitas statis menggunakan `kubectl scale` perintah:

```
# Scale down to 5 nodes
kubectl scale nodepool static-nodepool --replicas=5
```

Saat menurunkan skala, Mode Otomatis EKS akan menghentikan node dengan anggun, menghormati PodDisruptionBudgets dan memungkinkan pod yang sedang berjalan dijadwalkan ulang ke node yang tersisa.

## Pantau kolam simpul kapasitas statis
<a name="_monitor_static_capacity_node_pools"></a>

Gunakan perintah berikut untuk memantau kumpulan node kapasitas statis Anda:

```
# View node pool status
kubectl get nodepool static-nodepool

# Get detailed information including current node count
kubectl describe nodepool static-nodepool

# Check the current number of nodes
kubectl get nodepool static-nodepool -o jsonpath='{.status.nodes}'
```

`status.nodes`Bidang menunjukkan jumlah node saat ini yang dikelola oleh kumpulan node, yang harus sesuai dengan `replicas` jumlah yang Anda inginkan dalam kondisi normal.

## Pemecahan masalah
<a name="_troubleshooting"></a>

 **Node tidak mencapai replika yang diinginkan:** 
+ Periksa apakah `limits.nodes` nilainya cukup
+ Verifikasi bahwa persyaratan Anda tidak terlalu membatasi pemilihan instans
+ Tinjau kuota AWS layanan untuk jenis dan wilayah instans yang Anda gunakan

 **Penggantian node terlalu lama:** 
+ Sesuaikan anggaran gangguan untuk memungkinkan penggantian lebih bersamaan
+ Periksa PodDisruptionBudgets apakah mencegah penghentian simpul

 **Penghentian simpul yang tidak terduga:** 
+ Tinjau `expireAfter` dan `terminationGracePeriod` pengaturan
+ Periksa penghentian node manual atau acara AWS pemeliharaan

## Contoh
<a name="static-capacity-examples"></a>

### Kolam simpul kapasitas statis dasar
<a name="_basic_static_capacity_node_pool"></a>

```
apiVersion: karpenter.sh/v1
kind: NodePool
metadata:
  name: basic-static
spec:
  replicas: 5

  template:
    spec:
      nodeClassRef:
        group: eks.amazonaws.com
        kind: NodeClass
        name: default

      requirements:
        - key: "eks.amazonaws.com/instance-category"
          operator: In
          values: ["m"]
        - key: "topology.kubernetes.io/zone"
          operator: In
          values: ["us-west-2a"]

  limits:
    nodes: 8  # Allow scaling up to 8 during operations
```

### Kapasitas statis dengan tipe instans tertentu
<a name="_static_capacity_with_specific_instance_types"></a>

```
apiVersion: karpenter.sh/v1
kind: NodePool
metadata:
  name: reserved-instances
spec:
  replicas: 20

  template:
    metadata:
      labels:
        instance-type: reserved
        cost-center: production
    spec:
      nodeClassRef:
        group: eks.amazonaws.com
        kind: NodeClass
        name: default

      requirements:
        - key: "node.kubernetes.io/instance-type"
          operator: In
          values: ["m5.2xlarge"]  # Specific instance type
        - key: "karpenter.sh/capacity-type"
          operator: In
          values: ["on-demand"]
        - key: "topology.kubernetes.io/zone"
          operator: In
          values: ["us-west-2a", "us-west-2b", "us-west-2c"]

  limits:
    nodes: 25

  disruption:
    # Conservative disruption for production workloads
    budgets:
      - nodes: 10%
```

### Kolam simpul kapasitas statis multi-zona
<a name="_multi_zone_static_capacity_node_pool"></a>

```
apiVersion: karpenter.sh/v1
kind: NodePool
metadata:
  name: multi-zone-static
spec:
  replicas: 12  # Will be distributed across specified zones

  template:
    metadata:
      labels:
        availability: high
    spec:
      nodeClassRef:
        group: eks.amazonaws.com
        kind: NodeClass
        name: default

      requirements:
        - key: "eks.amazonaws.com/instance-category"
          operator: In
          values: ["c", "m"]
        - key: "eks.amazonaws.com/instance-cpu"
          operator: In
          values: ["8", "16"]
        - key: "topology.kubernetes.io/zone"
          operator: In
          values: ["us-west-2a", "us-west-2b", "us-west-2c"]
        - key: "karpenter.sh/capacity-type"
          operator: In
          values: ["on-demand"]

  limits:
    nodes: 15

  disruption:
    budgets:
      - nodes: 25%
```

### Kapasitas statis dengan reservasi kapasitas
<a name="_static_capacity_with_capacity_reservation"></a>

Contoh berikut menunjukkan cara menggunakan kolam node kapasitas statis dengan Reservasi Kapasitas EC2. Untuk informasi selengkapnya tentang penggunaan Reservasi Kapasitas EC2 dengan Mode Otomatis EKS, lihat. [Kontrol penyebaran beban kerja ke Reservasi Kapasitas dengan Mode Otomatis EKS](auto-odcr.md)

 `NodeClass`mendefinisikan `capacityReservationSelectorTerms` 

```
apiVersion: eks.amazonaws.com/v1
kind: NodeClass
metadata:
  name: capacity-reservation-nodeclass
spec:
  role: AmazonEKSNodeRole
  securityGroupSelectorTerms:
  - id: sg-0123456789abcdef0
  subnetSelectorTerms:
  - id: subnet-0123456789abcdef0
  capacityReservationSelectorTerms:
  - id: cr-0123456789abcdef0
```

 `NodePool`mereferensikan hal di atas `NodeClass` dan menggunakan`karpenter.sh/capacity-type: reserved`.

```
apiVersion: karpenter.sh/v1
kind: NodePool
metadata:
  name: static-capacity-reservation-nodepool
spec:
  replicas: 5
  limits:
    nodes: 8  # Allow scaling up to 8 during operations
  template:
    metadata: {}
    spec:
      nodeClassRef:
        group: eks.amazonaws.com
        kind: NodeClass
        name: capacity-reservation-nodeclass
      requirements:
      - key: karpenter.sh/capacity-type
        operator: In
        values: ['reserved']
```