Satellite クラスターの内部イメージ・レジストリーのセットアップ
Satellite
デフォルトでは、Satellite クラスターでは内部レジストリーは実行されません。内部レジストリー用のバッキング・ストレージがセットアップされていないからです。 以下のチュートリアルを完了して、 IBM Cloud Object Storage をバッキング・ストレージとして Satellite クラスターに内部イメージ・レジストリーを構成します。
このチュートリアルでは、 IBM Cloud Object Storageを使用してイメージ・レジストリーをセットアップする方法について説明します。 ただし、ワーカー・ノードで非永続ストレージを使用することもできます。 詳しくは、 ワーカー・ノードの空のディレクトリーへのイメージの保管 を参照してください。
要件を満たす IBM Cloud Object Storage インスタンスを作成します。
- IBM Cloud コンソールで、 「リソース」 メニューにナビゲートし、ストレージ・インスタンスをリストします。
- Object Storage インスタンスを識別し、 「ロケーション」 列を見つけます。 インスタンスが IBM Cloudで作成された場合、そのロケーションは 「グローバル」 としてリストされます。
- 要件を満たすグローバル・インスタンスがない場合は、以下の手順に従って作成します。
- IBM Cloud Object Storageで、 「インスタンスの作成」 をクリックします。
- 「インフラストラクチャーの選択」 で、 IBM Cloud オプションを選択します。
- 価格プランとサービス名を選択します。
- Satellite コンポーネントが保管されているリソース・グループを選択します。
- 「作成」 をクリックします。 インスタンスのプロビジョンには数分かかる場合があることに注意してください。
イメージ・レジストリーに使用するバケットを作成します
イメージ・レジストリーのセットアップ時に使用するバケットを作成します。 バケットは、地域の回復力を使用して構成する必要があります。 バケットの作成について詳しくは、 IBM Cloud Object Storageのセットアップ を参照してください。
- Object Storage のインスタンスをクリックします。
- 「バケットの作成」 をクリックします。
- 「バケットのカスタマイズ (Customize your bucket)」 のオプションを選択します。
- 「回復力」 で、 「地域」 を選択します。
- 「ロケーション」 ドロップダウン・メニューから、ロケーションの管理元に最も近い地域を選択します。 例えば、ロケーションが
wdc(ワシントン DC) から管理されている場合は、us-east地域を選択します。 Satellite ロケーションの管理元を確認するには、CLI でibmcloud sat location lsを実行します。 - 「ストレージ・クラス」 で、 「標準」 を選択します。
- 残りのカテゴリーを設定に合わせて構成します。
- 「バケットの作成」 をクリックします。
- クラスターが Object Storage インスタンスと通信できるようにするサービス資格情報を作成します。
- ナビゲーション・ペインで、 「サービス資格情報」 をクリックしてから、 「新規資格情報」 をクリックします。
- 新規資格情報の名前を入力します。
- ドロップダウン・メニューから、 「ライター」 役割を選択します。
- 「拡張オプション」 をクリックし、 「HMAC 資格情報を含める」 オプションを選択します。
- 追加 をクリックします。
- 「サービス資格情報」 テーブルで、新しい資格情報を展開します。
access_key_idおよびsecret_access_key_idをメモします。 これらの資格情報を他のユーザーと共有しないでください。 保存する資格情報の例。"cos_hmac_keys": { "access_key_id": "1111111a1111111a11aa1a111111111a11aa1a111a11a1a1", "secret_access_key": "222222b222222b22bb2b22222222b22bb2b222b22b2b2" }
COS サービス資格情報を含むシークレットを作成します
CLI で、作成して保存したサービス資格情報を使用してシークレットを作成します。
- アカウントにログインします。 該当する場合は、適切なリソース・グループをターゲットにします。 クラスターのコンテキストを設定します。
- シークレットを作成します。
oc create secret generic image-registry-private-configuration-user --from-literal=REGISTRY_STORAGE_S3_ACCESSKEY=<access_key_id> --from-literal=REGISTRY_STORAGE_S3_SECRETKEY=<secret_access_key> --namespace openshift-image-registry
Red Hat OpenShift レジストリー・オペレーター CRD の更新
- Red Hat OpenShift Register オペレーターの管理状態を変更します。
oc patch configs.imageregistry.operator.openshift.io cluster --type merge --patch '{"spec":{"managementState":"Managed"}}' - 構成ストレージ属性を編集して、イメージを Object Storage バケットに保管します。
- Satellite ロケーションのリージョン・リンク・エンドポイントを見つけて保存します。 出力では、エンドポイントが 「アドレス」 列の下にリストされます。
出力例ibmcloud sat endpoint ls --location <location_name> | grep satellite-cosRegionalID Name Destination Type Address cavvku1p1h1gcfgk1kn1_uwokw satellite-cosRegional-cavvku1p1h1gcfgk1kn1 cloud TLS i11aa11a1a1a11a11-1a11a1aaa1a1a1a1a-c000.us-east.satellite.appdomian.cloud:11111 - CLI でファイル・エディターを開きます。
oc edit configs.imageregistry.operator.openshift.io/cluster - 編集する以下のセクションを見つけます。
storage: emptyDir: {} managementState: Managed storageManaged: true emptyDir: {}をバケット情報とロケーション・エンドポイントに置き換えます。バケットおよびロケーション情報を追加した後のセクションの例。s3: bucket: <bucket_name> region: <bucket_region> regionEndpoint: <location_link_endpoint> virtualHostedStyle: falsestorage: managementState: Managed s3: bucket: my_bucket region: us-east regionEndpoint: https://i11aa11a1a1a11a11-1a11a1aaa1a1a1a1a-c000.us-east.satellite.appdomian.cloud:11111 virtualHostedStyle: false storageManaged: true- 変更を保存して適用します。
- Satellite ロケーションのリージョン・リンク・エンドポイントを見つけて保存します。 出力では、エンドポイントが 「アドレス」 列の下にリストされます。
変更の確認
openshift-image-registry 名前空間内の image-registry- で始まるポッドを確認して、イメージ・レジストリーが構成されていることを確認します。
-
次のコマンドを実行します。
oc get pod -n openshift-image-registry -
出力を確認し、レジストリー・ポッドが
Runningであることを確認します。出力例
NAME READY STATUS RESTARTS AGE image-registry-63p54b8add-vkjju 1/1 Running 0 16m