0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Postgres for Tanzu(k8s)をインストールしてみた

0
Posted at

始めに

Postgres for Tanzuというk8s上でpostgresqlを簡単にデプロイできるツールがBetaで公開されています。

このドキュメントではさくっと試しました。

インストール編

マニュアルにあるよう、PivNetからバイナリーをダウンロードして展開します。

展開したらまずイメージを登録します。

cd postgres-for-kubernetes-v*/images
docker load -i postgres-instance
docker load -i postgres-operator

そうしたら、イメージをローカルレポジトリーにアップロードします。
私の環境ではHarborを使っており、10.195.35.38というRepoのbloggingというプロジェクトに保管します。

docker tag postgres-instance:v0.4.1 10.195.35.38/blogging/postgres-instance:v0.4.1
docker push 10.195.35.38/blogging/postgres-instance:v0.4.1
docker tag postgres-operator:v0.4.1 10.195.35.38/blogging/postgres-operator:v0.4.1
docker push 10.195.35.38/blogging/postgres-operator:v0.4.1

つづいて、Harborの認証情報を登録します。

kubectl create secret docker-registry regsecret --docker-server=10.195.35.38 --docker-username=XXXXXXX --docker-password='XXXXXX' 

つぎにHelmのオーバーライド用のvalues.yamlを用意します。

# specify the url for the docker image for the operator, e.g. gcr.io/<my_project>/postgres-operator
operatorImageRepository: 10.195.35.38/blogging/postgres-operator

# specify the docker image for postgres instance, e.g. gcr.io/<my_project>/postgres-instance
postgresImageRepository: 10.195.35.38/blogging/postgres-instance

そして、これだけでインストールを行います。

cd postgres-for-kubernetes-v*/
helm install postgres-operator -f values.yaml operator/ 

うまく行けば以下のようにリソースが作られます。現在は全部defaultnamespaceにつくれらてしまい、ちょっとイケていない。

NAME                                   READY   STATUS    RESTARTS   AGE
pod/postgres-operator-f5f84f77-ph82j   1/1     Running   0          47s

NAME                                        TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)    AGE
service/kubernetes                          ClusterIP   10.96.0.1      <none>        443/TCP    34h
service/postgres-operator-webhook-service   ClusterIP   10.108.24.54   <none>        443/TCP    49s
service/supervisor                          ClusterIP   None           <none>        6443/TCP   34h

NAME                                READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/postgres-operator   1/1     1            1           50s

NAME                                         DESIRED   CURRENT   READY   AGE
replicaset.apps/postgres-operator-f5f84f77   1         1         1       50s

Postgreインスタンスの作成

ここからはCRDとしてkubernetes経由でpostgresがつくれます。
まずネームスペースを作ります。

kubectl create ns postgres

面倒ですが、新しく作成したNamespaceにまた、Harborの認証情報を登録します。

kubectl create secret docker-registry regsecret --docker-server=10.195.35.38 --docker-username=XXXXXXX --docker-password=XXXXXX -n postgres

そして、以下のコマンドで作成

kubectl create -n postgres -f - <<EOF
apiVersion: "postgres.pivotal.io/v1"
kind: "PostgresInstance"
metadata:
  name: wordpress-postgres
spec:
  memory: "2G"
  cpu: "1.0"
  storageClassName: default
  # storageSize is divided evenly between data and backup storage
  storageSize: 50G
EOF

そうすると簡単なPostgreインスタンスが立ち上がります。

NAME                       READY   STATUS    RESTARTS   AGE
pod/wordpress-postgres-0   1/1     Running   0          2m8s

NAME                         TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
service/wordpress-postgres   LoadBalancer   10.106.207.224   <pending>     5432:31290/TCP   5m41s

NAME                                  READY   AGE
statefulset.apps/wordpress-postgres   1/1     2m13s

NAME                                                      STATUS    AGE
postgresinstance.postgres.pivotal.io/wordpress-postgres   Running   2m14s

まとめ

まだまだ機能を追加されるでしょうが、今のところこんな機能郡です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?