Object Storage バケットを使用せずにVPCクラスターを作成する

仮想プライベートクラウド

内部イメージレジストリのバックエンドとして IBM Cloud Object Storage バケットを使用せずに、VPC上に Red Hat OpenShift on IBM Cloud クラスターを作成します。 IBM の「Financial Services Cloud 」要件を満たす必要がある環境では、 IBM Cloud Object Storage インスタンスを使用せずにクラスターを作成し、 IBM Cloud Container Registry から直接コンテナイメージを取得することができます。 クラスタの作成時に IBM Cloud Object Storage インスタンスが指定されていない場合、内部レジストリは一時的な emptyDir ストレージを使用します。これにより、内部レジストリではなく集中型イメージ管理に依存するFS Cloudの標準に準拠したクラスタ運用が保証されます。

対象読者

このチュートリアルは、 IBM のFinancial Services Cloud要件を満たす必要がある環境において、VPCインフラストラクチャ上に Red Hat OpenShift on IBM Cloud クラスターを構築するクラスター管理者を対象としています。 これは、クラスタ内部のレジストリではなく、 IBM Cloud Container Registry を主要なイメージレジストリとして使用する必要があるチームを対象としています。

目標

このチュートリアルでは、 IBM のFinancial Services Cloudの標準に準拠し、 IBM Cloud Object Storage インスタンスを設定せずに、 Red Hat OpenShift on IBM Cloud のVPCクラスターを作成します。 このクラスタの内部イメージレジストリでは、一時的な emptyDir ストレージが使用されており、イメージは IBM Cloud Container Registry を通じて一元的に管理されています。

ご提供内容

このチュートリアルでは、以下のリソースを作成します。 チュートリアル終了後にこれらのリソースを保持したくない場合は、これらを削除するためのオプションの手順があります。

  • COSをバックエンドにしない内部レジストリを持つ、VPC上の Red Hat OpenShift on IBM Cloud クラスター
  • 管理用途向けに設定されたクラスタへのアクセス

開始前に

クラスタを作成する前に、以下の前提条件となる手順を完了してください。

IBM Cloud Object Storage インスタンスを省略する決定は、取り消すことができません。 クラスタを作成した後は、COSをバックエンドとする内部レジストリを追加または削除することはできません。 要件が変更され、永続的な内部レジストリストレージが必要になった場合は、新しいクラスターを作成し、作成時にCOSインスタンスを指定する必要があります。

許可
アカウント所有者である場合は、クラスターを作成するために必要な権限をすでに持っているため、次の手順に進むことができます。 その他の場合は、アカウント所有者に、API キーのセットアップと IBM Cloud IAM での最小限のユーザー権限の割り当てを依頼してください。
コマンド行ツール
以下の手順に従って、ローカルのコマンドライン環境を設定してください。
  1. IBM Cloud CLI(ibmcloud )をインストールしてください
  2. Red Hat OpenShift on IBM Cloud プラグインをインストールします。
    ibmcloud plugin install kubernetes-service
    ```
3. Red Hat OpenShift CLI(`oc` )をインストールしてください。手順については、「 [OpenShift CLIのインストール](https://docs.redhat.com/en/documentation/openshift_container_platform/4.17/html/cli_tools/openshift-cli-oc#installing-openshift-cli){: external} 」を参照してください。

VPC インフラストラクチャー
クラスターを作成する前に、既存のVPCとサブネットが用意されている必要があります。 これらを作成するには、「 VPC およびサブネットの作成 」を参照してください。

クラスタを作成する

IBM Cloud Object Storage インスタンスを指定せずに、VPC上に Red Hat OpenShift on IBM Cloud クラスターを作成します。 COSインスタンスが指定されていない場合、内部イメージレジストリは emptyDir ストレージをバックエンドとして使用します。

クラスタ作成コマンドから --cos-instance オプションを省略すると、内部レジストリは IBM Cloud Object Storage の代わりに emptyDir ストレージを使用します。 emptyDir ストレージは一時的なものであり、image-registry ポッドが再起動または再スケジューリングされると、レジストリに保存されたデータは失われます。 この構成は、内部レジストリに依存する本番環境での利用には適していません。 将来、永続的な内部レジストリが必要になった場合は、クラスター作成後に IBM Cloud Object Storage バケットを設定することができます。 詳細については、「 内部イメージレジストリを IBM Cloud Object Storage にバックアップする 」を参照してください。

  1. クラスターを作成したい IBM Cloud アカウント、リソースグループ、およびリージョンにログインします。 フェデレーテッドIDをお持ちの場合は、 --sso オプションを指定してください。

    ibmcloud login -r REGION [-g RESOURCE_GROUP] [--sso]
    
  2. クラスターを作成します。 プレースホルダーの値を、ご自身のクラスター名、ゾーン、 Red Hat OpenShift のバージョン、ワーカーノードのフレーバー、VPC ID、およびサブネットIDに置き換えてください。

    ibmcloud oc cluster create vpc-gen2 \
      --name <cluster-name> \
      --zone <zone> \
      --version <openshift-version> \
      --flavor <worker-flavor> \
      --workers <number-of-workers> \
      --vpc-id <vpc-id> \
      --subnet-id <subnet-id>
    

    このコマンドには、 --cos-instance オプションが含まれていないことに注意してください。 このオプションを省略することで、内部レジストリが emptyDir ストレージを使用するように設定されます。

  3. クラスタのプロビジョニングが完了するまでお待ちください。 この処理には20~30分ほどかかる場合があります。 「 State 」フィールドに「 normal 」と表示されるまで、次のコマンドを実行してクラスタの状態を監視してください。

    ibmcloud oc cluster get --cluster CLUSTER_NAME
    

クラスタへのアクセスを設定する

クラスタが稼働したら、クラスタ構成をダウンロードして、 oc CLIへのアクセスを設定してください。

  1. クラスタ設定ファイルをダウンロードし、 KUBECONFIG という環境変数を設定してください。
    ibmcloud oc cluster config --cluster CLUSTER_NAME --admin
    
  2. クラスタに接続できることを確認してください。
    oc get nodes
    
    すべてのノードの「 STATUS 」が「 Ready 」と表示される必要があります。

イメージレジストリの設定を確認する

内部イメージレジストリが、想定どおり emptyDir ストレージを使用していることを確認してください。

  1. イメージレジストリの展開状況を確認してください。
    oc get deployment -n openshift-image-registry
    
  2. イメージレジストリの設定で、ストレージの種類を確認してください。 出力では、「 storage 」フィールドに「 emptyDir: {} 」と表示されるはずです。
    oc get configs.imageregistry.operator.openshift.io cluster -o yaml
    

次のステップ

クラスターは現在、 emptyDir を基盤とする内部レジストリを使用して稼働しています。 IBM Cloud Container Registry を使用すると、画像のプッシュやプルを行うことができます。