Azure Kubernetes Service'te (AKS) yüksek oranda kullanılabilir bir PostgreSQL veritabanı dağıtma

Bu makalede AKS üzerinde yüksek oranda kullanılabilir bir PostgreSQL veritabanı dağıtacaksınız.

Important

Aks belgeleri ve örnekleri boyunca açık kaynak yazılımdan bahsedilmektedir. Dağıttığınız yazılımlar AKS hizmet düzeyi sözleşmelerinin, sınırlı garantinin ve Azure desteği dışında tutulur. AKS ile birlikte açık kaynak teknolojisini kullanırken, bir plan geliştirmek için ilgili toplulukların ve proje bakımcılarının sağlanan destek seçeneklerine başvurun.

Microsoft, AKS'de dağıttığımız açık kaynak paketleri oluşturma sorumluluğunu üstlenir. Bu sorumluluk, oluşturma, tarama, imzalama, doğrulama ve hızlı yama sürecinin tam sahipliğini ve aynı zamanda kapsayıcı görüntülerindeki ikili dosyalar üzerindeki denetimi içerir. Daha fazla bilgi için AKS için güvenlik açığı yönetimi ve AKS destek kapsamı bölümlerine bakın.

Bootstrap uygulaması kullanıcısı için gizli oluştur

  1. kubectl create secret komutunu kullanarak, etkileşimli oturum açma yöntemiyle bir bootstrap uygulama kullanıcısı için PostgreSQL dağıtımını doğrulamak üzere bir gizli anahtar oluşturun.

Important

Microsoft, kullanılabilir en güvenli kimlik doğrulama akışını kullanmanızı önerir. Bu yordamda açıklanan kimlik doğrulama akışı, uygulamada yüksek düzeyde güven gerektirir ve diğer akışlarda mevcut olmayan riskleri taşır. Bu akışı yalnızca yönetilen kimlikler gibi diğer daha güvenli akışlar uygun olmadığında kullanmalısınız.

PG_DATABASE_APPUSER_SECRET=$(echo -n | openssl rand -base64 16)

kubectl create secret generic db-user-pass \
    --from-literal=username=app \
     --from-literal=password="${PG_DATABASE_APPUSER_SECRET}" \
     --namespace $PG_NAMESPACE \
     --context $AKS_PRIMARY_CLUSTER_NAME
  1. kubectl get komutunu kullanarak gizlinin başarıyla oluşturulduğunu doğrulayın.

    kubectl get secret db-user-pass --namespace $PG_NAMESPACE --context $AKS_PRIMARY_CLUSTER_NAME
    

PostgreSQL kümesi için ortam değişkenlerini ayarlama

  • Aşağıdaki kubectl apply komutu kullanarak CNPG işlecini yapılandırmak için bir ConfigMap dağıtın. Bu değerler artık gerekli olmayan eski ENABLE_AZURE_PVC_UPDATES anahtarın yerini alır ve yükseltmeleri aşamalı olarak gerçekleştirmeye ve çoğaltma yeniden bağlantılarını kolaylaştırmaya yardımcı olur. Bu yapılandırmayı üretim ortamına aktarmadan önce, kullandığınız mevcut DRAIN_TAINTS ayarların Azure ortamınızla uyumlu olduğunu doğrulayın.

    cat <<EOF | kubectl apply --context $AKS_PRIMARY_CLUSTER_NAME -n $PG_NAMESPACE -f -
    apiVersion: v1
    kind: ConfigMap
    metadata:
        name: cnpg-controller-manager-config
    data:
        CLUSTERS_ROLLOUT_DELAY: '120'
        STANDBY_TCP_USER_TIMEOUT: '10'
    EOF
    

Prometheus PodMonitors'ı yükleme

Prometheus, CNPG GitHub örnekleri deposunda depolanan kayıt kurallarını kullanarak CNPG'yi kazır. Operatör tarafından yönetilen PodMonitor kullanım dışı bırakıldığı için PodMonitor kaynağını kendiniz oluşturup yönetin; böylece bunu izleme yığınınıza uyarlayabilirsiniz.

  1. Prometheus Community Helm deposunu eklemek için helm repo add komutunu kullanın.

    helm repo add prometheus-community \
        https://prometheus-community.github.io/helm-charts
    
  2. Prometheus Community Helm deposunu yükseltin ve helm upgrade komutunu --install bayrağıyla kullanarak birincil kümeye kurun.

    helm upgrade --install \
        --namespace $PG_NAMESPACE \
        -f https://raw.githubusercontent.com/cloudnative-pg/cloudnative-pg/main/docs/src/samples/monitoring/kube-stack-config.yaml \
        prometheus-community \
        prometheus-community/kube-prometheus-stack \
        --kube-context=$AKS_PRIMARY_CLUSTER_NAME
    
  3. Küme için bir PodMonitor oluşturun. CNPG ekibi, operatör tarafından yönetilen PodMonitor'ı kullanımdan kaldırdığından şimdi doğrudan yönetebilirsiniz:

    cat <<EOF | kubectl apply --context $AKS_PRIMARY_CLUSTER_NAME --namespace $PG_NAMESPACE -f -
    apiVersion: monitoring.coreos.com/v1
    kind: PodMonitor
    metadata:
      name: $PG_PRIMARY_CLUSTER_NAME
      namespace: ${PG_NAMESPACE}
      labels:
        cnpg.io/cluster: ${PG_PRIMARY_CLUSTER_NAME}
    spec:
      selector:
        matchLabels:
          cnpg.io/cluster: ${PG_PRIMARY_CLUSTER_NAME}
      podMetricsEndpoints:
        - port: metrics
    EOF
    

İliştirilmiş kimlik bilgisi oluşturun

Bu bölümde, CNPG'nin yedeklemeler için depolama hesabı hedefinde kimlik doğrulaması yapmak üzere AKS iş yükü kimliğini kullanmasına izin vermek üzere PostgreSQL yedeklemesi için federasyon kimlik bilgileri oluşturacaksınız. CNPG operatörü, CNPG Kümesi dağıtım bildiriminde kullanılan küme adıyla aynı ada sahip bir Kubernetes hizmet hesabı oluşturur.

  1. komutunu kullanarak kümenin OIDC veren URL'sini az aks show alın.

    export AKS_PRIMARY_CLUSTER_OIDC_ISSUER="$(az aks show \
        --name $AKS_PRIMARY_CLUSTER_NAME \
        --resource-group $RESOURCE_GROUP_NAME \
        --query "oidcIssuerProfile.issuerUrl" \
        --output tsv)"
    
  2. az identity federated-credential create komutunu kullanarak bir federasyon kimliği kimlik bilgisi oluşturun.

    az identity federated-credential create \
        --name $AKS_PRIMARY_CLUSTER_FED_CREDENTIAL_NAME \
        --identity-name $AKS_UAMI_CLUSTER_IDENTITY_NAME \
        --resource-group $RESOURCE_GROUP_NAME \
        --issuer "${AKS_PRIMARY_CLUSTER_OIDC_ISSUER}" \
        --subject system:serviceaccount:"${PG_NAMESPACE}":"${PG_PRIMARY_CLUSTER_NAME}" \
        --audience api://AzureADTokenExchange
    

Yüksek oranda kullanılabilir bir PostgreSQL kümesi dağıtma

Bu bölümde, CNPG Kümesi özel kaynak tanımını (CRD) kullanarak yüksek oranda kullanılabilir bir PostgreSQL kümesi dağıtacaksınız.

Küme CRD parametreleri

Aşağıdaki tabloda, Küme CRD'sinin YAML dağıtım bildiriminde ayarlanan temel özellikler özetlenmiştir:

Property Definition
imageName CloudNativePG operand kapsayıcı görüntüsünü gösterir. Bu kılavuzda gösterilen çekirdek içi yedekleme tümleştirmesi ile kullanın ghcr.io/cloudnative-pg/postgresql:18-system-trixie veya Barman Cloud eklentisini 18-standard-trixie benimsediğinizde öğesine geçin.
inheritedMetadata CNPG işlecine özgüdür. CNPG işleci, meta verileri kümeyle ilgili her nesneye uygular.
annotations Küme uç noktaları kullanıma sunulurken gereken DNS etiketini içerir ve kvorum tabanlı yük devretme için alpha.cnpg.io/failoverQuorum'i etkinleştirir.
labels: azure.workload.identity/use: "true" AKS'nin PostgreSQL küme örneklerini barındıran podlara iş yükü kimlik bağımlılıkları eklemesi gerektiğini gösterir.
topologySpreadConstraints Farklı bölgeler ve "workload=postgres" etiketli farklı düğümler gerektir.
resources Garantili Hizmet Kalitesi (QoS) sınıfını yapılandırıyor. Üretim ortamında bu değerler, temel düğüm VM'sinin kullanımını en üst düzeye çıkarmak için önemlidir ve kullanılan Azure VM SKU'su temelinde farklılık gösterir.
probes Eski startDelay yapılandırmanın yerini alır. Akış başlangıç ve hazır olma yoklamaları, trafiği sunmadan önce kopyaların iyi durumda olduğundan emin olunmasına yardımcı olur.
smartShutdownTimeout Uzun süre çalışan işlemlerin agresif durdurma gecikmeleri kullanmak yerine güncelleştirmeler sırasında düzgün bir şekilde bitmesini sağlar.
bootstrap CNPG işlecine özgüdür. Boş bir uygulama veritabanıyla başlatılır.
storage Veritabanı için PersistentVolume ayarlarını tanımlar. Azure yönetilen disklerde basitleştirilmiş söz dizimi, verileri ve WAL'yi yönetilen disklerde daha iyi aktarım hızı katmanları sunan aynı 64 GiB biriminde tutar. Ayrı WAL birimlerine ihtiyacınız varsa ayarlayın.
postgresql.synchronous minSyncReplicas / maxSyncReplicas'yi değiştirir ve yeni şemayı kullanarak zaman uyumlu çoğaltma davranışını belirtmenizi sağlar.
postgresql.parameters CNPG işlecine özgüdür. postgresql.conf, pg_hba.conf ve pg_ident.conf için ayarları. Örnek, AKS iş yükü kimliği senaryosuna uygun gözlemlenebilirlik ve WAL saklama varsayılanlarını vurgular, ancak bu varsayılanlar her bir iş yüküne göre ayarlanmalıdır.
serviceAccountTemplate Hizmet hesaplarını oluşturmak için gereken şablonu içerir ve PostgreSQL örneklerini barındıran podlardan dış Azure kaynaklarına kadar AKS iş yükü kimliği kimlik doğrulamasını etkinleştirmek adına, AKS federasyon kimliği kimlik bilgilerini UAMI ile ilişkilendirir.
barmanObjectStore CNPG işlecine özgüdür. Azure Blob Depolama nesne deposunda kimlik doğrulaması için AKS iş yükü kimliğini kullanarak barman-cloud araç seti yapılandırılır.

PostgreSQL iş yüklerini daha fazla yalıtmak için, veri düzlemi düğümlerinize bir leke (örneğin, node-role.kubernetes.io/postgres=:NoSchedule) ekleyebilir ve nodeSelector/tolerations örneğini CloudNativePG tarafından önerilen değerlerle değiştirebilirsiniz. Bu yaklaşımı benimserseniz düğümleri uygun şekilde etiketleyip AKS otomatik ölçeklendirici ilkelerinin topolojinizle uyumlu olduğunu onaylayın.

PostgreSQL performans parametreleri

PostgreSQL performansı büyük ölçüde kümenizin temel kaynaklarına ve iş yüküne bağlıdır. Aşağıdaki tabloda Standart D4s v3 düğümlerinde (16-GiB bellek) çalışan üç düğümlü bir küme için temel kılavuz sağlanır. Bu değerleri başlangıç noktası olarak değerlendirin ve iş yükü profilinizi anladıktan sonra ayarlayın:

Property Önerilen değer Definition
wal_compression lz4 WAL dosyasında yazılan tam sayfa yazmaları belirtilen yöntemle sıkıştırır
max_wal_size 6GB Denetim noktasını tetikleyen WAL boyutunu ayarlar
checkpoint_timeout 15 dk Otomatik WAL denetim noktaları arasındaki en uzun süreyi ayarlar
checkpoint_completion_target 0,9 Denetim noktası penceresinde denetim noktası çalışmasını dengeler
checkpoint_flush_after 2 MB Daha önce gerçekleştirilen yazma işlemlerinin diske boşaltıldığı sayfa sayısı
wal_writer_flush_after 2 MB Wal yazıcı tarafından yazılan ve temizlemeyi tetikleyen WAL miktarı
min_wal_size 2GB WAL'yi küçültmek için en düşük boyutu ayarlar
max_slot_wal_keep_size 10 GB WAL'dan replikasyon yuvalarına hizmet için üst sınır
shared_buffers 4GB Sunucu tarafından kullanılan paylaşılan bellek arabelleklerinin sayısını ayarlar (bu örnekte düğüm belleğinin 25%)
effective_cache_size 12 GB Planlayıcının veri önbelleklerinin toplam boyutu hakkındaki varsayımını ayarlar
work_mem Düğüm belleğinin 1/256'sı Sorgu çalışma alanları için kullanılacak en yüksek belleği ayarlar
maintenance_work_mem 6,25 düğüm% belleği Bakım işlemleri için kullanılacak en yüksek belleği ayarlar
autovacuum_vacuum_cost_limit 2400 Otomatik vakum için, vakumlamadan önce kullanılabilir vakum maliyeti miktarı
random_page_cost 1.1 Planlayıcının sıralı olmayan bir disk sayfasının maliyetiyle ilgili tahminini ayarlar
effective_io_concurrency 64 Disk alt sisteminin verimli bir şekilde işleyebileceği eşzamanlı istek sayısını ayarlar
maintenance_io_concurrency 64 Bakım işleri için kullanılan "effective_io_concurrency"nin bir çeşidi

PostgreSQL Dağıtımı

  1. PostgreSQL kümesini Cluster CRD kullanarak kubectl apply komutunu dağıtın.

    cat <<EOF | kubectl apply --context $AKS_PRIMARY_CLUSTER_NAME -n $PG_NAMESPACE -v 9 -f -
    apiVersion: postgresql.cnpg.io/v1
    kind: Cluster
    metadata:
      name: $PG_PRIMARY_CLUSTER_NAME
      annotations:
        alpha.cnpg.io/failoverQuorum: "true"
    spec:
      imageName: ghcr.io/cloudnative-pg/postgresql:18-system-trixie
      inheritedMetadata:
        annotations:
          service.beta.kubernetes.io/azure-dns-label-name: $AKS_PRIMARY_CLUSTER_PG_DNSPREFIX
        labels:
          azure.workload.identity/use: "true"
    
      instances: 3
      smartShutdownTimeout: 30
    
      probes:
        startup:
          type: streaming
          maximumLag: 32Mi
          periodSeconds: 5
          timeoutSeconds: 3
          failureThreshold: 120
        readiness:
          type: streaming
          maximumLag: 0
          periodSeconds: 10
          failureThreshold: 6
    
      topologySpreadConstraints:
      - maxSkew: 1
        topologyKey: topology.kubernetes.io/zone
        whenUnsatisfiable: DoNotSchedule
        labelSelector:
          matchLabels:
            cnpg.io/cluster: $PG_PRIMARY_CLUSTER_NAME
    
      affinity:
        nodeSelector:
          workload: postgres
    
      resources:
        requests:
          memory: '8Gi'
          cpu: 2
        limits:
          memory: '8Gi'
          cpu: 2
    
      bootstrap:
        initdb:
          database: appdb
          owner: app
          secret:
            name: db-user-pass
          dataChecksums: true
    
      storage:
        storageClass: $POSTGRES_STORAGE_CLASS
        size: 64Gi
    
      postgresql:
        synchronous:
          method: any
          number: 1
        parameters:
          wal_compression: lz4
          max_wal_size: 6GB
          max_slot_wal_keep_size: 10GB
          checkpoint_timeout: 15min
          checkpoint_completion_target: '0.9'
          checkpoint_flush_after: 2MB
          wal_writer_flush_after: 2MB
          min_wal_size: 2GB
          shared_buffers: 4GB
          effective_cache_size: 12GB
          work_mem: 62MB
          maintenance_work_mem: 1GB
          autovacuum_vacuum_cost_limit: "2400"
          random_page_cost: "1.1"
          effective_io_concurrency: "64"
          maintenance_io_concurrency: "64"
          log_checkpoints: 'on'
          log_lock_waits: 'on'
          log_min_duration_statement: '1000'
          log_statement: 'ddl'
          log_temp_files: '1024'
          log_autovacuum_min_duration: '1s'
          pg_stat_statements.max: '10000'
          pg_stat_statements.track: 'all'
          hot_standby_feedback: 'on'
        pg_hba:
          - host all all all scram-sha-256
    
      serviceAccountTemplate:
        metadata:
          annotations:
            azure.workload.identity/client-id: "$AKS_UAMI_WORKLOAD_CLIENTID"
          labels:
            azure.workload.identity/use: "true"
    
      backup:
        barmanObjectStore:
          destinationPath: "https://${PG_PRIMARY_STORAGE_ACCOUNT_NAME}.blob.core.windows.net/backups"
          azureCredentials:
            inheritFromAzureAD: true
        retentionPolicy: '7d'
    EOF
    

Uyarı

Örnek bildirim, daha sonra gösterilen çekirdek içi Barman Bulut tümleştirmesiyle çalıştığından, ghcr.io/cloudnative-pg/postgresql:18-system-trixie görüntüsünü kullanır. Barman Cloud eklentisine geçmeye hazır olduğunuzda, spec.imageName kümeyi yeniden dağıtmadan önce ghcr.io/cloudnative-pg/postgresql:18-standard-trixie güncelleştirin ve izleyin.

Important

Örnek pg_hba girdi TLS dışı erişime izin verir. Bu yapılandırmayı saklarsanız, ekibiniz için güvenlik etkilerini belgeleyin ve mümkün olan her yerde şifreli bağlantıları tercih edin.

  1. kubectl get komutunu kullanarak birincil PostgreSQL kümesinin başarıyla oluşturulduğunu doğrulayın. CNPG Kümesi CRD'si üç örnek belirtmiştir. Bu örnek çoğaltma için bir kez getirilip birleştirildikten sonra çalışan podlar görüntülenerek doğrulanabilir. Üç örneğin de çevrimiçi olması ve kümeye katılması biraz zaman alabildiği için sabırlı olun.

    kubectl get pods --context $AKS_PRIMARY_CLUSTER_NAME --namespace $PG_NAMESPACE -l cnpg.io/cluster=$PG_PRIMARY_CLUSTER_NAME
    

    Örnek çıkış

    NAME                         READY   STATUS    RESTARTS   AGE
    pg-primary-cnpg-r8c7unrw-1   1/1     Running   0          4m25s
    pg-primary-cnpg-r8c7unrw-2   1/1     Running   0          3m33s
    pg-primary-cnpg-r8c7unrw-3   1/1     Running   0          2m49s
    

Important

Azure Container Storage ile yerel NVMe kullanıyorsanız ve bir pod çoklu ekleme hatasıyla init durumunda kalırsa, pod kayıp düğümdeki birimi aramaya devam eder. Pod çalışmaya başladıktan sonra, CNPG veri içermeyen yeni bir düğümde yeni bir çoğaltma oluşturduğundan ve CrashLoopBackOff dizinini bulamadığından pgdata durumuna girer. Bu sorunu çözmek için etkilenen örneği yok edin ve yeni bir örnek oluşturun. Aşağıdaki komutu çalıştırın:

kubectl cnpg destroy [cnpg-cluster-name] [instance-number]  

Prometheus PodMonitor'ın çalıştığını doğrulama

El ile oluşturulan PodMonitor, kube-prometheus-stack kazıma yapılandırmasını daha önce dağıttığınız CNPG podlarıyla bağlar.

kubectl get komutunu kullanarak bir PodMonitor'ın çalıştığını doğrulayın.

kubectl --namespace $PG_NAMESPACE \
    --context $AKS_PRIMARY_CLUSTER_NAME \
    get podmonitors.monitoring.coreos.com \
    $PG_PRIMARY_CLUSTER_NAME \
    --output yaml

Örnek çıkış

kind: PodMonitor
metadata:
  labels:
    cnpg.io/cluster: pg-primary-cnpg-r8c7unrw
  name: pg-primary-cnpg-r8c7unrw
  namespace: cnpg-database
spec:
  podMetricsEndpoints:
  - port: metrics
  selector:
    matchLabels:
      cnpg.io/cluster: pg-primary-cnpg-r8c7unrw

Yönetilen Prometheus için Azure İzleyici kullanıyorsanız, özel grup adını kullanarak başka bir pod izleyicisi eklemeniz gerekir. Yönetilen Prometheus, Prometheus topluluğundan özel kaynak tanımlarını (CRD) almaz. Grup adının yanı sıra CRD'ler de aynıdır. Bu tasarım, Yönetilen Prometheus için pod izleyicilerinin topluluk CRD'sini kullanan pod monitörleriyle birlikte çalışmasını sağlar. Yönetilen Prometheus kullanmıyorsanız bu bölümü atlayabilirsiniz. Yeni bir pod izleyicisi oluşturun:

cat <<EOF | kubectl apply --context $AKS_PRIMARY_CLUSTER_NAME --namespace $PG_NAMESPACE -f -
apiVersion: azmonitoring.coreos.com/v1
kind: PodMonitor
metadata:
  name: cnpg-cluster-metrics-managed-prometheus
  namespace: ${PG_NAMESPACE}
  labels:
    azure.workload.identity/use: "true"
    cnpg.io/cluster: ${PG_PRIMARY_CLUSTER_NAME}
spec:
  selector:
    matchLabels:
      azure.workload.identity/use: "true"
      cnpg.io/cluster: ${PG_PRIMARY_CLUSTER_NAME}
  podMetricsEndpoints:
    - port: metrics
EOF

Pod monitörünün oluşturulduğunu doğrulayın (grup adındaki farkı not edin).

kubectl --namespace $PG_NAMESPACE \
    --context $AKS_PRIMARY_CLUSTER_NAME \
    get podmonitors.azmonitoring.coreos.com \
    -l cnpg.io/cluster=$PG_PRIMARY_CLUSTER_NAME \
    -o yaml

A Seçeneği - Azure İzleyici çalışma alanı

Postgres kümesini ve pod izleyicisini dağıttığınızda Azure İzleyici çalışma alanında Azure portalını kullanarak ölçümleri görüntüleyebilirsiniz.

Azure portalındaki bir Azure İzleyici çalışma alanında Postgres kümesi ölçümlerini gösteren ekran görüntüsü.

Seçenek B - Yönetilen Grafana

Alternatif olarak, Postgres kümesini ve pod izleyicilerini dağıttığınızda, Azure İzleyici çalışma alanına aktarılan ölçümleri görselleştirmek için dağıtım betiği tarafından oluşturulan Yönetilen Grafana örneğinde bir ölçüm panosu oluşturabilirsiniz. Yönetilen Grafana'ya Azure portalı üzerinden erişebilirsiniz. Dağıtım betiği tarafından oluşturulan Yönetilen Grafana örneğine gidin ve burada gösterildiği gibi Uç Nokta bağlantısını seçin:

Azure portalındaki bir Azure Yönetilen Grafana örneğindeki Postgres kümesi ölçümlerinin ekran görüntüsü.

Uç Nokta bağlantısının seçilmesi, Yönetilen Grafana örneğinde pano oluşturabileceğiniz yeni bir tarayıcı penceresi açar. Azure İzleyici veri kaynağını yapılandırma yönergelerini izleyerek görselleştirmeler ekleyerek Postgres kümesinden bir ölçüm panosu oluşturabilirsiniz. Veri kaynağı bağlantısını ayarladıktan sonra ana menüden Veri kaynakları seçeneğini belirleyin. Burada gösterildiği gibi veri kaynağı bağlantısı için bir dizi veri kaynağı seçeneği görmeniz gerekir:

Azure portalında Azure İzleyici veri kaynağı seçeneklerini gösteren ekran görüntüsü.

Yönetilen Prometheus seçeneğinde, pano düzenleyicisini açmak için bir pano oluşturma seçeneğini belirleyin. Düzenleyici penceresi açıldıktan sonra Görselleştirme ekle seçeneğini ve ardından Yönetilen Prometheus seçeneğini belirleyerek Postgres kümesindeki ölçümlere göz atın. Görselleştirmek istediğiniz ölçümü seçtikten sonra Sorguları çalıştır düğmesini seçerek görselleştirmenin verilerini burada gösterildiği gibi getirin:

Postgres kümesi ölçümlerini içeren Yönetilen Prometheus panosunu gösteren ekran görüntüsü.

Paneli panonuza eklemek için Kaydet simgesini seçin. Pano düzenleyicisinde Ekle düğmesini seçip diğer ölçümleri görselleştirmek için bu işlemi yineleyerek başka paneller ekleyebilirsiniz. Ölçüm görselleştirmelerini eklerken aşağıdakine benzer bir öğeye sahip olmanız gerekir:

Azure portalında kaydedilmiş bir Yönetilen Prometheus panosunu gösteren ekran görüntüsü.

Panonuzu kaydetmek için Kaydet simgesini seçin.


Sonraki Adımlar

Contributors

Microsoft bu makaleyi korur. Başlangıçta aşağıdaki katkıda bulunanlar yazdı:

  • Ken Kilty | Kıdemli TPM
  • Russell de Pina | Baş TPM
  • Adrian Joian | Kıdemli Müşteri Mühendisi
  • Jenny Hayes | Kıdemli İçerik Geliştirici
  • Carol Smith | Kıdemli İçerik Geliştirici
  • Erin Schaffer | İçerik Geliştirici 2
  • Adem Şerif | Müşteri Mühendisi 2

Bildirim

Bu belgeler, CloudNativePG operatörünün bakımcıları enterpriseDB ile birlikte geliştirilmiştir. Gabriele Bartolini'ye bu belgenin önceki taslaklarını gözden geçirip teknik iyileştirmeler sunduğu için teşekkür ederiz.