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 で行います。
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 コンポーネントでは使用されません。
CFK で設定したグローバルライセンスを使用するには、ライセンスを適用するコンポーネントごとに、次の手順を繰り返します。
コンポーネントのカスタムリソース(CR)で以下を設定します。
spec: license: globalLicense: true
コンポーネントの CR への変更を適用します。
1 つのファイルで複数のコンポーネント CR が定義されている場合は、すべてのコンポーネント CR で
spec.license.globalLicense
のプロパティを設定すると、コマンドを 1 回実行するだけで済みます。kubectl apply -f <component CR> --namespace <namespace>
グローバルライセンスを使用するには、アップデートしたコンポーネントを再起動します。
再起動する Confluent Platform クラスターに対応する StatefulSet の名前を検索します。
kubectl get statefulset --namespace <namespace>
前の手順で確認した StatefulSet 名
<name-of-statefulset>
を使用して、クラスターをローリングします。kubectl rollout restart statefulset/<name-of-statefulset> \ --namespace <namespace>
グローバルライセンスを使用する際は、CFK によって confluent-operator-licensing
と internal-confluent-operator-licensing
のシークレットが作成されます。これらのシークレットは Confluent Platform コンポーネントによって使用されるため、削除しないでください。
コンポーネントレベルライセンスのアップデート¶
ライセンス構造はコンポーネントレベルで構成でき、CFK で構成したライセンスよりも優先されます。
コンポーネントレベルのライセンスは、以下のいずれかの方法を使用して提供されます。
secretRef
または directoryPathInContainer
パスに license.txt
ファイルが存在する必要があります。
secretRef
と directoryPathInContainer
の両方が構成されている場合は、directoryPathInContainer
が優先されます。
Kubernetes シークレットによるコンポーネントレベルのライセンスの構成¶
Kubernetes シークレットを使用してコンポーネントのライセンスキーを指定するには、次の手順に従います。
license=<your license key>
を指定してlicense.txt
ファイルを作成します。echo -n "license=<your license key>" > license.txt
license.txt
ファイルの Kubernetes シークレットを作成します。コマンドには、--from-file=license.txt=
を含める必要があります。たとえば、
license.txt
ファイルがカレントディレクトリに存在する場合は、次のように指定します。kubectl create secret generic confluent-license \ --from-file=license.txt=./license.txt \ --namespace <namespace>
コンポーネントの CR でシークレット名を設定します。前述の例を使用した場合は、次のようになります。
spec: license: secretRef: confluent-license
コンポーネントの CR に対する変更を適用します。
kubectl apply -f <component CR> --namespace <namespace>
コンポーネントクラスターをローリングして、ライセンスの変更を適用します。
再起動する Confluent Platform クラスターに対応する StatefulSet の名前を検索します。
kubectl get statefulset --namespace <namespace>
前の手順で確認した StatefulSet 名
<name-of-statefulset>
を使用して、クラスターをローリングします。kubectl rollout restart statefulset/<name-of-statefulset> \ --namespace <namespace>
外部シークレットプロバイダーによるコンポーネントレベルのライセンスの構成¶
HashiCorp Vault などの外部シークレットプロバイダーを使用してコンポーネントのライセンスキーを指定するには、次の手順に従います。
Vault のインストールおよび構成
license=<your license key>
を指定してlicense.txt
ファイルを作成します。echo -n "license=<your license key>" > license.txt
Vault に
license.txt
を書き込みます。以下に例を示します。cat ./license.txt | \ vault kv put /secrets/license.txt license=-
コンポーネントの CR でシークレット名を設定します。前述の例を使用した場合は、次のようになります。
spec: license: directoryPathInContainer: /vault/secrets
コンポーネントの CR に対する変更を適用します。
kubectl apply -f <component CR> --namespace <namespace>
コンポーネントクラスターをローリングして、ライセンスの変更を適用します。
再起動する Confluent Platform クラスターに対応する StatefulSet の名前を検索します。
kubectl get statefulset --namespace <namespace>
前の手順で確認した StatefulSet 名
<name-of-statefulset>
を使用して、クラスターをローリングします。kubectl rollout restart statefulset/<name-of-statefulset> \ --namespace <namespace>