Written by
izumiiii
on
on
GKE MultiClusterIngressを使用した独自ドメインとSSL設定
MultiClusterIngress について
MultiClusterIngress は Google Kubernetes Engine(GKE)が提供が提供するクラウドホスト型のコントローラーです。
特にクラスタを複数用いた冗長構成に使用したりします。
ただ、通常の Ingress コントローラーとは違い Annotations に制限があるため、今回は MultiClusterIngress での独自ドメインと SSL 設定を行う方法を記します。
前提条件
- 独自ドメインを持っていること。(今回はお名前.com で取得したドメインを使用します。)
- GKE MultiClusterIngress,MultiClusterService の環境が既にできていること。
Cloud DNS と SSL の準備
既に取得したドメインを Cloud DNS に登録するための、静的 IP を払い出す。
gcloud compute addresses create test-ip --global
作成した内容を確認するには下記コマンド。
gcloud compute addresses describe test-ip --global
Cloud DNS のゾーン、レコードを作成。
2-1: Cloud DNS でゾーンを設定する。
内容については下記内容で追加。
DNS名: お名前.comで取得したドメイン
種類: 公開
DNSSEC: オン
Cloud Logging: オフ
2-2: レコードの追加
A レコードで IPv4 アドレスを払い出しした静的 IP を設定して登録。(その他はデフォルト)
2-3: CAA レコードの追加
レコードで IPv4 に 0 issue "letsencrypt.org"を設定
2-4: 今回はお名前.com でドメインを取得したので、お名前.com 側でネームサーバーの設定を行うこと。
Cloud DNS の NS の値を設定。
証明書の発行
今回は Google マネージド SSL 証明書を利用して SSL 設定を行うため、下記コマンドで作成します。
gcloud compute ssl-certificates create test-ssl
gcloud compute ssl-certificates list
Kubernetes 側の設定
Cloud DNS の設定、証明書の発行を元に MultiClusterIngress の Annotations を下記に設定。
ingress.yaml
metadata:
name: backend-ingress
annotations:
networking.gke.io/static-ip: 取得した静的IP # example: "162.1111.111"
networking.gke.io/pre-shared-certs: 取得したsslの名前 # 今回ならtest-ssl
最後に内容を適用します。
kubectl apply -f ingress.yaml
※ SSL の反映は時間がかかるため、数時間置いてから、確認してください。