Azure Kubernetes Service (AKS)のイングレスコントローラーにはめられた

Azure Kubernetes Service (AKS)でWebアプリケーションをデプロイしました。静的パブリックIPアドレスでイングレスコントローラーを作成し、Let’s Encryptで証明書を自動更新する構成です。まさにMicrosoftのドキュメント通りの構築をしたかったわけです。数ヵ月前に同じ作業したときとドキュメントの内容が変わっていて、さすがよくメンテナンスされているんだなと感心しながら作業を進めていました。

\(^o^)/

はい、動きません。


「unexpected status: 401 Unauthorized」や非推奨となった「kubernetes.io/ingress.class アノテーション」などと闘いながら、なんとかデプロイが完了しました。

稼働を確認してから変更した箇所をまとめ、「ドキュメント通りだと動かないから注意してね」という記事を投稿しようと思いました。そして「ココをこうするといいよ」とドキュメントからコマンドをコピペしようとしたそのとき・・・

(;゚д゚)(つд⊂)ゴシゴシ(;゚Д゚)…?!

変わってる?
記録を残すため、全てテキストファイルにコピーしてから作業していたので比較してみました。

REGISTRY_NAME=<REGISTRY_NAME>
CONTROLLER_REGISTRY=k8s.gcr.io
CONTROLLER_IMAGE=ingress-nginx/controller
CONTROLLER_TAG=v0.48.1
PATCH_REGISTRY=docker.io
PATCH_IMAGE=jettech/kube-webhook-certgen
PATCH_TAG=v1.5.1
DEFAULTBACKEND_REGISTRY=k8s.gcr.io
DEFAULTBACKEND_IMAGE=defaultbackend-amd64
DEFAULTBACKEND_TAG=1.5
CERT_MANAGER_REGISTRY=quay.io
CERT_MANAGER_TAG=v1.3.1
CERT_MANAGER_IMAGE_CONTROLLER=jetstack/cert-manager-controller
CERT_MANAGER_IMAGE_WEBHOOK=jetstack/cert-manager-webhook
CERT_MANAGER_IMAGE_CAINJECTOR=jetstack/cert-manager-cainjector

うん、そうだよね。さっきそう言ってたよね。

REGISTRY_NAME=<REGISTRY_NAME>
SOURCE_REGISTRY=k8s.gcr.io
CONTROLLER_IMAGE=ingress-nginx/controller
CONTROLLER_TAG=v1.0.4
PATCH_IMAGE=ingress-nginx/kube-webhook-certgen
PATCH_TAG=v1.1.1
DEFAULTBACKEND_IMAGE=defaultbackend-amd64
DEFAULTBACKEND_TAG=1.5
CERT_MANAGER_REGISTRY=quay.io
CERT_MANAGER_TAG=v1.5.4
CERT_MANAGER_IMAGE_CONTROLLER=jetstack/cert-manager-controller
CERT_MANAGER_IMAGE_WEBHOOK=jetstack/cert-manager-webhook
CERT_MANAGER_IMAGE_CAINJECTOR=jetstack/cert-manager-cainjector

さっきと言ってること違う!
色々比較してみましたがバージョンやdigestの指定が追加されていました。どうやらタイムリーな罠に嵌ってしまったようです。おかげで投稿するネタがなくなりました。

🥺

転んでもただは起きぬ、ということで更新されたドキュメントで本当に動くのかを検証することにしました。先ほどデプロイが終わったリソース達を全削除します。そして更新された Microsoftのドキュメント通りの手順で構築しました。

問題なく動きました。あと半日作業開始を遅らせればサクッと終わったようです。
というわけで今、この瞬間のドキュメントは完璧です(11月18日時点)。

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA