[GKE] Cert-Managerをdeployするとcert-manager-cainjector上でcrashloopbackoffエラーが発生した件
GKE(Google Kubernetes Engine)のWEBコンテナをSSL化するために、Cert-Managerを使用して証明書を管理しようとしてcert-manager-cainjector上でcrashloopbackoffエラーが発生してハマったのでメモ書き
Cert-Manager:https://hub.helm.sh/charts/jetstack/cert-manager
Cert-ManagerをGKE上にDeployするにはHelmをインストールしてDeployする
helm repo add jetstack https://charts.jetstack.io
helm install --name my-release --namespace cert-manager jetstack/cert-manager
helmでインストールを行うと
- cert-manager
- cert-manager-cainjector
- cert-manager-webhook
という3つのワークロードが作成される
しかし、なぜかcert-manager-cainjectorがcrashloopbackoff(何度も再起動)というエラーが発生してDeployが成功しなかった。
Podのログを見てみると
error registering controllers: no matches for kind "Certificate" in version "cert-manager.io/v1alpha2
という重大なエラーが発生していることが原因っぽいので、さらに調査
下記サイトによると「Can you confirm that all the cert-manager CRDs are install on your cluster?(cert-manager CRDsの全部がインストールされているのか確認できるか?)」というアドバイスがあったので、
https://github.com/jetstack/cert-manager/issues/2110
インストールガイド(https://hub.helm.sh/charts/jetstack/cert-manager)をよく見てみると、、、
IMPORTANT: you MUST install the cert-manager CRDs **before** installing the cert-manager Helm
「インストール前にcert-manager CRDsをインストールしましょう!」を見逃していた、、
改めて、下記コマンドを実行してCRDsをインストールしてから
kubectl apply --validate=false \ -f https://raw.githubusercontent.com/jetstack/cert-manager/release-0.13/deploy/manifests/00-crds.yaml
再度Deploy!
helm install --name my-release --namespace cert-manager jetstack/cert-manager
無事、cert-manager-cainjectorも正常に動作した
マニュアルはよく読みましょう、、、
Pingback: [GKE] ingress-nginx配下のwebサーバ用のSSL証明書をcert-managerで付与してSSL化→Redirect込み | BlueBear I/O