Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede AKS üzerinde yüksek oranda kullanılabilir bir PostgreSQL veritabanı dağıtacaksınız.
- Bu dağıtım için gerekli altyapıyı yine de oluşturmanız gerekiyorsa, kurulumu yapmak için AKS'de yüksek oranda kullanılabilir bir PostgreSQL veritabanı dağıtmak için altyapı oluşturma başlığındaki adımları izleyin ve sonra bu makaleye dönün.
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
-
kubectl create secretkomutunu 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
kubectl getkomutunu 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 applykomutu kullanarak CNPG işlecini yapılandırmak için bir ConfigMap dağıtın. Bu değerler artık gerekli olmayan eskiENABLE_AZURE_PVC_UPDATESanahtarı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 mevcutDRAIN_TAINTSayarları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.
Prometheus Community Helm deposunu eklemek için
helm repo addkomutunu kullanın.helm repo add prometheus-community \ https://prometheus-community.github.io/helm-chartsPrometheus Community Helm deposunu yükseltin ve
helm upgradekomutunu--installbayrağı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_NAMEKü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.
komutunu kullanarak kümenin OIDC veren URL'sini
az aks showalı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)"az identity federated-credential createkomutunu 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ı
PostgreSQL kümesini Cluster CRD kullanarak
kubectl applykomutunu 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.
kubectl getkomutunu 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.
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:
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:
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:
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:
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.