Boyutlandırma Kılavuzu

Boyutlandırma kılavuzuna genel bakış

Azure Arc veri hizmetlerinin dağıtımını planlarken doğru miktarı planlayın:

  • İşlem
  • Bellek
  • Depolama

Bu kaynaklar şunlar için gereklidir:

  • Veri denetleyicisi
  • SQL yönetilen örnekleri
  • PostgreSQL sunucuları

Azure Arc özellikli veri hizmetleri Kubernetes'te dağıtılırken, işlem düğümleri veya depolama alanı aracılığıyla zaman içinde Kubernetes kümenize daha fazla kapasite ekleme esnekliğine sahip olursunuz. Bu kılavuzda en düşük gereksinimler açıklanır ve bazı yaygın gereksinimler için boyutlar önerilir.

Genel boyutlandırma gereksinimleri

Not

Bu makaledeki kavramları bilmiyorsanız Kubernetes kaynak idaresi ve Kubernetes boyut gösterimi hakkında daha fazla bilgi edinebilirsiniz.

Çekirdek sayıları, birden büyük veya buna eşit bir tamsayı değeri olmalıdır.

Azure CLI (az) ile dağıtım yaparken bellek değerlerini ayarlamak için iki sayının gücünü kullanın. Özellikle sonekleri kullanın:

  • Ki
  • Mi
  • Gi

Sınır değerleri, belirtilmişse her zaman istek değerinden büyük olmalıdır.

Çekirdekler için sınır değerleri, SQL yönetilen örneği ve PostgreSQL sunucularında faturalanabilir ölçümdür.

En düşük dağıtım gereksinimleri

Azure Arc özellikli veri hizmetleri dağıtımının en düşük boyutta azure arc veri denetleyicisi ve bir SQL yönetilen örneği ile bir PostgreSQL sunucusu olduğu düşünülebilir. Bu yapılandırma için Kubernetes kümenizde en az 16 GB RAM ve 4 çekirdek kullanılabilir kapasite gerekir. Kubernetes düğüm boyutunun en az 8 GB RAM ve 4 çekirdek olduğundan ve tüm Kubernetes düğümlerinizde toplam 16 GB RAM kapasitesine sahip olduğunuzdan emin olmalısınız. Örneğin, 32 GB RAM'de 1 düğüm ve 4 çekirdek olabilir veya her birinde 16 GB RAM ve 4 çekirdek bulunan 2 düğüm olabilir.

Depolama boyutlandırma hakkında ayrıntılı bilgi için depolama yapılandırması makalesine bakın.

Veri denetleyicisi boyutlandırma ayrıntıları

Veri denetleyicisi, bir API, denetleyici hizmeti, önyükleyici ve izleme veritabanları ile panoları sağlamak için Kubernetes kümenize dağıtılan podlardan oluşan bir koleksiyondur. Bu tabloda, bellek ve CPU istekleri ve sınırları için varsayılan değerler açıklanmaktadır.

Pod adı CPU isteği Bellek isteği CPU sınırı Bellek sınırı
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 , kümenizdeki Kubernetes düğümlerinin her birinde oluşturulan bir daemonset' dir. Tablodaki sayılar düğüm başınadır. Veri denetleyicisini oluşturmadan önce dağıtım profili dosyanızda ayarlarsanız allowNodeMetricsCollection = false , bu daemonset oluşturulmaz.

Veri denetleyicisi YAML dosyanızdaki ve denetim podları için controldb varsayılan ayarları geçersiz kılabilirsiniz. Örnek:

  resources:
    controller:
      limits:
        cpu: "1000m"
        memory: "3Gi"
      requests:
        cpu: "800m"
        memory: "2Gi"
    controllerDb:
      limits:
        cpu: "800m"
        memory: "8Gi"
      requests:
        cpu: "200m"
        memory: "4Gi"

Depolama boyutlandırma hakkında ayrıntılı bilgi için depolama yapılandırması makalesine bakın.

SQL yönetilen örneği boyutlandırma ayrıntıları

Her SQL yönetilen örneğinin aşağıdaki minimum kaynak istekleri ve sınırları olmalıdır:

Hizmet katmanı Genel Amaçlı İş Açısından Kritik
CPU isteği En Az: 1
Maksimum: 24
Varsayılan: 2
Minimum: 3
Maksimum: sınırsız
Varsayılan: 4
CPU sınırı En Az: 1
Maksimum: 24
Varsayılan: 2
Minimum: 3
Maksimum: sınırsız
Varsayılan: 4
Bellek isteği Asgari: 2Gi
Maksimum: 128Gi
Varsayılan: 4Gi
Asgari: 2Gi
Maksimum: sınırsız
Varsayılan: 4Gi
Bellek sınırı Asgari: 2Gi
Maksimum: 128Gi
Varsayılan: 4Gi
Asgari: 2Gi
Maksimum: sınırsız
Varsayılan: 4Gi

Oluşturulan her SQL yönetilen örneği podu üç kapsayıcıya sahiptir:

Kapsayıcı adı CPU İsteği Bellek İsteği CPU Sınırı Bellek Sınırı Notlar
fluentbit 100m 100Mi Belirtilmemiş Belirtilmemiş Kapsayıcı fluentbit kaynak istekleri, SQL yönetilen örneği için belirtilen isteklere ek olarak kullanılır.
arc-sqlmi Kullanıcı belirtildi veya belirtilmedi. Kullanıcı belirtildi veya belirtilmedi. Kullanıcı belirtildi veya belirtilmedi. Kullanıcı belirtildi veya belirtilmedi.
collectd Belirtilmemiş Belirtilmemiş Belirtilmemiş Belirtilmemiş

Tüm kalıcı birimler için varsayılan birim boyutu şeklindedir 5Gi.

PostgreSQL sunucusu boyutlandırma ayrıntıları

Her PostgreSQL sunucu düğümü aşağıdaki en düşük kaynak isteklerine sahip olmalıdır:

  • Bellek: 256Mi
  • Çekirdekler: 1

Oluşturulan her PostgreSQL sunucu podu üç kapsayıcıya sahiptir:

Kapsayıcı adı CPU İsteği Bellek İsteği CPU Sınırı Bellek Sınırı Notlar
fluentbit 100m 100Mi Belirtilmemiş Belirtilmemiş Kapsayıcı fluentbit kaynak istekleri, PostgreSQL sunucusu için belirtilen isteklere ek olarak kullanılır.
postgres Kullanıcı belirtildi veya belirtilmedi. Veya (varsayılan) kullanıcı belirtildi 256Mi . Kullanıcı belirtildi veya belirtilmedi. Kullanıcı belirtildi veya belirtilmedi.
arc-postgresql-agent Belirtilmemiş Belirtilmemiş Belirtilmemiş Belirtilmemiş

Kümülatif boyutlandırma

Azure Arc özellikli veri hizmetleri için gereken bir ortamın genel boyutu, öncelikle veritabanı örneklerinin sayısının ve boyutunun bir işlevidir. Örneklerin sayısının büyüyebileceğini ve küçülebileceğini ve her veritabanı örneği için gereken kaynak miktarının değişebileceğini bilerek genel boyutu önceden tahmin etmek zor olabilir.

Belirli bir Azure Arc özellikli veri hizmetleri ortamının temel boyutu, 4 çekirdek ve 16 GB RAM gerektiren veri denetleyicisinin boyutudur. Buradan, veritabanı örnekleri için gereken çekirdek ve bellek toplamını ekleyin. SQL Yönetilen Örneği her örnek için bir pod gerektirir. PostgreSQL sunucusu her sunucu için bir pod oluşturur.

Her veritabanı örneği için istediğiniz çekirdeklere ve belleğe ek olarak, aracı kapsayıcıları için çekirdek ve 250Mi RAM eklemeniz 250m gerekir.

Örnek boyutlandırma hesaplaması

Gereksinimler:

  • "SQL1": 16 GB RAM, 4 çekirdek ile 1 SQL yönetilen örneği
  • "SQL2": 256 GB RAM ile 1 SQL yönetilen örneği, 16 çekirdek
  • "Postgres1": 12 GB RAM'de 1 PostgreSQL sunucusu, 4 çekirdek

Boyutlandırma hesaplamaları:

  • "SQL1" boyutu: 1 pod * ([16Gi RAM, 4 cores] + [250Mi RAM, 250m cores]). Pod başına aracılar için RAM ve 4,25 çekirdek kullanın 16.25 Gi .

  • "SQL2" boyutu: 1 pod * ([256Gi RAM, 16 cores] + [250Mi RAM, 250m cores]). Pod başına aracılar için RAM ve 16,25 çekirdek kullanın 256.25 Gi .

  • SQL 1 ve SQL 2'nin toplam boyutu:

    • (16.25 GB + 256.25 Gi) = 272.5-GB RAM
    • (4.25 cores + 16.25 cores) = 20.5 cores
  • "Postgres1" boyutu: 1 pod * ([12Gi RAM, 4 cores] + [250Mi RAM, 250m cores]). Pod başına aracılar için RAM ve 4.25 çekirdekleri kullanın12.25 Gi.

  • Gereken toplam kapasite:

    • Veritabanı örnekleri için:
      • 272,5 GB RAM
      • 20,5 çekirdek
    • SQL için:
      • 12,25 GB RAM
      • 4,25 çekirdek
    • PostgreSQL sunucusu için
      • 284,75 GB RAM
      • 24,75 çekirdek
  • Veritabanı örnekleri ve veri denetleyicisi için gereken toplam kapasite:

    • Veritabanı örneği için
      • 284,75 GB RAM
      • 24,75 çekirdek
    • Veri denetleyicisi için
      • 16 GB RAM
      • 4 çekirdek
    • Toplamda:
      • 300,75 GB RAM
      • 28,75 çekirdek.

Depolama boyutlandırma hakkında ayrıntılı bilgi için depolama yapılandırması makalesine bakın.

Dikkat edilecek diğer noktalar

Çekirdekler veya RAM için belirli bir veritabanı örneği boyutu isteğinin kümedeki Kubernetes düğümlerinin kullanılabilir kapasitesini aşamadığını unutmayın. Örneğin, Kubernetes kümenizdeki en büyük Kubernetes düğümü 256 GB RAM ve 24 çekirdekse, 512 GB RAM ve 48 çekirdek isteğiyle veritabanı örneği oluşturamazsınız.

Kubernetes düğümlerinde kullanılabilir kapasitenin en az %25'ini koruyun. Bu kapasite Kubernetes'in şunları yapmasına olanak tanır:

  • Oluşturulacak podları verimli bir şekilde zamanlama
  • Esnek ölçeklendirmeyi etkinleştirme
  • Kubernetes düğümlerinin sıralı yükseltmelerini destekler
  • İsteğe bağlı olarak daha uzun vadeli büyümeyi kolaylaştırır

Boyutlandırma hesaplamalarınızda Kubernetes sistem podlarının ve aynı Kubernetes kümesindeki Azure Arc özellikli veri hizmetleriyle kapasiteyi paylaşabilecek diğer iş yüklerinin kaynak gereksinimlerini ekleyin.

Planlı bakım ve olağanüstü durum sürekliliği sırasında yüksek kullanılabilirlik sağlamak için kümenizdeki Kubernetes düğümlerinden en az birinin belirli bir zamanda kullanılamayacağı planlayın. Kubernetes, bakım için veya bir hata nedeniyle kaldırılan belirli bir düğümde çalışan podları yeniden zamanlama girişiminde bulunur. Kalan düğümlerde kullanılabilir kapasite yoksa, bu podlar yeniden kullanılabilir kapasite olana kadar oluşturma için yeniden zamanlanmayacaktır. Büyük veritabanı örneklerine dikkat edin. Örneğin, büyük bir veritabanı örneğinin kaynak gereksinimlerini karşılayacak kadar büyük tek bir Kubernetes düğümü varsa ve bu düğüm başarısız olursa, Kubernetes bu veritabanı örneği podunu başka bir Kubernetes düğümüne zamanlamaz.

Kubernetes küme boyutu için en yüksek sınırları göz önünde bulundurun.

Kubernetes yöneticiniz ad alanınızda/projenizde kaynak kotaları ayarlamış olabilir. Veritabanı örneği boyutlarınızı planlarken bu kotaları göz önünde bulundurun.