cert-manager の再インストール
場合によっては、cert-manager の完全なアンインストールと再インストールが必要になることがあります。例としては、非常に古い cert-manager バージョンを最新の状態にする必要がある場合で、推奨されているデフォルトのアップグレード戦略であるマイナーバージョンを一度に1つずつアップグレードすることが現実的でない場合などが挙げられます。
cert-manager の CustomResourceDefinition
もアンインストールする場合、Certificate
のような関連する cert-manager カスタムリソースが失われることになります。これに関連する主な懸念事項は、アプリケーションのダウンタイムと、X.509証明書を含む Secret
が削除された場合に発生する可能性のある不必要な証明書の再発行です。cert-managerコントローラーで --enable-certificate-owner-ref
フラグを使用すると、Secret
を削除するかどうかを設定できます。このフラグが true に設定されている場合、各 Secret
は、それが作成された Certificate
へのオーナー参照を持ち、Certificate
が削除されると、Secret
はガベージコレクションされます。このフラグのデフォルト値は false です。Certificate
が削除されて再適用されても、Secret
がクラスターに残っている場合、新しく適用された Certificate
は同じ Secret
を取得でき、不必要にX.509証明書を再発行しないはずです。
アップグレードのためにアンインストールと再インストールを行う場合は、スキップした各バージョンのリリースノートをよく読んでください。
cert-manager (CRDを含む) のアンインストールと再インストールを検討する際に注意すべき点をいくつか示します。
--enable-certificate-owner-ref
フラグが現在 true に設定されているか、以前に true に設定されていた可能性はありますか?以前のバグにより、Secret
に追加されるオーナー参照は、--enable-certificate-owner-ref
の値が true から false に変更されても削除されません。cert-manager#4788
を参照してください。- 現在、証明書の発行が進行中ですか?もしそうなら、カスタムリソースが削除されると、進行状況は失われます。これにより、重複した発行が発生する可能性があります。
- cert-manager カスタムリソースマニフェストを v1 API に変換する必要がありますか?
cmctl convert
コマンドを使用して変換できます。