Confluent Platform ライセンスのアップデート

Confluent for Kubernetes (CFK)、Kafka、Confluent Control Center は、ライセンスキーがなくても 30 日間試用できます。30 日経過後は、Confluent for Kubernetes および Confluent コンポーネントの使用にライセンスキーが必要です。ライセンスの種類に関する情報など、Confluent のライセンスについては、「Confluent Platform ライセンス」を参照してください。

CFK の使用時には、次の 2 つのオプションのいずれかで、Confluent Platform コンポーネントのライセンスを構成できます。

重要

グローバルライセンスまたはコンポーネントライセンスをアップデートしたときは、ライセンスの変更がコンポーネントに反映されるよう、そのライセンスが使用されているコンポーネントを再起動してください。

CFK のグローバルライセンスのアップデート

Confluent コンポーネントに使用するグローバルライセンスキーの構成は、CFK で行います。

  1. CFK ライセンスキーを追加またはアップデートするには、ダウンロードした CFK バンドルが入っているディレクトリに移動します。helm サブディレクトリに移動し、以下のコマンドを実行します。

    helm upgrade --install confluent-operator ./confluent-for-kubernetes \
       --set licenseKey=<CFK license key>
    

    上記のコマンドを実行すると、license.txt ファイルと publicKey.pem ファイルに confluent-operator-licensing のシークレットが作成されます。

    • license.txt には、コマンドに指定した <CFK license key> が追加されます。
    • publicKey.pem には、署名済みライセンスを検証するために使用されるパブリックキーが追加されます。このキーは、CFK でのみ使用され、Confluent Platform コンポーネントでは使用されません。
  2. CFK で設定したグローバルライセンスを使用するには、ライセンスを適用するコンポーネントごとに、次の手順を繰り返します。

    1. コンポーネントのカスタムリソース(CR)で以下を設定します。

      spec:
        license:
          globalLicense: true
      
    2. コンポーネントの CR への変更を適用します。

      1 つのファイルで複数のコンポーネント CR が定義されている場合は、すべてのコンポーネント CR で spec.license.globalLicense のプロパティを設定すると、コマンドを 1 回実行するだけで済みます。

      kubectl apply -f <component CR> --namespace <namespace>
      
    3. グローバルライセンスを使用するには、アップデートしたコンポーネントを再起動します。

      1. 再起動する Confluent Platform クラスターに対応する StatefulSet の名前を検索します。

        kubectl get statefulset --namespace <namespace>
        
      2. 前の手順で確認した StatefulSet 名 <name-of-statefulset> を使用して、クラスターをローリングします。

        kubectl rollout restart statefulset/<name-of-statefulset> \
          --namespace <namespace>
        

グローバルライセンスを使用する際は、CFK によって confluent-operator-licensinginternal-confluent-operator-licensing のシークレットが作成されます。これらのシークレットは Confluent Platform コンポーネントによって使用されるため、削除しないでください。

コンポーネントレベルライセンスのアップデート

ライセンス構造はコンポーネントレベルで構成でき、CFK で構成したライセンスよりも優先されます。

コンポーネントレベルのライセンスは、以下のいずれかの方法を使用して提供されます。

secretRef または directoryPathInContainer パスに license.txt ファイルが存在する必要があります。

secretRefdirectoryPathInContainer の両方が構成されている場合は、directoryPathInContainer が優先されます。

Kubernetes シークレットによるコンポーネントレベルのライセンスの構成

Kubernetes シークレットを使用してコンポーネントのライセンスキーを指定するには、次の手順に従います。

  1. license=<your license key> を指定して license.txt ファイルを作成します。

    echo -n "license=<your license key>" > license.txt
    
  2. license.txt ファイルの Kubernetes シークレットを作成します。コマンドには、--from-file=license.txt= を含める必要があります。

    たとえば、license.txt ファイルがカレントディレクトリに存在する場合は、次のように指定します。

    kubectl create secret generic confluent-license \
      --from-file=license.txt=./license.txt \
      --namespace <namespace>
    
  3. コンポーネントの CR でシークレット名を設定します。前述の例を使用した場合は、次のようになります。

    spec:
      license:
        secretRef: confluent-license
    
  4. コンポーネントの CR に対する変更を適用します。

    kubectl apply -f <component CR> --namespace <namespace>
    
  5. コンポーネントクラスターをローリングして、ライセンスの変更を適用します。

    1. 再起動する Confluent Platform クラスターに対応する StatefulSet の名前を検索します。

      kubectl get statefulset --namespace <namespace>
      
    2. 前の手順で確認した StatefulSet 名 <name-of-statefulset> を使用して、クラスターをローリングします。

      kubectl rollout restart statefulset/<name-of-statefulset> \
        --namespace <namespace>
      

外部シークレットプロバイダーによるコンポーネントレベルのライセンスの構成

HashiCorp Vault などの外部シークレットプロバイダーを使用してコンポーネントのライセンスキーを指定するには、次の手順に従います。

  1. Vault のインストールおよび構成

  2. license=<your license key> を指定して license.txt ファイルを作成します。

    echo -n "license=<your license key>" > license.txt
    
  3. Vault に license.txt を書き込みます。以下に例を示します。

    cat ./license.txt | \
      vault kv put /secrets/license.txt license=-
    
  4. コンポーネントの CR でシークレット名を設定します。前述の例を使用した場合は、次のようになります。

    spec:
      license:
        directoryPathInContainer: /vault/secrets
    
  5. コンポーネントの CR に対する変更を適用します。

    kubectl apply -f <component CR> --namespace <namespace>
    
  6. コンポーネントクラスターをローリングして、ライセンスの変更を適用します。

    1. 再起動する Confluent Platform クラスターに対応する StatefulSet の名前を検索します。

      kubectl get statefulset --namespace <namespace>
      
    2. 前の手順で確認した StatefulSet 名 <name-of-statefulset> を使用して、クラスターをローリングします。

      kubectl rollout restart statefulset/<name-of-statefulset> \
        --namespace <namespace>