Sesuaikan sumber daya pod dengan Vertical Pod Autoscaler - Amazon EKS

Bantu tingkatkan halaman ini

Ingin berkontribusi pada panduan pengguna ini? Gulir ke bagian bawah halaman ini dan pilih Edit halaman ini GitHub. Kontribusi Anda akan membantu membuat panduan pengguna kami lebih baik untuk semua orang.

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

KubernetesVertical Pod Autoscaler secara otomatis menyesuaikan reservasi CPU dan memori Pods untuk membantu “ukuran yang tepat” aplikasi Anda. Penyesuaian ini dapat meningkatkan pemanfaatan sumber daya cluster dan membebaskan CPU dan memori untuk lainnyaPods. Topik ini membantu Anda untuk men-deploy Vertikal Pod Autoscaler untuk klaster Anda dan memverifikasi bahwa itu bekerja.

Prasyarat

Men-deploy Vertical Pod Autoscaler

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

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

  2. Kloning repositori GitHubkubernetes/autoscaler.

    git clone https://github.com/kubernetes/autoscaler.git
  3. Mengubah ke direktori vertical-pod-autoscaler.

    cd autoscaler/vertical-pod-autoscaler/
  4. (Opsional) Jika Anda telah men-deploy versi lain Vertical Pod Autoscaler, hapus dengan perintah berikut.

    ./hack/vpa-down.sh
  5. 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

    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 tempat Wilayah AWS 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
  6. Men-deploy Vertical Pod Autoscaler untuk klaster Anda dengan perintah berikut.

    ./hack/vpa-up.sh
  7. Verifikasi bahwa Vertical Pod Autoscaler Pods 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

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

Untuk menguji instalasi Vertical Pod Autoscaler
  1. Deploy hamster.yaml contoh Vertikal Pod Autoscaler dengan perintah berikut.

    kubectl apply -f examples/hamster.yaml
  2. Dapatkan Pods dari hamster contoh aplikasi.

    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
  3. Jelaskan salah satu Pods untuk melihat cpu dan memory reservasi. Ganti c7d89d6db-rglf5 dengan salah satu ID yang 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 cadangan asli 100 millicpu CPU dan 50 mebibytes memori. Untuk contoh aplikasi ini, 100 millicpu kurang dari Pod kebutuhan untuk menjalankan, sehingga CPU dibatasi. Ini juga menyimpan memori jauh lebih sedikit dari yang dibutuhkan. vpa-recommenderPenerapan Vertical Pod Autoscaler menganalisis hamster Pods untuk melihat apakah persyaratan CPU dan memori sesuai. Jika penyesuaian diperlukan, vpa-updater peluncuran kembali Pods dengan nilai yang diperbarui.

  4. Tunggu vpa-updater sampai meluncurkan yang baru hamsterPod. Ini harus memakan waktu satu atau dua menit. Anda dapat memantau Pods dengan perintah berikut.

    catatan

    Jika Anda tidak yakin bahwa yang baru Pod telah diluncurkan, bandingkan Pod nama dengan daftar Anda sebelumnya. Saat Pod peluncuran baru, Anda akan melihat Pod nama baru.

    kubectl get --watch Pods -l app=hamster
  5. Ketika baru hamster Pod 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. memoryMeningkat menjadi 262.144 Kilobyte, yaitu sekitar 250 mebibytes, atau lima kali nilai aslinya. Ini Pod kurang sumber daya, dan Vertical Pod Autoscaler mengoreksi perkiraan dengan nilai yang jauh lebih tepat.

  6. 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>
  7. Ketika Anda selesai bereksperimen dengan contoh aplikasi, Anda dapat menghapusnya dengan perintah berikut.

    kubectl delete -f examples/hamster.yaml