11.3.5. 独自の CA 証明書の更新
この手順では、Cluster Operator で証明書を生成する代わりに、使用している CA 証明書を更新する方法を説明します。
対応する CA キーを変更しない場合は、この手順を実行します。それ以外の場合は、独自の CA 証明書で使用される秘密鍵を置き換える 手順を実行します。
独自の証明書を使用している場合、Cluster Operator は自動的に更新されません。したがって、期限切れ間近の CA 証明書を交換するために、証明書の更新期間中にこの手順を実行することが重要になります。
この手順では、PEM 形式の CA 証明書の更新を説明します。
前提条件
- 稼働中の Cluster Operator。
- 独自の CA 証明書と秘密鍵がインストールされている必要があります。
- クラスターまたはクライアントの PEM 形式による新しい X.509 証明書が必要です。
手順
CA 証明書の
Secretを更新します。既存のシークレットを編集して新規 CA 証明書を追加し、証明書生成アノテーション値を更新します。
oc edit secret <ca_certificate_secret_name>
oc edit secret <ca_certificate_secret_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <ca_certificate_secret_name>は
Secretの名前で、クラスタCA証明書の場合は<kafka_cluster_name>-cluster-ca-certであり、クライアントCA証明書の場合は<kafka_cluster_name>-clients-ca-certとなります。以下の例は、
my-clusterという名前の Kafka クラスターに関連付けられたクラスター CA 証明書のシークレットを示しています。クラスター CA 証明書のシークレット設定例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新規 CA 証明書を base64 にエンコードします。
cat <path_to_new_certificate> | base64
cat <path_to_new_certificate> | base64Copy to Clipboard Copied! Toggle word wrap Toggle overflow CA 証明書を更新します。
前の手順の base64 でエンコードされた CA 証明書を、
dataのca.crtプロパティーの値としてコピーします。CA 証明書生成アノテーションの値を増やします。
strimzi.io/ca-cert-generationアノテーションの値を1つ増分して更新します。たとえば、strimzi.io/ca-cert-generation=0をstrimzi.io/ca-cert-generation=1に変更します。Secretにアノテーションがない場合、値は0として扱われるため、1を指定してアノテーションを追加します。AMQ Streams が証明書を生成すると、証明書生成アノテーションは Cluster Operator によって自動的に増分されます。独自の CA 証明書を手動で更新するには、値を1増やしたアノテーションを設定します。Cluster Operator が Pod をロールアウトし、証明書を更新できるように、アノテーションには現在のシークレットよりも高い値を指定する必要があります。
strimzi.io/ca-cert-generationは、各 CA 証明書の更新で値を1増やす必要があります。新しい CA 証明書と証明書生成のアノテーション値でシークレットを保存します。
新しい CA 証明書で更新されるシークレット設定の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
次の調整時に、Cluster Operator は ZooKeeper、Kafka、およびその他のコンポーネントのローリングアップデートを実行して、新しい CA 証明書を信頼します。
メンテナンス時間枠が設定されている場合には、Cluster Operator は次のメンテナンス時間枠内で最初の調整時に Pod をローリングします。