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 サブスクリプションの使用 を参照してください。

手順

  1. 必要であれば、管理者として OpenShift クラスターにログインします。

    oc login --user system:admin --token=my-token --server=https://my-cluster.example.com:6443
  2. Kafka Connect S2I クラスターが含まれるプロジェクトを開きます。

    oc project CLUSTER-NAME
    注記

    Kafka Connect S2I クラスターがすでにデプロイされている可能性があります。

  3. 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 プロジェクトに作成する必要があります。

  4. シークレットをサービスアカウントにリンクして、シークレットをイメージをプルするために使用します。サービスアカウント名は、OpenShift Pod が使用する名前と一致する必要があります。

    oc secrets link SERVICE-ACCOUNT-NAME PULL-SECRET-NAME --for=pull

    たとえば、デフォルトのサービスアカウントmy-secret という名前のシークレットを使用します。

    oc secrets link default my-secret --for=pull
  5. シークレットを builder サービスアカウントにリンクし、ビルドイメージをプッシュおよびプルするためにシークレットを使用します。

    oc secrets link builder PULL-SECRET-NAME
    注記

    Red Hat のユーザー名とパスワードを使用してプルシークレットを作成したくない場合は、レジストリーサービスアカウントを使用して認証トークンを作成できます。