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, gunakan 16.25 Gi RAM dan 4,25 core.

  • Ukuran "SQL2" adalah: 1 pod * ([256Gi RAM, 16 cores] + [250Mi RAM, 250m cores]). Untuk agen per pod, gunakan 256.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, gunakan 12.25 Gi RAM dan 4.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
  • 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.

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.