第3章 AMQ Streams デプロイメントの準備
ここでは、AMQ Streams デプロイメントを準備する方法を説明します。
本ガイドのコマンドを実行するには、クラスターユーザーに RBAC (ロールベースアクセス制御) および CRD を管理する権限を付与する必要があります。
3.1. デプロイメントの前提条件
AMQ Streams のデプロイする場合、以下を確認してください。
OpenShift 4.6 以降のクラスターが利用できること。
AMQ Streams は AMQ Streams Strimzi 0.22.x をベースとしています。
-
ocコマンドラインツールがインストールされ、稼働中のクラスターに接続するように設定されていること。
AMQ Streams は、OpenShift 固有の一部機能をサポートします。そのようなインテグレーションは OpenShift ユーザーに有用で、標準の OpenShift を使用した同等の実装はありません。
3.2. AMQ Streams リリースアーティファクト
AMQ Streams をインストールするには、AMQ Streams のダウンロードページ から amq-streams-<version>-ocp-install-examples.zip ファイルをダウンロードし、リリースアーティファクトを展開します。
AMQ Streams のリリースアーティファクトには、YAML ファイルが含まれています。これらのファイルは、AMQ Streams コンポーネントの OpenShift へのデプロイ、共通の操作の実行、および Kafka クラスターの設定に便利です。
oc を使用して、ダウンロードした ZIP ファイルの install/cluster-operator フォルダーから Cluster Operator をデプロイします。Cluster Operator のデプロイメントおよび設定に関する詳細は、「Cluster Operator のデプロイ」 を参照してください。
また、AMQ Streams Cluster Operator によって管理されない Kafka クラスターをトピックおよび User Operator のスタンドアロンインストールと共に使用する場合は、install/topic-operator および install/user-operator フォルダーからデプロイできます。
AMQ Streams コンテナーイメージは、Red Hat Ecosystem Catalog から使用することもできます。しかし、提供される YAML ファイルを使用して AMQ Streams をデプロイすることが推奨されます。
3.3. Kafka Connect S2I のコンテナーレジストリーでの認証
OpenShift ビルドおよび S2I (Source-to-Image) を使用してコンテナーイメージを作成する前に、Red Hat コンテナーレジストリー (registry.redhat.io) で認証を設定する必要があります。
コンテナーレジストリーは、AMQ Streams コンテナーイメージを Red Hat Ecosystem Catalog に保存するために使用されます。カタログには、S2I がサポートされる Kafka Connect ビルダーイメージが含まれます。OpenShift ビルドは、ソースコードおよびバイナリーと共にこのビルダーイメージをプルし、これを使用して新しいコンテナーイメージをビルドします。
Red Hat コンテナーレジストリーによる認証は、Kafka Connect S2I を使用する場合のみ必要です。他の AMQ Streams コンポーネントには必要ありません。
前提条件
- OpenShift Container Platform クラスターへアクセスできるクラスター管理者権限。
- Red Hat カスタマーポータルのアカウントのログイン詳細。付録A サブスクリプションの使用 を参照してください。
手順
必要であれば、管理者として OpenShift クラスターにログインします。
oc login --user system:admin --token=my-token --server=https://my-cluster.example.com:6443
Kafka Connect S2I クラスターが含まれるプロジェクトを開きます。
oc project CLUSTER-NAME注記Kafka Connect S2I クラスターがすでにデプロイされている可能性があります。
Red Hat カスタマーポータルアカウントを使用して
docker-registryシークレットを作成します。PULL-SECRET-NAMEは作成するシークレットの名前に置き換えます。oc create secret docker-registry PULL-SECRET-NAME \ --docker-server=registry.redhat.io \ --docker-username=CUSTOMER-PORTAL-USERNAME \ --docker-password=CUSTOMER-PORTAL-PASSWORD \ --docker-email=EMAIL-ADDRESS
以下の出力が表示されるはずです。
secret/PULL-SECRET-NAME created重要この
docker-registryシークレットを、registry.redhat.ioに対して認証されるすべての OpenShift プロジェクトに作成する必要があります。シークレットをサービスアカウントにリンクして、シークレットをイメージをプルするために使用します。サービスアカウント名は、OpenShift Pod が使用する名前と一致する必要があります。
oc secrets link SERVICE-ACCOUNT-NAME PULL-SECRET-NAME --for=pull
たとえば、
defaultサービスアカウントとmy-secretという名前のシークレットを使用します。oc secrets link default my-secret --for=pull
シークレットを
builderサービスアカウントにリンクし、ビルドイメージをプッシュおよびプルするためにシークレットを使用します。oc secrets link builder PULL-SECRET-NAME注記Red Hat のユーザー名とパスワードを使用してプルシークレットを作成したくない場合は、レジストリーサービスアカウントを使用して認証トークンを作成できます。
その他のリソース
- 「OpenShift ビルドおよび S2I (Source-to-Image) を使用したコンテナーイメージの作成」
- Red Hat コンテナーレジストリーの認証 (Red Hat ナレッジベース)
- Red Hat カスタマーポータルのレジストリーサービスアカウント
3.4. コンテナーイメージを独自のレジストリーにプッシュ
AMQ Streams のコンテナーイメージは Red Hat Ecosystem Catalog にあります。AMQ Streams によって提供されるインストール YAML ファイルは、直接 Red Hat Ecosystem Catalog からイメージをプルします。
Red Hat Ecosystem Catalog にアクセスできない場合や独自のコンテナーリポジトリーを使用する場合は以下を行います。
- リストにある すべての コンテナーイメージをプルします。
- 独自のレジストリーにプッシュします。
- インストール YAML ファイルのイメージ名を更新します。
リリースに対してサポートされる各 Kafka バージョンには別のイメージがあります。
| コンテナーイメージ | namespace/リポジトリー | 説明 |
|---|---|---|
| Kafka |
| 次を含む、Kafka を実行するための AMQ Streams イメージ。
|
| Operator |
| Operator を実行するための AMQ Streams イメージ。
|
| Kafka Bridge |
| AMQ Streams Kafka Bridge を稼働するための AMQ Streams イメージ |
3.5. AMQ Streams の管理者の指名
AMQ Streams では、デプロイメントの設定にカスタムリソースが提供されます。デフォルトでは、これらのリソースを表示、作成、編集、および削除する権限は OpenShift クラスター管理者に制限されます。AMQ Streams には、このような権限を他のユーザーに割り当てするために使用する 2 つのクラスターロールがあります。
-
strimzi-viewロールを指定すると、ユーザーは AMQ Streams リソースを表示できます。 -
strimzi-adminロールを指定すると、ユーザーは AMQ Streams リソースを作成、編集、または削除することもできます。
これらのロールをインストールすると、これらの権限が自動的にデフォルトの OpenShift クラスターロールに集約 (追加) されます。strimzi-view は view ロールに集約され、strimzi-admin は edit および admin ロールに集約されます。集約により、これらのロールを同様の権限を持つユーザーに割り当てする必要がない可能性があります。
以下の手順では、クラスター管理者でないユーザーが AMQ Streams リソースを管理できるようにする strimzi-admin ロールの割り当て方法を説明します。
システム管理者は、Cluster Operator のデプロイ後に AMQ Streams の管理者を指名できます。
前提条件
- Cluster Operator でデプロイとデプロイされた CRD (カスタムリソース定義) を管理する AMQ Streams の CRD リソースおよび RBAC (ロールベースアクセス制御) リソースが必要です。
手順
OpenShift で
strimzi-viewおよびstrimzi-adminクラスターロールを作成します。oc create -f install/strimzi-admin
必要な場合は、ユーザーに必要なアクセス権限を付与するロールを割り当てます。
oc create clusterrolebinding strimzi-admin --clusterrole=strimzi-admin --user=user1 --user=user2