Deisのpostgresをoff-clusterにする(postgresql on GCEを利用)
やること
前回はCloud SQLを使ったが、Cloud SQLはデフォルトネットワーク外にあるので、Cloud SQL Proxyをたてて通信するか、外部IPを許可するしかなかった。Deisの場合だと、proxyたてるパターンを使えず、外部IPを許可する方法にしたけど、これだとNodeのIPが変わったり増えたときに対応できない。 なので、素直にGCE上にpostgresqlをたてることにした。
Cloud Launcher
postgreSQLをinstallとかめんどくさいなーって思ってたら、Cloud Launcherなるものを発見した。ぽちぽちっとやるだけで、いい感じにインストールまでしてくれる。本当の本当の本番ならこれはよくないかもしれないけど、今回はこれを使うことにした。
こんな感じで選んで、
できた。
単なるVMインスタンスとして出来上がっているので、まぁあとから修正は好きなように加えられるだろう。
sshするには
外部IPが振られているNode経由で、ログインできる。
$ gcloud compute ssh --ssh-flag="-A" <NODE_INSTANCE_NAME> # gcloudコマンドでmponユーザーとしてGoogleの認証がうまいことやってくれてる # さらに内部のインスタンスへはインスタンス名を入れるだけでつなげる。 # この辺がGCPのすごいところ。 mpon@gke-xxxxxxx-p-default-pool-d02cceda-15xb ~ $ ssh deis-postgres-vm The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. ___ _ _ _ | _ |_) |_ _ _ __ _ _ __ (_) | _ \ | _| ' \/ _` | ' \| | |___/_|\__|_|_|\__,_|_|_|_|_| *** Welcome to the Bitnami PostgreSQL 9.6.2-0 *** *** Service accessible using hostname 10.146.0.5 port 5432 *** *** Documentation: https://docs.bitnami.com/google/infrastructure/postgresql/ *** *** https://docs.bitnami.com/google/ *** *** Bitnami Forums: https://community.bitnami.com/ *** mpon@deis-postgres-vm:~$
あとは、configuring-postgresの内容でdeis君用のdatabaseとuserを作るだけ。
helm install
deis-postgres-vmの内部IPは、例によってコマンドでとれる。
def sql_instance_address res = `gcloud compute instances describe deis-postgres-vm` YAML.load(res)["networkInterfaces"].first["networkIP"] end
これで持って、helm installすると・・・・
$ kd get pods NAME READY STATUS RESTARTS AGE deis-builder-1364651073-9kcjd 1/1 Running 0 28m deis-controller-2711454920-5v8p5 1/1 Running 0 28m deis-logger-176328999-qmdqv 1/1 Running 5 28m deis-logger-fluentd-9frz3 1/1 Running 0 28m deis-logger-fluentd-hkkcl 1/1 Running 0 28m deis-logger-fluentd-xlrfz 1/1 Running 0 28m deis-logger-redis-304849759-wqb0f 1/1 Running 0 28m deis-monitor-grafana-432627134-1f8qr 1/1 Running 0 28m deis-monitor-influxdb-2729788615-qlmc4 1/1 Running 0 28m deis-monitor-telegraf-l8ttq 1/1 Running 2 28m deis-monitor-telegraf-sscvx 1/1 Running 1 28m deis-monitor-telegraf-svpxc 1/1 Running 1 28m deis-nsqd-3597503299-rcjr8 1/1 Running 0 28m deis-registry-169338602-2jkwm 1/1 Running 0 28m deis-registry-proxy-6m6fx 1/1 Running 0 28m deis-registry-proxy-mqwm8 1/1 Running 0 28m deis-registry-proxy-vtn3v 1/1 Running 0 28m deis-router-2126433040-9jrs7 1/1 Running 0 28m deis-workflow-manager-2528409207-jt8fq 1/1 Running 0 28m
無事動いたでござる
まとめ
GCPのネットワークは、AWSのVPC的な考えとは結構違うのでそこに慣れる必要がある。