自称フルスタックエンジニアのぶろぐ。

pythonやreactや、gcpやawsなどなどについて書いていこうかと思います。

GCP Google Cloud Memorystore ~実際に動かすまでのみちのり~

Memorystoreを動かすために必要な手順

何も考えずに動かしてみると疎通しない

同一リージョンしか接続できない。

  • 東京リージョンで作成したGAEなどからは接続できません。正式版のリリースを待ちましょう。
    今回は、memorystoreに併せて GKE を asia-east1 リージョンに作成してます。

構築手順では、IPエイリアスを有効にしない

  • ドキュメントには有効にしろっと記載があります(罠)
    指定すると、podからredisへの疎通はできましたが、ingressがurlからの疎通ができなくなりました。
    わざわざエイリアスを有効にするために、クラスターを作り直したんですが、無駄でした・・・

f:id:murabo408:20180702165631p:plain

っというわけで、ここはデフォルトの無効のままで進めます。

IPエイリアスが無効の場合の手順

  • 下記が必要らしいので、下記をやります(理由は理解してない)
git clone https://github.com/bowei/k8s-custom-iptables.git

cd k8s-custom-iptables/

# Memorystoreのインスンタンス情報確認
gcloud beta redis instances describe forte-dev --region=asia-east1

# 上記のreservedIpRangeを下記コマンドで指定する 192~は下記のままでいい(っぽい)
TARGETS="10.0.0.0/29 192.168.0.0/16" ./install.sh

# 上記のhost(今回は10.0.0.3)を指定して、configmapを作成
kubectl create configmap redishost --from-literal=REDISHOST=10.0.0.3

deploy yamlのenvに下記を追記

        env:
        - name: REDISHOST
          valueFrom:
            configMapKeyRef:
              name: redishost
              key: REDISHOST

以上で、ingressの疎通もできて、podからmemorystoreへ接続する手順でした。

たったこれだけですが、実際はすごく時間がかかってしまいました・・・・

正式版がでるまでは、見送ったほうが良いかもしれませんね

murabo.hatenablog.com

murabo.hatenablog.com