Meningkatkan dan menurunkan skala server Azure Database for PostgreSQL menggunakan CLI (az atau kubectl)

Ada kalanya Anda mungkin perlu mengubah karakteristik atau definisi server. Contohnya:

  • Meningkatkan atau menurunkan skala jumlah vCore yang digunakan server
  • Meningkatkan atau menurunkan skala memori yang digunakan server

Panduan ini menjelaskan cara menskalakan vCore dan/atau memori.

Meningkatkan atau menurunkan skala pengaturan vCore atau memori server Anda berarti Anda memiliki kemungkinan untuk mengatur minimum dan/atau maksimum untuk setiap pengaturan vCore dan memori. Jika Anda ingin mengonfigurasi server Anda untuk menggunakan jumlah vCore tertentu atau jumlah memori tertentu, Anda akan mengatur pengaturan minimum yang sama dengan pengaturan maksimum. Sebelum meningkatkan nilai yang ditetapkan untuk vCores dan Memory, Anda harus memastikan bahwa

  • Anda memiliki sumber daya yang cukup yang tersedia dalam infrastruktur fisik yang meng-host penyebaran Anda dan
  • beban kerja yang dikolokasikan pada sistem yang sama tidak bersaing untuk vCore atau Memori yang sama.

Catatan

Sebagai fitur pratinjau, teknologi yang tersaji dalam artikel ini tunduk pada Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure.

Pembaruan terbaru tersedia dalam catatan rilis.

Perlihatkan definisi server saat ini

Untuk memperlihatkan definisi server Anda saat ini dan melihat apa pengaturan vCore dan Memori saat ini, jalankan salah satu perintah berikut:

Dengan Azure CLI (az)

az postgres server-arc show -n <server name> --k8s-namespace <namespace> --use-k8s

CLI dengan kubectl

kubectl describe postgresql/<server name> -n <namespace name>

Ini menampilkan konfigurasi grup server Anda. Jika Anda telah membuat server dengan pengaturan default, Anda akan melihat definisi sebagai berikut:

Spec:
  Dev:  false
  Scheduling:
    Default:
      Resources:
        Requests:
          Memory:  256Mi
...

Menginterpretasikan definisi server

Dalam definisi server, bagian yang membawa pengaturan vCore minimum atau maksimum per simpul dan memori minimum atau maksimum per simpul adalah bagian "penjadwalan" . Di bagian itu, pengaturan maksimum akan dipertahankan dalam subbagian yang disebut "batas" dan pengaturan minimum dipertahankan di subbagian yang disebut "permintaan".

Jika Anda mengatur pengaturan minimum yang berbeda dari pengaturan maksimum, konfigurasi menjamin bahwa server Anda dialokasikan sumber daya yang diminta jika diperlukan. Ini tidak akan melampaui batas yang Anda tetapkan.

Sumber daya (vCore dan memori) yang benar-benar akan digunakan oleh server Anda hingga pengaturan maksimum dan bergantung pada beban kerja dan sumber daya yang tersedia pada kluster. Jika Anda tidak membatasi pengaturan dengan maks, server Anda dapat menggunakan hingga semua sumber daya yang dialokasikan kluster Kubernetes ke simpul Kubernetes tempat server Anda dijadwalkan.

Dalam konfigurasi default, hanya memori minimum yang diatur ke 256Mi karena jumlah memori minimum yang disarankan untuk menjalankan server PostgreSQL.

Catatan

Mengatur minimum tidak berarti server akan selalu menggunakan minimum tersebut. Ini berarti bahwa jika server membutuhkannya, dijamin akan dialokasikan setidaknya minimum ini. Misalnya, mari kita pertimbangkan untuk kita set --minCpu 2. Ini tidak berarti bahwa server akan menggunakan setidaknya 2 vCore setiap saat. Sebaliknya berarti bahwa sever dapat mulai menggunakan kurang dari 2 vCore jika tidak membutuhkan sebanyak itu dan dijamin akan dialokasikan setidaknya 2 vCore jika membutuhkannya nanti. Ini menyiratkan bahwa kluster Kubernetes mengalokasikan sumber daya ke beban kerja lain-sehingga dapat mengalokasikan 2 vCore ke server jika diperlukan. Selain itu, menaikkan dan menurunkan skala bukanlah operasi online karena perlu menghidupkan ulang Pod kube.

Catatan

Sebelum Anda mengubah konfigurasi sistem, pastikan untuk membiasakan diri dengan model sumber daya Kube di sini

Meningkatkan dan menurunkan skala server

Peningkatan skala mengacu pada peningkatan nilai untuk pengaturan vCore dan/atau memori server Anda. Penurunan skala mengacu pada penurunan nilai untuk pengaturan vCore dan/atau memori server Anda.

Pengaturan yang akan disetel harus dipertimbangkan dalam konfigurasi yang Anda tetapkan untuk kluster Kube. Pastikan Anda tidak menetapkan nilai yang tidak akan bisa terpenuhi kluster Kube. Hal ini dapat menyebabkan kesalahan atau perilaku tidak terprediksi seperti tidak tersedianya instans database. Sebagai contoh, jika status server Anda tetap dalam pembaruan status untuk waktu yang lama setelah Anda mengubah konfigurasi, itu mungkin merupakan indikasi bahwa Anda mengatur parameter di bawah ini ke nilai yang tidak dapat dipenuhi kluster Kubernetes Anda. Jika demikian, kembalikan perubahan atau baca _bagian_pemecahanmasalah

Pengaturan apa yang harus Anda setel?

  • Untuk mengatur vCore minimum, atur --cores-request.
  • Untuk mengatur vCore maksimum, atur --cores-limit.
  • Untuk mengatur memori minimum, atur --memory-request
  • Untuk mengatur memori maksimum, atur --memory-limit

Perhatian

Dengan Kube, mengonfigurasi pengaturan batas tanpa mengonfigurasikan pengaturan permintaan yang sesuai akan memaksa nilai permintaan menjadi nilai yang sama dengan batas. Ini berpotensi menyebabkan tidak tersedianya server Anda karena pod-podnya mungkin tidak dijadwalkan ulang jika tidak ada simpul Kubernetes yang tersedia dengan sumber daya yang memadai. Dengan demikian, untuk menghindari situasi ini, contoh di bawah menunjukkan cara mengatur pengaturan permintaan dan batas.

Sintaks umumnya adalah:

az postgres server-arc edit -n <server name> --memory-limit/memory-request/cores-request/cores-limit <val> --k8s-namespace <namespace> --use-k8s

Nilai yang Anda tunjukkan untuk pengaturan memori adalah angka yang diikuti oleh satuan volume. Misalnya, untuk menunjukkan 1Gb, Anda akan menunjukkan 1024Mi atau 1Gi. Untuk menunjukkan sejumlah core, Anda cukup memasukkan angka tanpa unit.

Contoh menggunakan Azure CLI

Konfigurasikan server agar tidak melebihi 2 inti:

 az postgres server-arc edit -n postgres01 --cores-request 1, --cores-limit 2  --k8s-namespace arc --use-k8s

Catatan

Untuk detail tentang parameter tersebut, jalankan az postgres server-arc update --help.

Contoh menggunakan alat asli Kube seperti kubectl

Jalankan perintah:

kubectl edit postgresql/<server name> -n <namespace name>

Ini membawa Anda di editor vi tempat Anda dapat menavigasi dan mengubah konfigurasi. Gunakan yang berikut ini untuk memetakan pengaturan yang diinginkan ke nama bidang dalam spesifikasi:

Perhatian

Di bawah ini adalah contoh yang disediakan untuk mengilustrasikan cara agar Anda dapat mengedit konfigurasi. Sebelum memperbarui konfigurasi, pastikan untuk mengatur parameter ke nilai yang dapat terpenuhi oleh kluster Kubernetes.

Misalnya jika Anda ingin mengatur pengaturan berikut untuk peran koordinator dan pekerja ke nilai berikut:

  • vCore Minimum = 2
  • vCore Maksimum = 4
  • Memori Minimum = 512Mb
  • Memori Maksimum = 1Gb

Anda akan mengatur definisi grup server agar cocok dengan konfigurasi di bawah ini:

...
  spec:
  dev: false
  scheduling:
    default:
      resources:
        requests:
          cpu: "2"
          memory: 256Mi
        limits:
          cpu: "4"
          memory: 1Gi
...

Jika Anda tidak terbiasa dengan vi editor, lihat deskripsi perintah yang mungkin Anda butuhkan di sini:

  • Mode edit: i
  • Berpindah-pindah dengan panah
  • Berhenti mengedit: esc
  • Keluar tanpa menyimpan: :qa!
  • Keluar setelah menyimpan: :qw!

Atur ulang ke nilai default

Untuk mengatur ulang parameter batas/permintaan core/memori ke nilai defaultnya, edit dan lewati string kosong, bukan nilai aktual. Misalnya, jika Anda ingin mengatur ulang parameter batas core, jalankan perintah berikut:

az postgres server-arc edit -n postgres01 --cores-request '' --k8s-namespace arc --use-k8s
az postgres server-arc edit -n postgres01 --cores-limit '' --k8s-namespace arc --use-k8s

or

az postgres server-arc edit -n postgres01 --cores-request '' --cores-limit '' --k8s-namespace arc --use-k8s