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 ファイルで以下の構成を変更します。
Confluent Platform バンドルのダウンロード先ディレクトリにある
helm/providers
ディレクトリに移動します。使用プロバイダー環境に対応するプロバイダーファイルのコピーを作成します。たとえば、プロバイダーファイルを
my-values.yaml
にコピーします。プロバイダーファイルを指す環境変数を設定します。以下に例を示します。
export VALUES_FILE="/path/to/my-values.yaml"
使用するリージョンとゾーン(使用する Kubernetes クラスターが 複数のアベイラビリティゾーン にわたる場合は複数のゾーン)を確認または変更します。以下の例では
region: us-central1
とzones: - 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
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
を入力します。