Quick start#
Kind で構築された単一のローカルKubernetesクラスターでKubernetes用EDB EDB Postgres EDB Postgres DistributedPGDクラスターをテストできます。
警告
これらの指示は、デモンストレーション、テスト、および練習のみを目的としているため、実稼働環境では使用しないでください。
このクイックスタートでは、ローカルのKubernetesインストールでEDB Postgres分散クラスターを起動して、実験できる方法を示します。
重要
Kubernetesクラスターに接続するには、マシンに`kubectl` がインストールされていることを確認します。 installing `kubectl <https://kubernetes.io/docs/tasks/tools/install-kubectl/>`_ に関するKubernetesドキュメントを参照してください。
パート1-ローカルKubernetesプレイグラウンドをセットアップする#
Dockerコンテナノードを使用してローカルKubernetesクラスターを実行するためのツールであるKindをインストールします。 KindはKubernetes IN Dockerの略です。既にKubernetesクラスターにアクセスしている場合、パート2に進んでください。
Kind Quick Start の指示に従って、Kindを環境にインストールします。次に、Kubernetesクラスターを作成します。
kind create cluster --name pgd
パート2-Kubernetes用に分散されたEDB Postgresのインストール#
ラップトップでKubernetesインストールをアップして実行したら、KubernetesのEDB Postgres Distributedをインストールできます。
詳細は、 Installation and upgrade を参照してください。
パート3-PGDクラスターを展開する#
Kubernetesの他のデプロイメントと同様に、 PGDクラスターを展開するには、
PGDクラスターを構成する目的のPGDGroup
リソースを定義する構成ファイルを適用する必要があります。
一部のサンプルファイルは、 EDB Postgres Distributed for Kubernetesリポジトリに含まれています。マニフェストには、2つのデータグループと3つのリージョンにまたがるグローバル監視ノードを含むPGDクラスターの定義が含まれています。各データグループは、2つのデータノードと1つのローカル監視ノードで構成されています。
apiVersion: pgd.k8s.enterprisedb.io/v1beta1
kind: PGDGroup
metadata:
name: region-a
spec:
instances: 2
proxyInstances: 2
witnessInstances: 1
pgd:
parentGroup:
name: world
create: true
discovery:
- host: region-a-group
- host: region-b-group
- host: region-c-group
cnp:
storage:
size: 1Gi
connectivity:
dns:
additional:
- domain: alternate.domain
- domain: my.domain
hostSuffix: -dc1
tls:
mode: verify-ca
clientCert:
caCertSecret: client-ca-key-pair
certManager:
spec:
issuerRef:
name: client-ca-issuer
kind: Issuer
group: cert-manager.io
serverCert:
caCertSecret: server-ca-key-pair
certManager:
spec:
issuerRef:
name: server-ca-issuer
kind: Issuer
group: cert-manager.io
- --
apiVersion: pgd.k8s.enterprisedb.io/v1beta1
kind: PGDGroup
metadata:
name: region-b
spec:
instances: 2
proxyInstances: 2
witnessInstances: 1
pgd:
parentGroup:
name: world
discovery:
- host: region-a-group
- host: region-b-group
- host: region-c-group
cnp:
storage:
size: 1Gi
connectivity:
tls:
mode: verify-ca
clientCert:
caCertSecret: client-ca-key-pair
certManager:
spec:
issuerRef:
name: client-ca-issuer
kind: Issuer
group: cert-manager.io
serverCert:
caCertSecret: server-ca-key-pair
certManager:
spec:
issuerRef:
name: server-ca-issuer
kind: Issuer
group: cert-manager.io
- --
apiVersion: pgd.k8s.enterprisedb.io/v1beta1
kind: PGDGroup
metadata:
name: region-c
spec:
instances: 0
proxyInstances: 0
witnessInstances: 1
pgd:
parentGroup:
name: world
discovery:
- host: region-a-group
- host: region-b-group
- host: region-c-group
cnp:
storage:
size: 1Gi
connectivity:
tls:
mode: verify-ca
clientCert:
caCertSecret: client-ca-key-pair
certManager:
spec:
issuerRef:
name: client-ca-issuer
kind: Issuer
group: cert-manager.io
serverCert:
caCertSecret: server-ca-key-pair
certManager:
spec:
issuerRef:
name: server-ca-issuer
kind: Issuer
group: cert-manager.io
最初に保存して実行することにより、flexible-3-regions
例を展開できます。
kubectl apply -f flexible_3regions.yaml
get pods
コマンドを使用して、ポッドが作成されていることを確認できます。
kubectl get pods
ポッドはPGDノードの一部として作成されています。 Architecture で説明しているように、これらはKubernetesクラスターのEDB Postgresの上に実装されています。
次に、クラスターをリストすることができます。これは、PGDノードを表示します。
$ kubectl get clusters
NAME AGE INSTANCES READY STATUS PRIMARY
region-a-1 2m50s 1 1 Cluster in healthy state region-a-1-1
region-a-2 118s 1 1 Cluster in healthy state region-a-2-1
region-a-3 91s 1 1 Cluster in healthy state region-a-3-1
…
…
最終的に、 PGDノードは、 PGDクラスターを構成するPGDグループの一部として作成されます。
$ kubectl get pgdgroups
NAME DATA INSTANCES WITNESS INSTANCES PHASE AGE
region-a 2 1 PGDGroup - Healthy 4m50s
region-b 2 1 PGDGroup - Healthy 4m50s
region-c 0 1 PGDGroup - Healthy 4m50s
region-cグループが監視ノードにすぎないことに注意してください。