Confluent Operator のクイックスタート

このクイックスタートでは、Confluent Operator を使用して Confluent Platform とその主要コンポーネントを準備して実行する方法について説明します。

前提条件

  • Kubernetes クラスターが「サポートされる環境」のいずれかに準拠している。
  • クラスターサイズが「サイズ設定の推奨事項」に基づいている。
  • kubectl がインストールされ、初期化され、コンテキストが設定済みである。使用するクラスター用に構成済みの kubeconfig ファイルも必要です。
  • Helm 3 がインストール済みである。
  • Confluent Operator バンドルにアクセスできる。
  • このクイックスタートガイドでは、Kubernetes クラスターにデフォルトの動的ストレージプロビジョナーがあると想定されています。GKE、AKS、EKS など、マネージド型の Kubernetes サービスがこれに該当します。一般に、Confluent Operator はデフォルトの動的ストレージプロビジョナーを持たない Kubernetes クラスターに Confluent Platform をデプロイするために使用します。

ステップ 1. Confluent Platform 用 Operator バンドルのダウンロード

Confluent Operator 1.7.2 をインストールして構成するための第一歩として、Confluent Operator バンドル をダウンロードします。

ステップ 2. デフォルトプロバイダーの YAML ファイルの構成

プロバイダーの YAML ファイルで以下の構成を変更します。

  1. Confluent Platform バンドルのダウンロード先ディレクトリにある helm/providers ディレクトリに移動します。

  2. 使用プロバイダー環境に対応するプロバイダーファイルのコピーを作成します。たとえば、プロバイダーファイルを my-values.yaml にコピーします。

  3. プロバイダーファイルを指す環境変数を設定します。以下に例を示します。

    export VALUES_FILE="/path/to/my-values.yaml"
    
  4. 使用するリージョンとゾーン(使用する Kubernetes クラスターが 複数のアベイラビリティゾーン にわたる場合は複数のゾーン)を確認または変更します。以下の例では region: us-central1zones: - us-central1-a が使用されています。

    注釈

    この例では、GCE 永続ディスクストレージ( gce-pd )と SSD( pd-ssd )が使用されています。

    global:
      provider:
        name: gcp
        region: us-central1
        kubernetes:
           deployment:
             ## If kubernetes is deployed in multi zone mode then specify availability-zones as appropriate
             ## If kubernetes is deployed in single availability zone then specify appropriate values
             zones:
              - us-central1-a
        storage:
          ## https://kubernetes.io/docs/concepts/storage/storage-classes/#gce
          ##
          provisioner: kubernetes.io/gce-pd
          reclaimPolicy: Retain
          parameters:
            type: pd-ssd
    
  5. Kafka クラスターへの外部アクセスに使用するロードバランサーを有効にします。ドメイン名は、プロバイダー環境のクラウドプロジェクトで使用する(または作成する)ドメイン名です。詳細については、「Confluent Operator でのネットワークの構成」を参照してください。

    ## Kafka Cluster
    ##
    kafka:
      name: kafka
      replicas: 3
     resources:
       requests:
         cpu: 200m
         memory: 1Gi
      loadBalancer:
         enabled: true
         domain: "<provider-domain>"
      tls:
         enabled: false
         fullchain: |-
         privkey: |-
         cacerts: |-
    

ステップ 3. Confluent Operator のデプロイ

operator-util.sh スクリプトを使用して、Confluent Operator と Confluent Platform をデプロイし、起動します。

重要

operator-util.sh は、本稼働環境では使用しないでください。これは手早くインストールしてテストするためのスクリプトです。

全コンポーネントをデプロイするには、Operator バンドルをダウンロードした先の scripts ディレクトリで、以下のコマンドを入力します。

./operator-util.sh -n <namespace> -r <release-prefix> -f $VALUES_FILE

このコマンドでは、以下のオプションが使用されます。

  • -n または --namespace: 新しい名前空間を入力しなかった場合、使用される名前空間はデフォルトの Kubernetes 名前空間です。通常は、簡潔な名前空間を新たに入力してください。以下の例では operator が使用されています。
  • -r または --release: 使用するリリースプレフィックスです。これにより、各コンポーネントの一意のリリース名が作成されます。以下の例では co1 が使用されます。
  • -f または --helm-file: プロバイダーの YAML ファイルへのパスです。このチュートリアルでは $VALUES_FILE 環境変数が使用されています。

名前空間 operator とプレフィックス co1 の使用例を以下に示します。

./operator-util.sh -n operator -r co1 -f $VALUES_FILE

スクリプトを実行して全コンポーネントのデプロイが完了するのに数分かかります。スクリプトの実行中は、以下のようなメッセージが表示されます。これが普通で、一般に Apache Kafka® ポッドの起動には少々時間がかかることからこのようになります。

Error from server (NotFound): statefulsets.apps "ksql" not found
Retry 1/10 exited 1, retrying in 1  seconds...
Error from server (NotFound): statefulsets.apps "ksql" not found
Retry 2/10 exited 1, retrying in 2  seconds...
Error from server (NotFound): statefulsets.apps "ksql" not found
Retry 3/10 exited 1, retrying in 4  seconds...
NAME   DESIRED   CURRENT   AGE
ksql   2         2         4s
Run Command:

     kubectl --context gke-platform-develop -n operator rollout status sts/ksql -w

スクリプトが完了したら、以下のコマンドを入力します。

kubectl get pods -n operator

以下のような出力が表示されます。

NAME                           READY   STATUS    RESTARTS   AGE
cc-operator-76c54d65cd-vgm5w   1/1     Running   0          7m28s
connectors-0                   1/1     Running   0          2m17s
connectors-1                   1/1     Running   0          2m17s
controlcenter-0                1/1     Running   0          2m14s
kafka-0                        1/1     Running   0          6m23s
kafka-1                        1/1     Running   0          4m58s
kafka-2                        1/1     Running   0          3m40s
ksql-0                         1/1     Running   0          2m10s
ksql-1                         1/1     Running   0          2m10s
replicator-0                   1/1     Running   0          2m7s
replicator-1                   1/1     Running   0          2m7s
schemaregistry-0               1/1     Running   0          2m4s
schemaregistry-1               1/1     Running   0          2m4s
zookeeper-0                    1/1     Running   0          7m15s
zookeeper-1                    1/1     Running   0          7m15s
zookeeper-2                    1/1     Running   0          7m15s

注釈

内部および外部デプロイをテストするためのステップについては、手動の手順の「ステップ 9. デプロイのテスト」を参照してください。

ちなみに

コンポーネントを削除するには、コマンド ./operator-util.sh --delete -n <namespace> -r <release> -f $VALUES_FILE を入力します。