クイックスタート

このセクションでは、 種類 または Minikubeでのテスト のローカルKubernetesクラスターでCloudNativePGを使用して、ラップトップ/コンピューターでPostgreSQLクラスターをテストする方法について説明します。

警告

このセクションに含まれる手順は、デモンストレーション、テスト、および練習のみを目的としており、実稼働環境で使用しないでください。

他の Kubernetes アプリケーションと同様に、CloudNativePG は YAML で記述された通常のマニフェストを使用してデプロイされます。

このページの指示に従うと、ローカルのKubernetesインストールでPostgreSQLクラスターを起動して実験できるはずです。

重要

Kubernetesクラスターに接続するには、マシンに`kubectl` がインストールされていることを確認してください。 how to install `kubectl <https://kubernetes.io/docs/tasks/tools/install-kubectl/>`__ のKubernetesドキュメントに従ってください。

パート1-ローカルKubernetesプレイグラウンドのセットアップ

最初の部分は、MinikubeまたはKindのインストールについてです。システムについて読んで、どちらを続行するかを決定してください。いずれかを設定したら、パート2に進んでください。

ミニクベ

Minikubeは、Kubernetesをローカルで簡単に実行できるツールです。 Minikubeは、日常的にKubernetesを試したり、開発したりしようとしているユーザーのために、ラップトップ上の仮想マシン(VM)内でシングルノードのKubernetesクラスターを実行します。通常、VirtualBoxと組み合わせて使用します。

詳細については、ローカルの個人環境にある公式のKubernetes documentation on how to install Minikubeを参照してください。インストールしたら、次のコマンドを実行してminikubeクラスターを作成します。

minikube start

これにより、Kubernetesクラスターが作成され、使用する準備が整います。次のコマンドで動作することを確認します。

kubectl get nodes

minikube というノードが1つ表示されます。

種類

仮想マシンハイパーバイザーを使用したくない場合、 KindはDockerコンテナ「ノード」を使用してローカルKubernetesクラスターを実行するためのツールです(Kindは実際には「Kubernetes IN Docker」の略です)。

クイックスタート の指示に従ってkind

を環境にインストールし、次を使用してKubernetesクラスターを作成します。

kind create cluster --name pg

パート2-CloudNativePGのインストール

ラップトップでKubernetesをインストールして実行したので、CloudNativePGのインストールを続行できます。

インストールとアップグレード セクションを参照して、PostgreSQLクラスターのデプロイに進んでください。

パート3-PostgreSQLクラスターをデプロイする

Kubernetesでの他のデプロイメントと同様に、PostgreSQLクラスターをデプロイするには、目的のCluster を定義する構成ファイルを適用する必要があります。

cluster-example.yaml サンプルファイルは、デフォルトのストレージクラスを使用してディスク領域を割り当てる単純なCluster

を定義します。

#  Example of PostgreSQL cluster
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
  name: cluster-example
spec:
  instances: 3

  # Example of rolling update strategy:
  # - unsupervised: automated update of the primary once all
  #                 replicas have been upgraded (default)
  # - supervised: requires manual supervision to perform
  #               the switchover of the primary
  primaryUpdateStrategy: unsupervised

  # Require 1Gi of space
  storage:
    size: 1Gi

3ノードのPostgreSQLクラスターを作成するには、次のコマンドを実行する必要があります。

kubectl apply -f cluster-example.yaml

get pods コマンドを使用して、ポッドが作成されていることを確認できます。

kubectl get pods

デフォルトでは、オペレーターは、オペレーターがリリースされたときにPostgreSQLの最新のメジャーバージョンの最新のマイナーバージョンをインストールします。 Cluster 定義のspec セクションでimageName キーを設定することにより、これをオーバーライドできます。たとえば、PostgreSQL 13.6をインストールするには:

apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
   # [...]
spec:
   # [...]
   imageName: ghcr.io/cloudnative-pg/postgresql:13.6
   #[...]

重要

不変のインフラストラクチャーパラダイムでは、常にコンテナーイメージの特定のバージョンをポイントする必要があります。クラスター内の更新ポリシーとバージョンの一貫性に関して予測できないシナリオにつながる可能性があるため、運用環境では latest や 13 などのタグを使用しないでください。厳密な決定論的で反復可能な展開の場合、 <image>:<tag>@sha256:<digestValue> 形式でイメージ名にダイジェストを追加できます。