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が必要になる。