Confluent for Kubernetes のアップグレード

アップグレードのプロセスに着手する前に、使用する Kubernetes クラスターが Confluent for Kubernetes (CFK)のターゲットバージョンの サポートされる環境 に該当していることを確認します。

スケールアップ、構成の変更、認証情報のローテーションなどのクラスターに対する他の変更とは別にこのアップグレードを実施することを推奨します。

アップグレードに関する注意事項

アップグレードプロセスを開始する前に、以下の注記を確認し、必要なアップデートを行ってください。

  • すべての Confluent Platform のカスタムリソース(CR)で Prometheus JMX エクスポーター値係数ルールを 1 に設定します。

    spec:
      metrics:
        prometheus:
          rules:
            - valueFactor: 1
    

Confluent for Kubernetes のアップグレード

CFK をアップグレードするには、次の手順に従います。

  1. リソースのリコンサイルを無効にします。

    Confluent Platform コンポーネントのローリング再起動を回避するために、以下のように Confluent Platform コンポーネントをデプロイした名前空間ごとに、リソースのリコンサイルを一時的に無効にします。

    1. コンポーネントのカスタムリソース(CR)の種類と名前を取得します。

      kubectl get all --namespace <namespace> | grep platform.confluent.io
      

      出力の 1 列目には、リソース名が <CR kind>/<CR name> の形式で入っています。

      たとえば以下の出力では、kafka.platform.confluent.io または短縮形の kafka が CR の種類で、kafka が CR 名です。

      kafka.platform.confluent.io/kafka
      
    2. 前の手順でリストしたコンポーネントごとに、リソースのリコンサイルを一時的に無効にします。

      kubectl annotate <component CR kind> <component CR name> \
        platform.confluent.io/block-reconcile=true \
        --namespace <namespace>
      
  2. 最新の CFK チャートを取得します。

  3. 以下のように、Confluent Platform のカスタムリソース定義(CRD)をアップグレードします。

    kubectl apply -f <CFK home>/confluent-for-kubernetes/crds/
    
  4. CFK を 2.2.2 にアップグレードします。

    • 値ファイルを使用して CFK をデプロイ している場合は、values.yaml で CFK の image.tag0.304.41 にアップデートします。

      image:
        tag: "0.304.41"
      

      そして、次のコマンドを実行して CFK をアップグレードします。

      helm upgrade --install confluent-operator \
        confluentinc/confluent-for-kubernetes \
        --values <path-to-values-file> \
        --namespace <namespace>
      
    • カスタマイズされた values.yaml を使用して CFK をデプロイしていない場合は、次のコマンドを実行して CFK をアップグレードします。

      helm upgrade --install confluent-operator \
        confluentinc/confluent-for-kubernetes \
        --namespace <namespace>
      
  5. 上記の最初の手順でリコンサイルを無効にした各 Confluent Platform コンポーネントのリソースのリコンサイルを有効にします。

    kubectl annotate <component CR kind> <cluster name> \
      platform.confluent.io/block-reconcile- \
      --namespace <namespace>