

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

# Sesuaikan sumber daya pod dengan Vertical Pod Autoscaler
<a name="vertical-pod-autoscaler"></a>

Kubernetes [Vertical Pod Autoscaler](https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler) secara otomatis menyesuaikan reservasi CPU dan memori untuk Pod Anda untuk membantu “ukuran yang tepat” aplikasi Anda. Penyesuaian ini dapat meningkatkan pemanfaatan sumber daya cluster dan membebaskan CPU dan memori untuk Pod lainnya. Topik ini membantu Anda untuk men-deploy Vertikal Pod Autoscaler untuk klaster Anda dan memverifikasi bahwa itu bekerja.
+ Anda memiliki klaster Amazon EKS yang ada. Jika tidak, lihat[Memulai dengan Amazon EKS](getting-started.md).
+ Anda telah menginstal Server Metrik Kubernetes. Untuk informasi selengkapnya, tinjau [Melihat penggunaan resource dengan Kubernetes Metrics Server](metrics-server.md).
+ Anda menggunakan klien `kubectl` yang [dikonfigurasi untuk berkomunikasi dengan klaster Amazon EKS](getting-started-console.md#eks-configure-kubectl).
+ `1.1.1`OpenSSL atau yang lebih baru diinstal pada perangkat Anda.

## Men-deploy Vertical Pod Autoscaler
<a name="vpa-deploy"></a>

Pada bagian ini, Anda men-deploy Vertical Pod Autoscaler untuk klaster Anda.

1. Buka jendela terminal dan arahkan ke direktori tempat Anda ingin mengunduh kode sumber Vertical Pod Autoscaler.

1. Kloning repositori [GitHub kubernetes/autoscaler](https://github.com/kubernetes/autoscaler).

   ```
   git clone https://github.com/kubernetes/autoscaler.git
   ```

1. Mengubah ke direktori `vertical-pod-autoscaler`.

   ```
   cd autoscaler/vertical-pod-autoscaler/
   ```

1. (Opsional) Jika Anda telah men-deploy versi lain Vertical Pod Autoscaler, hapus dengan perintah berikut.

   ```
   ./hack/vpa-down.sh
   ```

1. Jika node Anda tidak memiliki akses internet ke registri `registry.k8s.io` kontainer, maka Anda perlu menarik gambar berikut dan mendorongnya ke repositori pribadi Anda sendiri. Untuk informasi selengkapnya tentang cara menarik gambar dan mendorongnya ke repositori pribadi Anda sendiri, lihat. [Salin gambar kontainer dari satu repositori ke repositori lain](copy-image-to-repository.md)

   ```
   registry.k8s.io/autoscaling/vpa-admission-controller:0.10.0
   registry.k8s.io/autoscaling/vpa-recommender:0.10.0
   registry.k8s.io/autoscaling/vpa-updater:0.10.0
   ```

   Jika Anda mendorong gambar ke repositori Amazon ECR pribadi, ganti manifes dengan `registry.k8s.io` registri Anda. Ganti *111122223333* dengan ID akun Anda. Ganti *region-code* dengan AWS Wilayah tempat cluster Anda berada. Perintah berikut mengasumsikan bahwa Anda menamai repositori Anda sama dengan nama repositori dalam manifes. Jika Anda menamai repositori Anda sesuatu yang berbeda, maka Anda harus mengubahnya juga.

   ```
   sed -i.bak -e 's/registry.k8s.io/111122223333.dkr.ecr.region-code.amazonaws.com/' ./deploy/admission-controller-deployment.yaml
   sed -i.bak -e 's/registry.k8s.io/111122223333.dkr.ecr.region-code.amazonaws.com/' ./deploy/recommender-deployment.yaml
   sed -i.bak -e 's/registry.k8s.io/111122223333.dkr.ecr.region-code.amazonaws.com/' ./deploy/updater-deployment.yaml
   ```

1. Men-deploy Vertical Pod Autoscaler untuk klaster Anda dengan perintah berikut.

   ```
   ./hack/vpa-up.sh
   ```

1. Verifikasi bahwa Pod Vertical Pod Autoscaler telah berhasil dibuat.

   ```
   kubectl get pods -n kube-system
   ```

   Contoh output adalah sebagai berikut.

   ```
   NAME                                        READY   STATUS    RESTARTS   AGE
   [...]
   metrics-server-8459fc497-kfj8w              1/1     Running   0          83m
   vpa-admission-controller-68c748777d-ppspd   1/1     Running   0          7s
   vpa-recommender-6fc8c67d85-gljpl            1/1     Running   0          8s
   vpa-updater-786b96955c-bgp9d                1/1     Running   0          8s
   ```

## Uji pemasangan Vertical Pod Autoscaler
<a name="vpa-sample-app"></a>

Dalam bagian ini, Anda men-deploy contoh aplikasi untuk memverifikasi bahwa Vertical Pod Autoscaler bekerja.

1. Deploy `hamster.yaml` contoh Vertikal Pod Autoscaler dengan perintah berikut.

   ```
   kubectl apply -f examples/hamster.yaml
   ```

1. Dapatkan Pod dari aplikasi `hamster` contoh.

   ```
   kubectl get pods -l app=hamster
   ```

   Contoh output adalah sebagai berikut.

   ```
   hamster-c7d89d6db-rglf5   1/1     Running   0          48s
   hamster-c7d89d6db-znvz5   1/1     Running   0          48s
   ```

1. Jelaskan salah satu Pod untuk melihat `cpu` dan `memory` reservasi. Ganti *c7d89d6db-rglf5* dengan salah satu yang IDs dikembalikan dalam output Anda dari langkah sebelumnya.

   ```
   kubectl describe pod hamster-c7d89d6db-rglf5
   ```

   Contoh output adalah sebagai berikut.

   ```
   [...]
   Containers:
     hamster:
       Container ID:  docker://e76c2413fc720ac395c33b64588c82094fc8e5d590e373d5f818f3978f577e24
       Image:         registry.k8s.io/ubuntu-slim:0.1
       Image ID:      docker-pullable://registry.k8s.io/ubuntu-slim@sha256:b6f8c3885f5880a4f1a7cf717c07242eb4858fdd5a84b5ffe35b1cf680ea17b1
       Port:          <none>
       Host Port:     <none>
       Command:
         /bin/sh
       Args:
         -c
         while true; do timeout 0.5s yes >/dev/null; sleep 0.5s; done
       State:          Running
         Started:      Fri, 27 Sep 2019 10:35:16 -0700
       Ready:          True
       Restart Count:  0
       Requests:
         cpu:        100m
         memory:     50Mi
   [...]
   ```

   Anda dapat melihat bahwa Pod asli menyimpan 100 millicpu CPU dan 50 mebibytes memori. Untuk contoh aplikasi ini, 100 millicpu kurang dari yang dibutuhkan Pod untuk dijalankan, jadi CPU-constrained. Ini juga menyimpan memori jauh lebih sedikit dari yang dibutuhkan. `vpa-recommender`Penerapan Vertical Pod Autoscaler menganalisis Pod hamster untuk melihat apakah persyaratan CPU dan memori sesuai. Jika penyesuaian diperlukan, Pod akan `vpa-updater` diluncurkan kembali dengan nilai yang diperbarui.

1. Tunggu `vpa-updater` hingga meluncurkan Pod hamster baru. Ini harus memakan waktu satu atau dua menit. Anda dapat memantau Pod dengan perintah berikut.
**catatan**  
Jika Anda tidak yakin bahwa Pod baru telah diluncurkan, bandingkan nama Pod dengan daftar sebelumnya. Saat Pod baru diluncurkan, Anda akan melihat nama Pod baru.

   ```
   kubectl get --watch Pods -l app=hamster
   ```

1. Saat Pod hamster baru dimulai, jelaskan dan lihat reservasi CPU dan memori yang diperbarui.

   ```
   kubectl describe pod hamster-c7d89d6db-jxgfv
   ```

   Contoh output adalah sebagai berikut.

   ```
   [...]
   Containers:
     hamster:
       Container ID:  docker://2c3e7b6fb7ce0d8c86444334df654af6fb3fc88aad4c5d710eac3b1e7c58f7db
       Image:         registry.k8s.io/ubuntu-slim:0.1
       Image ID:      docker-pullable://registry.k8s.io/ubuntu-slim@sha256:b6f8c3885f5880a4f1a7cf717c07242eb4858fdd5a84b5ffe35b1cf680ea17b1
       Port:          <none>
       Host Port:     <none>
       Command:
         /bin/sh
       Args:
         -c
         while true; do timeout 0.5s yes >/dev/null; sleep 0.5s; done
       State:          Running
         Started:      Fri, 27 Sep 2019 10:37:08 -0700
       Ready:          True
       Restart Count:  0
       Requests:
         cpu:        587m
         memory:     262144k
   [...]
   ```

   Pada output sebelumnya, Anda dapat melihat bahwa `cpu` reservasi meningkat menjadi 587 millicpu, yang lebih dari lima kali nilai aslinya. `memory`Meningkat menjadi 262.144 Kilobyte, yaitu sekitar 250 mebibytes, atau lima kali nilai aslinya. Pod ini kurang sumber daya, dan Vertical Pod Autoscaler mengoreksi estimasi dengan nilai yang jauh lebih tepat.

1. Menjelaskan sumber daya `hamster-vpa` untuk melihat rekomendasi baru.

   ```
   kubectl describe vpa/hamster-vpa
   ```

   Contoh output adalah sebagai berikut.

   ```
   Name:         hamster-vpa
   Namespace:    default
   Labels:       <none>
   Annotations:  kubectl.kubernetes.io/last-applied-configuration:
                   {"apiVersion":"autoscaling.k8s.io/v1beta2","kind":"VerticalPodAutoscaler","metadata":{"annotations":{},"name":"hamster-vpa","namespace":"d...
   API Version:  autoscaling.k8s.io/v1beta2
   Kind:         VerticalPodAutoscaler
   Metadata:
     Creation Timestamp:  2019-09-27T18:22:51Z
     Generation:          23
     Resource Version:    14411
     Self Link:           /apis/autoscaling.k8s.io/v1beta2/namespaces/default/verticalpodautoscalers/hamster-vpa
     UID:                 d0d85fb9-e153-11e9-ae53-0205785d75b0
   Spec:
     Target Ref:
       API Version:  apps/v1
       Kind:         Deployment
       Name:         hamster
   Status:
     Conditions:
       Last Transition Time:  2019-09-27T18:23:28Z
       Status:                True
       Type:                  RecommendationProvided
     Recommendation:
       Container Recommendations:
         Container Name:  hamster
         Lower Bound:
           Cpu:     550m
           Memory:  262144k
         Target:
           Cpu:     587m
           Memory:  262144k
         Uncapped Target:
           Cpu:     587m
           Memory:  262144k
         Upper Bound:
           Cpu:     21147m
           Memory:  387863636
   Events:          <none>
   ```

1. Ketika Anda selesai bereksperimen dengan contoh aplikasi, Anda dapat menghapusnya dengan perintah berikut.

   ```
   kubectl delete -f examples/hamster.yaml
   ```