SQL
 Computer >> コンピューター >  >> プログラミング >> SQL

PostgreSQL を Kubernetes にデプロイする:信頼性が高く、スケーラブルなデータベースのためのステップバイステップ ガイド

PostgreSQL は、複雑なデータセットを処理することで知られるオープンソース RDBMS です。 Kubernetes は、コンテナ化されたアプリケーションのデプロイ、スケーリング、管理を自動化します。 PostgreSQL を Kubernetes にデプロイすると、自動スケーリング、ローリング アップデート、レプリカとフェイルオーバーによる信頼性の向上が実現します。

導入手順

クラスターイメージマニフェスト展開モニター

ステップ 1:Kubernetes クラスターをセットアップする

クラウドプロバイダー (AWS EKS、GCP GKE、Azure AKS) を使用するか、Minikube を使用してローカルにセットアップします。 kubectl をインストールします およびオプションで Helm .

ステップ 2:導入マニフェストを作成する

環境変数、ボリューム、ポートを使用して YAML ファイルで PostgreSQL デプロイメントを定義しますか?

apiVersion: apps/v1
kind: Deployment
metadata:
 name: postgres
spec:
 replicas: 1
 selector:
 matchLabels:
 app: postgres
 template:
 metadata:
 labels:
 app: postgres
 spec:
 containers:
 - name: postgres
 image: postgres:16
 ports:
 - containerPort: 5432
 env:
 - name: POSTGRES_USER
 value: "admin"
 - name: POSTGRES_PASSWORD
 value: "secretpass"
 - name: POSTGRES_DB
 value: "mydb"
 volumeMounts:
 - mountPath: /var/lib/postgresql/data
 name: postgres-storage
 volumes:
 - name: postgres-storage
 persistentVolumeClaim:
 claimName: postgres-pvc
---
apiVersion: v1
kind: Service
metadata:
 name: postgres-svc
spec:
 selector:
 app: postgres
 ports:
 - port: 5432
 targetPort: 5432
 type: ClusterIP

ステップ 3:導入と監視

# Deploy
kubectl apply -f postgres-manifest.yaml
# Check pod status
kubectl get pods
# View logs
kubectl logs <pod-name>
# Monitor resources
kubectl top pods

ステップ 4:スケールとバックアップ

# Scale replicas
kubectl scale deployment postgres --replicas=3
# Backup using pg_dump
kubectl exec <pod-name> -- pg_dump -U admin mydb > backup.sql

結論

PostgreSQL を Kubernetes にデプロイすると、堅牢なデータベース管理とコンテナ オーケストレーションが組み合わされ、自動スケーリング、ローリング アップデート、永続ストレージ、フェイルオーバーが実現します。 YAML マニフェストでデプロイメントを定義し、kubectl apply でデプロイします。 、標準の Kubernetes コマンドを使用して監視します。

PostgreSQL を Kubernetes にデプロイする:信頼性が高く、スケーラブルなデータベースのためのステップバイステップ ガイド


  1. 1対1の関係モデル

    「商品販売」データベースでは、商品に画像、詳細説明、コメントなどのオプションの補足情報が含まれている場合があります。それらをProductsテーブル内に保持すると、多くの空のスペースが生じます(これらのオプションのデータがないレコードでは)。さらに、これらの大きなデータはデータベースのパフォーマンスを低下させる可能性があります。 代わりに、別のテーブル(ProductDetails、ProductLines、ProductExtrasなど)を作成して、オプションのデータを保存できます。レコードは、オプションのデータを含む製品に対してのみ作成されます。 ProductsとProductDeta

  2. 遅延更新リカバリ:NO-UNDO と REDO を使用して信頼性の高いデータ整合性を実現

    遅延更新リカバリでは、ディスク上の実際のデータベース変更は、トランザクションがコミットされるまで延期されます。更新は、実行中にログおよびキャッシュ バッファーにのみ記録されます。トランザクションがコミット前に失敗した場合、ディスク上のデータベースは影響を受けないため、元に戻すことはできません。変更がディスクに書き込まれていない、コミットされたトランザクションには REDO のみが必要です。 遅延更新プロトコル トランザクションは、コミット ポイントに到達するまでディスク上のデータベースを変更できません。 すべての REDO ログ エントリは、コミット前にディスクに強制的に書き込まれる必要があ