kubernetes on GKEでLet’s Encryptを使ったときのメモ
kubenetesでLet’s Encryptを使うのに、kube-legoを使用します。
kube-legoではGCEのロードバランサーとNginx Ingress Controllerが使えるようですが、今回はロードバランサーを使う手順でやります(このあたりよく分かっていない…)。
7月13日追記
GCEのロードバランサーを使わない手順ができました。
https://github.com/kter/kube-study/tree/master/ingress/nginx-tls
kube-legoのダウンロード
git clone https://github.com/jetstack/kube-lego.git vim kube-lego/examples/gce/lego/configmap.yaml
(メールアドレスを自分のものに編集)
IPの払い出し
IPを払い出す
gcloud compute addresses create "IPの識別名" --global
払い出したIPにドメインを紐付けておく。
ファイルの作成
kube-legoで使用するnginx-ingress.ymlを作成する。
SSL化したいサービスを下記web-service.ymlとした場合、nginx-ingress.ymlは次のようになるので適当な場所に作成しておく。
kube-legoを作成する
cd kube-lego/examples/gce kubectl apply -f lego/00-namespace.yaml kubectl apply -f lego/configmap.yaml kubectl apply -f lego/deployment.yaml kubectl create -f /path/to/nginx-ingress.yml
設定が反映されるまで、十数分掛かるので暫く待つ。
備考
作成されるものはkube-legoというnamespaceとなっているため、kubectlを実行する際は--namespace kube-legoが必要になる。