Panduan Pengukuran
Ikhtisar panduan pengukuran
Saat merencanakan penyebaran layanan data Azure Arc, rencanakan jumlah yang benar:
- Compute
- Memori
- Penyimpanan
Sumber daya ini diperlukan untuk:
- Pengontrol data
- Instans terkelola SQL
- Server PostgreSQL
Karena layanan data dengan dukungan Azure Arc disebarkan di Kubernetes, Anda memiliki fleksibilitas untuk menambahkan lebih banyak kapasitas ke kluster Kubernetes dari waktu ke waktu oleh simpul atau penyimpanan komputasi. Panduan ini menjelaskan persyaratan minimum dan merekomendasikan ukuran untuk beberapa persyaratan umum.
Persyaratan pengukuran umum
Catatan
Jika tidak terbiasa dengan konsep dalam artikel ini, Anda dapat membaca selengkapnya tentang Tata kelola sumber daya Kubernetes dan Notasi ukuran Kubernetes.
Angka inti harus berupa nilai bilangan bulat yang lebih besar dari atau sama dengan satu.
Saat Anda menyebarkan dengan Azure CLI (az), gunakan kekuatan dua angka untuk mengatur nilai memori. Secara khusus, gunakan akhiran:
Ki
Mi
Gi
Nilai batas harus selalu lebih besar daripada nilai permintaan, jika ditentukan.
Nilai batas untuk inti adalah metrik yang dapat ditagih pada instans terkelola SQL dan server PostgreSQL.
Persyaratan penyebaran minimum
Penyebaran layanan data dengan dukungan Azure Arc ukuran minimum dapat dianggap sebagai pengontrol data Azure Arc ditambah satu instans terkelola SQL ditambah satu server PostgreSQL. Untuk konfigurasi ini, Anda memerlukan setidaknya RAM 16 GB dan 4 core kapasitas yang tersedia pada kluster Kubernetes Anda. Anda harus memastikan bahwa Anda memiliki ukuran node Kube minimum RAM 8-GB dan 4 core dan kapasitas total RAM 16 GB yang tersedia di semua simpul Kubernetes Anda. Misalnya, Anda dapat memiliki 1 simpul pada RAM 32 GB dan 4 core atau Anda dapat memiliki 2 simpul dengan RAM 16 GB dan masing-masing 4 core.
Lihat artikel konfigurasi penyimpanan untuk detail tentang pengukuran penyimpanan.
Detail pengukuran pengontrol data
Pengontrol data merupakan kumpulan pod yang disebarkan ke kluster Kubernets untuk menyediakan API, layanan pengontrol, bootstrapper, serta pemantauan database dan dasbor. Tabel ini menjelaskan nilai default untuk permintaan dan batas memori dan CPU.
Nama pod | Permintaan CPU | Permintaan memori | Batas CPU | Batas memori |
---|---|---|---|---|
bootstrapper |
100m |
100Mi |
200m |
200Mi |
control |
400m |
2Gi |
1800m |
2Gi |
controldb |
200m |
4Gi |
800m |
6Gi |
logsdb |
200m |
1600Mi |
2 |
1600Mi |
logsui |
100m |
500Mi |
2 |
2Gi |
metricsdb |
200m |
800Mi |
400m |
2Gi |
metricsdc |
100m |
200Mi |
200m |
300Mi |
metricsui |
20m |
200Mi |
500m |
200Mi |
metricsdc
adalah daemonset
, yang dibuat pada setiap node Kubernetes di kluster Anda. Angka dalam tabel adalah per simpul. Jika Anda mengatur allowNodeMetricsCollection = false
dalam file profil penyebaran sebelum membuat pengontrol data, ini daemonset
tidak dibuat.
Anda dapat mengambil alih pengaturan default untuk controldb
pod kontrol dan dalam file YAML pengontrol data Anda. Contoh:
resources:
controller:
limits:
cpu: "1000m"
memory: "3Gi"
requests:
cpu: "800m"
memory: "2Gi"
controllerDb:
limits:
cpu: "800m"
memory: "8Gi"
requests:
cpu: "200m"
memory: "4Gi"
Lihat artikel konfigurasi penyimpanan untuk detail tentang pengukuran penyimpanan.
Detail pengukuran instans terkelola SQL
Setiap instans terkelola SQL harus memiliki permintaan minimum dan batas sumber daya berikut:
Tingkat layanan | Tujuan Umum | Bisnis Kritis |
---|---|---|
Permintaan CPU | Minimum: 1 Maksimum: 24 Default: 2 |
Minimum: 3 Maksimum: tidak terbatas Default: 4 |
Batas CPU | Minimum: 1 Maksimum: 24 Default: 2 |
Minimum: 3 Maksimum: tidak terbatas Default: 4 |
Permintaan memori | Minimum: 2Gi Maksimum: 128Gi Default: 4Gi |
Minimum: 2Gi Maksimum: tidak terbatas Default: 4Gi |
Batas memori | Minimum: 2Gi Maksimum: 128Gi Default: 4Gi |
Minimum: 2Gi Maksimum: tidak terbatas Default: 4Gi |
Setiap pod instans terkelola SQL yang dibuat memiliki tiga kontainer:
Nama kontainer | Permintaan CPU | Permintaan Memori | Batas CPU | Batas Memori | Catatan |
---|---|---|---|---|---|
fluentbit |
100m |
100Mi |
Tidak ditentukan | Tidak ditentukan | fluentbit Permintaan sumber daya kontainer adalah selain permintaan yang ditentukan untuk instans terkelola SQL. |
arc-sqlmi |
Ditentukan atau tidak ditentukan pengguna. | Ditentukan atau tidak ditentukan pengguna. | Ditentukan atau tidak ditentukan pengguna. | Ditentukan atau tidak ditentukan pengguna. | |
collectd |
Tidak ditentukan | Tidak ditentukan | Tidak ditentukan | Tidak ditentukan |
Ukuran volume default untuk semua volume persisten adalah 5Gi
.
Detail ukuran server PostgreSQL
Setiap simpul server PostgreSQL harus memiliki permintaan sumber daya minimum berikut:
- Memori:
256Mi
- Inti: 1
Setiap pod server PostgreSQL yang dibuat memiliki tiga kontainer:
Nama kontainer | Permintaan CPU | Permintaan Memori | Batas CPU | Batas Memori | Catatan |
---|---|---|---|---|---|
fluentbit |
100m |
100Mi |
Tidak ditentukan | Tidak ditentukan | fluentbit Permintaan sumber daya kontainer adalah selain permintaan yang ditentukan untuk server PostgreSQL. |
postgres |
Ditentukan atau tidak ditentukan pengguna. | Pengguna ditentukan atau 256Mi (default). |
Ditentukan atau tidak ditentukan pengguna. | Ditentukan atau tidak ditentukan pengguna. | |
arc-postgresql-agent |
Tidak ditentukan | Tidak ditentukan | Tidak ditentukan | Tidak ditentukan |
Pengukuran kumulatif
Ukuran keseluruhan lingkungan yang diperlukan untuk layanan data dengan dukungan Azure Arc terutama merupakan fungsi dari jumlah dan ukuran instans database. Ukuran keseluruhan dapat sulit diprediksi sebelumnya mengetahui bahwa jumlah instans dapat bertambah dan menyusut dan jumlah sumber daya yang diperlukan untuk setiap instans database dapat berubah.
Ukuran garis besar untuk lingkungan layanan data dengan dukungan Azure Arc tertentu adalah ukuran pengontrol data, yang memerlukan 4 core dan RAM 16 GB. Dari sana, tambahkan total kumulatif inti dan memori yang diperlukan untuk instans database. SQL Managed Instance memerlukan satu pod untuk setiap instans. Server PostgreSQL membuat satu pod untuk setiap server.
Selain inti dan memori yang Anda minta untuk setiap instans database, Anda harus menambahkan 250m
inti dan 250Mi
RAM untuk kontainer agen.
Contoh perhitungan ukuran
Persyaratan:
- "SQL1": 1 instans terkelola SQL dengan RAM 16 GB, 4 core
- "SQL2": 1 instans terkelola SQL dengan RAM 256 GB, 16 core
- "Postgres1": 1 Server PostgreSQL pada RAM 12 GB, 4 core
Perhitungan pengukuran:
Ukuran "SQL1" adalah:
1 pod * ([16Gi RAM, 4 cores] + [250Mi RAM, 250m cores])
. Untuk agen per pod, gunakan16.25 Gi
RAM dan 4,25 core.Ukuran "SQL2" adalah:
1 pod * ([256Gi RAM, 16 cores] + [250Mi RAM, 250m cores])
. Untuk agen per pod, gunakan256.25 Gi
RAM dan 16.25 core.Ukuran total SQL 1 dan SQL 2 adalah:
(16.25 GB + 256.25 Gi) = 272.5-GB RAM
(4.25 cores + 16.25 cores) = 20.5 cores
Ukuran "Postgres1" adalah:
1 pod * ([12Gi RAM, 4 cores] + [250Mi RAM, 250m cores])
. Untuk agen per pod, gunakan12.25 Gi
RAM dan4.25
core.Total kapasitas yang diperlukan:
- Untuk instans database:
- RAM 272,5 GB
- 20.5 inti
- Untuk SQL:
- RAM 12,25 GB
- 4.25 core
- Untuk server PostgreSQL
- RAM 284,75 GB
- 24.75 core
- Untuk instans database:
Total kapasitas yang diperlukan untuk instans database ditambah pengontrol data adalah:
- Untuk instans database
- RAM 284,75 GB
- 24.75 core
- Untuk pengontrol data
- RAM 16 GB
- 4 inti
- Total:
- RAM 300,75 GB
- 28,75 inti.
- Untuk instans database
Lihat artikel konfigurasi penyimpanan untuk detail tentang pengukuran penyimpanan.
Pertimbangan lain
Perlu diingat bahwa permintaan ukuran instans database tertentu untuk inti atau RAM tidak dapat melebihi kapasitas node Kubernetes yang tersedia di klaster. Misalnya, jika node Kubernetes terbesar yang Anda miliki di kluster Kubernetes adalah RAM 256 GB dan 24 core, Anda tidak dapat membuat instans database dengan permintaan RAM 512 GB dan 48 core.
Pertahankan setidaknya 25% kapasitas yang tersedia di seluruh node Kubernetes. Kapasitas ini memungkinkan Kubernetes untuk:
- Menjadwalkan pod yang akan dibuat secara efisien
- Mengaktifkan penskalaan elastis
- Mendukung peningkatan bergulir dari simpul Kubernetes
- Memfasilitasi pertumbuhan jangka panjang sesuai permintaan
Dalam perhitungan ukuran Anda, tambahkan persyaratan sumber daya pod sistem Kubernetes dan beban kerja lainnya, yang mungkin berbagi kapasitas dengan layanan data dengan dukungan Azure Arc pada kluster Kubernetes yang sama.
Untuk mempertahankan ketersediaan tinggi selama pemeliharaan terencana dan kelangsungan bencana, rencanakan setidaknya salah satu node Kubernetes di kluster Anda tidak tersedia pada titik waktu tertentu. Kubernetes mencoba menjadwalkan ulang pod yang berjalan pada simpul tertentu yang diturunkan untuk pemeliharaan atau karena kegagalan. Jika tidak ada kapasitas yang tersedia pada simpul yang tersisa, pod tersebut tidak akan dijadwalkan ulang untuk pembuatan sampai ada kapasitas yang tersedia lagi. Berhati-hatilah dengan instans database yang besar. Misalnya, jika hanya ada satu simpul Kubernetes yang cukup besar untuk memenuhi persyaratan sumber daya instans database besar dan simpul tersebut gagal, maka Kubernetes tidak akan menjadwalkan pod instans database tersebut ke simpul Kubernetes lain.
Ingatlah batasan maksimum untuk ukuran klaster Kubernetes.
Administrator Kubernetes Anda mungkin telah menyiapkan kuota sumber daya pada namespace/project. Ingatlah kuota ini saat merencanakan ukuran instans database Anda.