Confluent for Kubernetes のデプロイ

Confluent for Kubernetes (CFK)バンドルには、Confluent Platform を Kubernetes クラスターにデプロイするための Helm チャート、テンプレート、スクリプトが用意されています。

以下のいずれかの方法を使用して CFK をデプロイできます。

CFK と連携動作するためのオプションの Confluent プラグインは、以下のいずれかの方法でインストールできます。

Confluent の Helm リポジトリからの Confluent for Kubernetes のデプロイ

  1. Helm リポジトリを追加します。

    helm repo add confluentinc https://packages.confluent.io/helm
    
    helm repo update
    
  2. デフォルトの構成を使用して CFK をインストールします。

    helm upgrade --install confluent-operator \
      confluentinc/confluent-for-kubernetes \
      --namespace <namespace>
    

ダウンロードバンドルを使用した Confluent for Kubernetes のデプロイ

  1. 次のコマンドを使用して CFK バンドルをダウンロードし、ダウンロードしたバンドルを展開します。

    curl -O https://confluent-for-kubernetes.s3-us-west-1.amazonaws.com/confluent-for-kubernetes-2.0.4.tar.gz
    
  2. CFK バンドルをダウンロードした helm サブディレクトリから CFK をインストールします。

    helm upgrade --install confluent-operator \
      ./confluent-for-kubernetes \
      --namespace <namespace>
    

カスタマイズした Confluent for Kubernetes のデプロイ

CFK は、インストールまたはアップデート時にカスタマイズできます。CFK は helm を使用してインストールおよびアップデートされるため、CFK 構成のカスタマイズ方法は helm に従います。つまり、以下が可能です。

  • --values または -f フラグ経由で helm コマンドに渡すことができる構成値を YAML ファイルで設定する
  • --set--set-string、および --set-file フラグ経由で構成値を key=value ペアとして helm コマンドで直接設定する
  • 上記の 2 つの方法を組み合わせて、構成の一部を値ファイルで設定し、残りを、--set フラグを使用してコマンドラインで設定する

これらのフラグの詳細については、Helm のドキュメントを参照してください。

CFK の values.yaml ファイルを使用して、カスタマイズされた Confluent for Kubernetes をデプロイするには、以下の手順を実行します。
  1. デフォルトの values.yaml ファイルを見つけます。

    • Helm リポジトリを使用して CFK をデプロイする場合は、CFK チャートをプルします。

      mkdir -p <CFK-home>
      
      helm pull confluentinc/confluent-for-kubernetes \
        --untar \
        --untardir=<CFK-home> \
        --namespace <namespace>
      

      values.yaml ファイルは <CFK-home>/confluent-for-kubernetes ディレクトリにあります。

    • ダウンロードバンドルを使用して CFK をデプロイしている場合は、バンドルをダウンロードした場所の helm/confluent-for-kubernetes ディレクトリに values.yaml ファイルがあります。

  2. values.yaml ファイルのコピーを作成して、CFK の構成をカスタマイズします。デフォルトの values.yaml ファイルは編集しないでください。任意の場所にファイルのコピーを保存します。この場所は、<path-to-values-file> と呼ばれます。

  3. カスタマイズした構成を使用して CFK をインストールします。

    helm upgrade --install confluent-operator \
      confluentinc/confluent-for-kubernetes \
      --values <path-to-values-file> \
      --namespace <namespace>
    
helm upgrade コマンドを使用して、カスタマイズされた Confluent for Kubernetes をデプロイするには、以下の手順を実行します。

--set フラグを使用して、次のように構成オプションを指定します。

helm upgrade --install confluent-operator \
  confluentinc/confluent-for-kubernetes \
  --set <setting1>=<value1> \
  --set <setting2>=<value2> \
  ...
  --namespace <namespace>

すべての名前空間で Confluent Platform コンポーネントを管理するための CFK の構成

デフォルトで CFK は、CFK 自体がデプロイされている同じ Kubernetes 名前空間のみで、Confluent Platform コンポーネントクラスターおよびリソースをデプロイし、管理します。すべての名前空間で CFK が Confluent Platform リソースを管理できるようにするには、インストールコマンドで namespaced 構成プロパティを false に設定します。

helm upgrade --install confluent-operator \
  confluentinc/confluent-for-kubernetes \
  --set namespaced=false \
  --namespace <namespace>

または、上記のように values.yaml ファイルをアップデートして、次のプロパティを設定します。

namespaced: false

ロールとロールバインディングを作成しない Confluent for Kubernetes のデプロイ

デフォルトでは利便性のために、helm を使用して CFK をデプロイする際に、CFK が機能するために必要な Kubernetes のロールおよびロールバインディング(または、クラスターロールとクラスターロールバインディング)も helm インストールによって同時に作成されます。ただし、CFK のデプロイを担当するユーザーに Kubernetes RBAC アクセス許可を管理する権限がない可能性があり、その場合は helm インストールは失敗します。Kubernetes RBAC アクセス許可を管理する責任者が Kubernetes クラスター管理者のみである可能性もあります。このような状況では、Kubernetes クラスター管理者が、必要な RBAC リソースを事前に作成しておく必要があります(「Confluent Platform 用の Kubernetes クラスターの準備」を参照)。RBAC リソースを作成しようとする動作をスキップするように helm に指示するには、インストールコマンドに --set rbac=false を追加します。

helm upgrade --install confluent-operator \
  confluentinc/confluent-for-kubernetes \
  --set rbac=false \
  --namespace <namespace>

または、上記のように values.yaml ファイルをアップデートして、次のプロパティを設定します。

rbac: false

カスタムサービスアカウントを指定した Confluent for Kubernetes のデプロイ

CFK を管理するカスタムサービスアカウントを指定する場合には、次のようにインストールコマンドに --set serviceAccount.create=false --set serviceAccount.name=<name> を追加します。

helm upgrade --install confluent-operator \
  confluentinc/confluent-for-kubernetes \
  --set serviceAccount.create=false \
  --set serviceAccount.name=<service-account-name> \
  --namespace <namespace>

または、上記のように values.yaml ファイルをアップデートして、次のプロパティを設定します。

serviceAccount:
  create: false
  name: <service-account-name>

カスタムサービスアカウントを使用し、さらに rbac=false を設定した(つまり、ロールおよびロールバインディングが Kubernetes クラスター管理者によって事前に作成されている)場合は、<service-account-name>> が、事前に作成されたロールバインディングのサブジェクト名に必ず一致するようにする必要があります。

Confluent プラグインのインストール

Confluent for Kubernetes (CFK)バンドルには、Confluent for Kubernetes とやり取りするための Confluent プラグインが含まれています。これは Linux、Windows、Darwin の 3 つの環境でサポートされます。ツールの詳細については、「Confluent プラグイン」を参照してください。

  1. Helm リポジトリを使用して CFK をデプロイしている場合は、「ダウンロードバンドルを使用した Confluent for Kubernetes のデプロイ」の最初の手順の説明に従って、CFK バンドルをダウンロードし、展開する必要があります。

    ダウンロードバンドルを使用した Confluent for Kubernetes のデプロイ を使用した場合は、この手順をスキップしてください。

  2. 使用しているクライアント環境である Linux、Windows、Mac OS(Darwin)に対応する kubectl プラグインを、クライアント環境のローカルの実行ディレクトリに展開します。Mac OS と Linux の場合、/usr/local/bin/ がそれに該当します。これによって、標準 CLI kubectl からプラグインが見えるようになります。

    tar -xvf kubectl-plugin/kubectl-confluent-<environment>-amd64.tar.gz \
       -C <local directory for the plugin>
    

    たとえば、Mac OS では次のように指定します。

    tar -xvf kubectl-plugin/kubectl-confluent-darwin-amd64.tar.gz \
       -C /usr/local/bin/
    

Krew を使用した Confluent プラグインのインストール

Krew は、kubectl のプラグインマネージャーです。Krew を使用して Confluent プラグインをインストールする場合は、以下の手順に従ってください。

  1. Krew のユーザーガイド の説明に従って Krew をインストールします。

  2. Helm リポジトリを使用して CFK をデプロイしている場合は、「ダウンロードバンドルを使用した Confluent for Kubernetes のデプロイ」の最初の手順の説明に従って、CFK バンドルをダウンロードし、展開する必要があります。

    ダウンロードバンドルを使用した Confluent for Kubernetes のデプロイ を使用した場合は、この手順をスキップしてください。

  3. CFK バンドルの展開先ディレクトリにある kubectl-plugin サブディレクトリに移動します。

  4. 次のコマンドを使用して Confluent プラグインをインストールします。

    kubectl krew install \
      --manifest=confluent-platform.yaml \
      --archive=kubectl-confluent-<environment>-amd64.tar.gz
    

    たとえば、プラグインを MacOS にインストールするには、次のように入力します。

    kubectl krew  install \
      --manifest=confluent-platform.yaml \
      --archive=kubectl-confluent-darwin-amd64.tar.gz