検索

8.9. ネットワークが制限された環境での IBM Cloud へのクラスターのインストール

download PDF

OpenShift Container Platform 4.16 では、IBM Cloud® 上の既存の Virtual Private Cloud (VPC) にアクセスできるインストールリリースコンテンツの内部ミラーを作成することで、制限されたネットワーク内にクラスターをインストールできます。

8.9.1. 前提条件

  • OpenShift Container Platform のインストールおよび更新 プロセスの詳細を確認した。
  • クラスターをホストするように IBM Cloud アカウントを設定 している。
  • ネットワークが制限された環境およびインターネットにアクセスできるコンテナーイメージレジストリーがある。コンテナーイメージレジストリーは、OpenShift イメージレジストリーの内容をミラーリングし、インストールメディアを含むものである必要があります。詳細は、oc-mirror プラグインを使用した非接続インストールのイメージのミラーリング を参照してください。
  • IBM Cloud® 上に以下の要件を満たす既存の VPC がある。

    • VPC に、ミラーレジストリーが含まれているか、他の場所でホストされているミラーレジストリーにアクセスするためのファイアウォールルールまたはピアリング接続がある。
    • VPC が、パブリックエンドポイントを使用して IBM Cloud® サービスエンドポイントにアクセスできる。ネットワーク制限によってパブリックサービスエンドポイントへのアクセスが制限されている場合は、エンドポイントのサービスを評価して、利用可能な代替エンドポイントを探してください。詳細は、IBM サービスエンドポイントへのアクセス を参照してください。

    インストールプログラムによってデフォルトでプロビジョニングされる VPC は使用できません。

  • IBM Cloud® Virtual Private Endpoints を使用するようにエンドポイントゲートウェイを設定することを計画している場合は、以下の要件を考慮してください。

    • エンドポイントゲートウェイのサポートは、現在 us-east および us-south リージョンに限定されています。
    • VPC が、エンドポイントゲートウェイとの間のトラフィックを許可する必要があります。VPC のデフォルトのセキュリティーグループまたは新しいセキュリティーグループを使用して、ポート 443 でトラフィックを許可できます。詳細は、エンドポイントゲートウェイのトラフィックの許可 を参照してください。
  • ファイアウォールを使用する場合は、クラスターがアクセスを必要とするサイトを許可するようにファイアウォールを設定する必要がある。
  • クラスターをインストールする前に、ccoctl ユーティリティーを設定している。詳細は、IBM Cloud VPC 用の IAM の設定 を参照してください。

8.9.2. ネットワークが制限された環境でのインストールについて

OpenShift Container Platform 4.16 では、ソフトウェアコンポーネントを取得するためにインターネットへのアクティブな接続を必要としないインストールを実行できます。ネットワークが制限された環境のインストールは、クラスターのインストール先となるクラウドプラットフォームに応じて、installer-provisioned infrastructure または user-provisioned infrastructure を使用して実行できます。

8.9.2.1. 必要なインターネットアクセスとインストールホスト

インストールは、インターネットと制限されたネットワークの両方にアクセスできる踏み台ホストまたはポータブルデバイスを使用して実行します。インターネットにアクセスできるホストを使用して、以下を行う必要があります。

  • インストールプログラム、OpenShift CLI (oc)、および CCO ユーティリティー (ccoctl) をダウンロードします。
  • インストールプログラムを使用して Red Hat Enterprise Linux CoreOS (RHCOS) イメージを見つけ、インストール設定ファイルを作成します。
  • oc を使用して、CCO コンテナーイメージから ccoctl を抽出します。
  • oc および ccoctl を使用して、IBM Cloud® 用に IAM を設定します。

8.9.2.2. ミラーレジストリーへのアクセス

ネットワークが制限されたインストールを完了するには、OpenShift イメージレジストリーのコンテンツをミラーリングし、インストールメディアを含むレジストリーを作成する必要があります。

このレジストリーは、ネットワークが制限された環境とインターネットの両方にアクセスできるミラーホスト上に作成することも、組織のセキュリティー制限に対応する他の方法を使用して作成することもできます。

非接続インストールのイメージをミラーリングする方法の詳細は、「関連情報」を参照してください。

8.9.2.3. IBM サービスエンドポイントへのアクセス

インストールプログラムは、以下の IBM Cloud® サービスエンドポイントへのアクセスを必要とします。

  • Cloud Object Storage
  • DNS Services
  • Global Search
  • Global Tagging
  • Identity Services
  • Resource Controller
  • Resource Manager
  • VPC
注記

インストールプロセス中に IBM® Key Protect for IBM Cloud® のルート鍵を指定する場合は、Key Protect のサービスエンドポイントも必要です。

デフォルトでは、サービスへのアクセスにパブリックエンドポイントが使用されます。ネットワーク制限によってパブリックサービスエンドポイントへのアクセスが制限されている場合は、デフォルトの動作をオーバーライドできます。

クラスターをデプロイする前に、インストール設定ファイル (install-config.yaml) を更新して、代替サービスエンドポイントの URI を指定できます。使用方法の詳細は、「関連情報」を参照してください。

8.9.2.4. その他の制限

ネットワークが制限された環境のクラスターには、以下の追加の制限および制約があります。

  • ClusterVersion ステータスには Unable to retrieve available updates エラーが含まれます。
  • デフォルトで、開発者カタログのコンテンツは、必要とされるイメージストリームタグにアクセスできないために使用できません。

8.9.3. カスタム VPC の使用について

OpenShift Container Platform 4.16 では、既存の IBM® Virtual Private Cloud (VPC) のサブネットにクラスターをデプロイできます。OpenShift Container Platform を既存の VPC にデプロイすると、新規アカウントの制限を回避したり、会社のガイドラインによる運用上の制約をより容易に遵守することが可能になる場合があります。VPC を作成するために必要なインフラストラクチャーの作成パーミッションを取得できない場合は、このインストールオプションを使用します。

インストールプログラムは既存のサブネットにある他のコンポーネントを認識できないため、サブネットの CIDR などを選択できません。クラスターをインストールするサブネットのネットワークを設定する必要があります。

8.9.3.1. VPC を使用するための要件

クラスターをインストールする前に、既存の VPC およびそのサブネットを適切に設定する必要があります。インストールプログラムでは、次のコンポーネントは作成されません。

  • NAT ゲートウェイ
  • サブネット
  • ルートテーブル
  • VPC ネットワーク

インストールプログラムには、以下の機能はありません。

  • 使用するクラスターのネットワーク範囲を細分化します。
  • サブネットのルートテーブルを設定します。
  • DHCP などの VPC オプションの設定
注記

インストールプログラムでは、クラウド提供の DNS サーバーを使用する必要があります。カスタム DNS サーバーの使用はサポートされていないため、インストールが失敗します。

8.9.3.2. VPC 検証

VPC とすべてのサブネットは、既存のリソースグループ内にある必要があります。クラスターは既存の VPC にデプロイされます。

インストールの一環として、install-config.yaml ファイルで以下を指定します。

  • VPC とサブネットを含む既存のリソースグループの名前 (networkResourceGroupName)
  • 既存の VPC の名前 (vpcName)
  • コントロールプレーンマシンおよびコンピュートマシン用に作成したサブネット (controlPlaneSubnets および computeSubnets)
注記

追加の installer-provisioned クラスターリソースは、別のリソースグループ (resourceGroupName) にデプロイされます。クラスターをインストールする前に、このリソースグループを指定できます。定義されていない場合は、クラスターに新しいリソースグループが作成されます。

指定するサブネットが適切であることを確認するには、インストールプログラムが以下を確認します。

  • 指定したサブネットがすべて存在します。
  • リージョン内の各アベイラビリティーゾーンに、以下を指定します。

    • コントロールプレーンマシンの 1 つのサブネット。
    • コンピュートマシン用に 1 つのサブネット。
  • 指定したマシン CIDR にはコンピュートマシンおよびコントロールプレーンマシンのサブネットが含まれます。
注記

サブネット ID はサポートされていません。

8.9.3.3. クラスター間の分離

OpenShift Container Platform を既存のネットワークにデプロイする場合、クラスターサービスの分離の規模は以下の方法で縮小されます。

  • 複数の OpenShift Container Platform クラスターを同じ VPC にインストールできます。
  • ICMP Ingress はネットワーク全体で許可されます。
  • TCP ポート 22 Ingress (SSH) はネットワーク全体に対して許可されます。
  • コントロールプレーンの TCP 6443 Ingress (Kubernetes API) はネットワーク全体に対して許可されます。
  • コントロールプレーンの TCP 22623 Ingress (MCS) はネットワーク全体に対して許可されます。

8.9.3.4. エンドポイントゲートウェイのトラフィックの許可

IBM Cloud® Virtual Private エンドポイントを使用する場合は、エンドポイントゲートウェイとの間のトラフィックを許可するように Virtual Private Cloud (VPC) を設定する必要があります。

VPC のデフォルトのセキュリティーグループは、エンドポイントゲートウェイへのすべての送信トラフィックを許可するように設定されています。したがって、VPC とエンドポイントゲートウェイ間のトラフィックを許可する最も簡単な方法は、ポート 443 で受信トラフィックを許可するようにデフォルトのセキュリティーグループを変更することです。

注記

新しいセキュリティーグループを設定する場合は、受信トラフィックと送信トラフィックの両方を許可するようにセキュリティーグループを設定する必要があります。

前提条件

  • IBM Cloud® コマンドラインインターフェイスユーティリティー (ibmcloud) がインストールされている。

手順

  1. 次のコマンドを実行して、デフォルトのセキュリティーグループの識別子を取得します。

    $ DEFAULT_SG=$(ibmcloud is vpc <your_vpc_name> --output JSON | jq -r '.default_security_group.id')
  2. 次のコマンドを実行して、ポート 443 で受信トラフィックを許可するルールを追加します。

    $ ibmcloud is security-group-rule-add $DEFAULT_SG inbound tcp --remote 0.0.0.0/0 --port-min 443 --port-max 443
注記

エンドポイントゲートウェイがこのセキュリティーグループを使用するように設定されていることを確認してください。

8.9.4. クラスターノードの SSH アクセス用のキーペアの生成

OpenShift Container Platform をインストールする際に、SSH パブリックキーをインストールプログラムに指定できます。キーは、Ignition 設定ファイルを介して Red Hat Enterprise Linux CoreOS (RHCOS) ノードに渡され、ノードへの SSH アクセスを認証するために使用されます。このキーは各ノードの core ユーザーの ~/.ssh/authorized_keys リストに追加され、パスワードなしの認証が可能になります。

キーがノードに渡されると、キーペアを使用して RHCOS ノードにユーザー core として SSH を実行できます。SSH 経由でノードにアクセスするには、秘密鍵のアイデンティティーをローカルユーザーの SSH で管理する必要があります。

インストールのデバッグまたは障害復旧を実行するためにクラスターノードに対して SSH を実行する場合は、インストールプロセスの間に SSH 公開鍵を指定する必要があります。./openshift-install gather コマンドでは、SSH 公開鍵がクラスターノードに配置されている必要もあります。

重要

障害復旧およびデバッグが必要な実稼働環境では、この手順を省略しないでください。

注記

AWS キーペア などのプラットフォームに固有の方法で設定したキーではなく、ローカルキーを使用する必要があります。

手順

  1. クラスターノードへの認証に使用するローカルマシンに既存の SSH キーペアがない場合は、これを作成します。たとえば、Linux オペレーティングシステムを使用するコンピューターで以下のコマンドを実行します。

    $ ssh-keygen -t ed25519 -N '' -f <path>/<file_name> 1
    1
    新しい SSH キーのパスとファイル名 (~/.ssh/id_ed25519 など) を指定します。既存のキーペアがある場合は、公開鍵が ~/.ssh ディレクトリーにあることを確認します。
    注記

    x86_64ppc64le、および s390x アーキテクチャーのみで FIPS 140-2/140-3 検証のために NIST に提出された RHEL 暗号化ライブラリーを使用する OpenShift Container Platform クラスターをインストールする予定がある場合は、ed25519 アルゴリズムを使用するキーを作成しないでください。代わりに、rsa アルゴリズムまたは ecdsa アルゴリズムを使用するキーを作成します。

  2. 公開 SSH キーを表示します。

    $ cat <path>/<file_name>.pub

    たとえば、次のコマンドを実行して ~/.ssh/id_ed25519.pub 公開鍵を表示します。

    $ cat ~/.ssh/id_ed25519.pub
  3. ローカルユーザーの SSH エージェントに SSH 秘密鍵 ID が追加されていない場合は、それを追加します。キーの SSH エージェント管理は、クラスターノードへのパスワードなしの SSH 認証、または ./openshift-install gather コマンドを使用する場合は必要になります。

    注記

    一部のディストリビューションでは、~/.ssh/id_rsa および ~/.ssh/id_dsa などのデフォルトの SSH 秘密鍵のアイデンティティーは自動的に管理されます。

    1. ssh-agent プロセスがローカルユーザーに対して実行されていない場合は、バックグラウンドタスクとして開始します。

      $ eval "$(ssh-agent -s)"

      出力例

      Agent pid 31874

      注記

      クラスターが FIPS モードにある場合は、FIPS 準拠のアルゴリズムのみを使用して SSH キーを生成します。鍵は RSA または ECDSA のいずれかである必要があります。

  4. SSH プライベートキーを ssh-agent に追加します。

    $ ssh-add <path>/<file_name> 1
    1
    ~/.ssh/id_ed25519 などの、SSH プライベートキーのパスおよびファイル名を指定します。

    出力例

    Identity added: /home/<you>/<path>/<file_name> (<computer_name>)

次のステップ

  • OpenShift Container Platform をインストールする際に、SSH パブリックキーをインストールプログラムに指定します。

8.9.5. API キーのエクスポート

作成した API キーをグローバル変数として設定する必要があります。インストールプログラムは、起動時に変数を取り込み、API キーを設定します。

前提条件

  • IBM Cloud® アカウント用にユーザー API キーまたはサービス ID API キーのいずれかを作成している。

手順

  • アカウントの API キーをグローバル変数としてエクスポートします。

    $ export IC_API_KEY=<api_key>
重要

変数名は指定どおりに正確に設定する必要があります。インストールプログラムは、起動時に変数名が存在することを想定しています。

8.9.6. RHCOS クラスターイメージのダウンロード

インストールプログラムは、クラスターをインストールするために Red Hat Enterprise Linux CoreOS (RHCOS) イメージを必要とします。必要に応じて、デプロイ前に Red Hat Enterprise Linux CoreOS (RHCOS) をダウンロードすると、クラスターの作成時にインターネットにアクセスする必要がなくなります。

インストールプログラムを使用して、Red Hat Enterprise Linux CoreOS (RHCOS) イメージを見つけてダウンロードします。

前提条件

  • インストールプログラムを実行しているホストがインターネットにアクセスできる。

手順

  1. インストールプログラムが含まれるディレクトリーに切り替え、以下のコマンドを実行します。

    $ ./openshift-install coreos print-stream-json
  2. コマンドの出力を使用して、IBM Cloud® イメージの場所を見つけます。

    .Example output
    ----
      "release": "415.92.202311241643-0",
      "formats": {
        "qcow2.gz": {
          "disk": {
            "location": "https://rhcos.mirror.openshift.com/art/storage/prod/streams/4.15-9.2/builds/415.92.202311241643-0/x86_64/rhcos-415.92.202311241643-0-ibmcloud.x86_64.qcow2.gz",
            "sha256": "6b562dee8431bec3b93adeac1cfefcd5e812d41e3b7d78d3e28319870ffc9eae",
            "uncompressed-sha256": "5a0f9479505e525a30367b6a6a6547c86a8f03136f453c1da035f3aa5daa8bc9"
    ----
  3. イメージアーカイブをダウンロードして展開します。インストールプログラムがクラスターの作成に使用するホスト上でイメージを使用できるようにします。

8.9.7. インストール設定ファイルの手動作成

クラスターをインストールするには、インストール設定ファイルを手動で作成する必要があります。

前提条件

  • OpenShift Container Platform インストールプログラムおよびクラスターのプルシークレットを取得しています。
  • レジストリーをミラーリングしたときに作成された imageContentSourcePolicy.yaml ファイルを用意する。
  • ミラーレジストリーの証明書の内容を取得している。

手順

  1. 必要なインストールアセットを保存するためのインストールディレクトリーを作成します。

    $ mkdir <installation_directory>
    重要

    ディレクトリーを作成する必要があります。ブートストラップ X.509 証明書などの一部のインストールアセットの有効期限は短く設定されているため、インストールディレクトリーを再利用することができません。別のクラスターインストールの個別のファイルを再利用する必要がある場合は、それらをディレクトリーにコピーすることができます。ただし、インストールアセットのファイル名はリリース間で変更される可能性があります。インストールファイルを以前のバージョンの OpenShift Container Platform からコピーする場合は注意してコピーを行ってください。

  2. 提供されるサンプルの install-config.yaml ファイルテンプレートをカスタマイズし、これを <installation_directory> に保存します。

    注記

    この設定ファイルの名前を install-config.yaml と付ける必要があります。

    サンプルテンプレートをカスタマイズするときは、ネットワークが制限された環境でのインストールに必要な情報を必ず指定してください。

    1. pullSecret の値を更新して、レジストリーの認証情報を追加します。

      pullSecret: '{"auths":{"<mirror_host_name>:5000": {"auth": "<credentials>","email": "you@example.com"}}}'

      <mirror_host_name> の場合、ミラーレジストリーの証明書で指定したレジストリードメイン名を指定し、<credentials> の場合は、ミラーレジストリーの base64 でエンコードされたユーザー名およびパスワードを指定します。

    2. additionalTrustBundle パラメーターおよび値を追加します。

      additionalTrustBundle: |
        -----BEGIN CERTIFICATE-----
        ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
        -----END CERTIFICATE-----

      この値は、ミラーレジストリーに使用した証明書ファイルの内容である必要があります。証明書ファイルは、既存の信頼できる認証局、またはミラーレジストリー用に生成した自己署名証明書のいずれかです。

    3. 親の platform.ibmcloud フィールドで、クラスターをインストールする VPC のネットワークとサブネットを定義します。

      vpcName: <existing_vpc>
      controlPlaneSubnets: <control_plane_subnet>
      computeSubnets: <compute_subnet>

      platform.ibmcloud.vpcName には、既存の IBM Cloud VPC の名前を指定します。platform.ibmcloud.controlPlaneSubnets および platform.ibmcloud.computeSubnets には、それぞれコントロールプレーンマシンおよびコンピュートマシンをデプロイする既存のサブネットを指定します。

    4. 次の YAML の抜粋のようなイメージコンテンツリソースを追加します。

      imageContentSources:
      - mirrors:
        - <mirror_host_name>:5000/<repo_name>/release
        source: quay.io/openshift-release-dev/ocp-release
      - mirrors:
        - <mirror_host_name>:5000/<repo_name>/release
        source: registry.redhat.io/ocp/release

      これらの値には、レジストリーをミラーリングしたときに作成された imageContentSourcePolicy.yaml ファイルを使用します。

    5. ネットワーク制限により、必要な IBM Cloud® サービスにアクセスするためのパブリックエンドポイントの使用が制限されている場合は、serviceEndpoints スタンザを platform.ibmcloud に追加して、代替サービスエンドポイントを指定します。

      注記

      指定できる代替サービスエンドポイントは、各サービスに 1 つだけです。

      代替サービスエンドポイントの使用例

      # ...
      serviceEndpoints:
        - name: IAM
          url: <iam_alternate_endpoint_url>
        - name: VPC
          url: <vpc_alternate_endpoint_url>
        - name: ResourceController
          url: <resource_controller_alternate_endpoint_url>
        - name: ResourceManager
          url: <resource_manager_alternate_endpoint_url>
        - name: DNSServices
          url: <dns_services_alternate_endpoint_url>
        - name: COS
          url: <cos_alternate_endpoint_url>
        - name: GlobalSearch
          url: <global_search_alternate_endpoint_url>
        - name: GlobalTagging
          url: <global_tagging_alternate_endpoint_url>
      # ...

    6. オプション: パブリッシュストラテジーを Internal に設定します。

      publish: Internal

      このオプションを設定すると、内部 Ingress コントローラーおよびプライベートロードバランサーを作成します。

      注記

      デフォルト値の External を使用する場合、IBM Cloud® Internet Services (CIS) のパブリックエンドポイントにネットワークがアクセスできる必要があります。CIS は Virtual Private Endpoints に対して有効ではありません。

  3. install-config.yaml ファイルをバックアップし、複数のクラスターをインストールするのに使用できるようにします。

    重要

    install-config.yaml ファイルは、インストールプロセスの次の手順で使用されます。この時点でこれをバックアップする必要があります。

8.9.7.1. インストール時のクラスター全体のプロキシーの設定

実稼働環境では、インターネットへの直接アクセスを拒否し、代わりに HTTP または HTTPS プロキシーを使用することができます。プロキシー設定を install-config.yaml ファイルで行うことにより、新規の OpenShift Container Platform クラスターをプロキシーを使用するように設定できます。

前提条件

  • 既存の install-config.yaml ファイルがある。
  • クラスターがアクセスする必要のあるサイトを確認済みで、それらのいずれかがプロキシーをバイパスする必要があるかどうかを判別している。デフォルトで、すべてのクラスター Egress トラフィック (クラスターをホストするクラウドに関するクラウドプロバイダー API に対する呼び出しを含む) はプロキシーされます。プロキシーを必要に応じてバイパスするために、サイトを Proxy オブジェクトの spec.noProxy フィールドに追加している。

    注記

    Proxy オブジェクトの status.noProxy フィールドには、インストール設定の networking.machineNetwork[].cidrnetworking.clusterNetwork[].cidr、および networking.serviceNetwork[] フィールドの値が設定されます。

    Amazon Web Services (AWS)、Google Cloud Platform (GCP)、Microsoft Azure、および Red Hat OpenStack Platform (RHOSP) へのインストールの場合、Proxy オブジェクトの status.noProxy フィールドには、インスタンスメタデータのエンドポイント (169.254.169.254) も設定されます。

手順

  1. install-config.yaml ファイルを編集し、プロキシー設定を追加します。以下に例を示します。

    apiVersion: v1
    baseDomain: my.domain.com
    proxy:
      httpProxy: http://<username>:<pswd>@<ip>:<port> 1
      httpsProxy: https://<username>:<pswd>@<ip>:<port> 2
      noProxy: example.com 3
    additionalTrustBundle: | 4
        -----BEGIN CERTIFICATE-----
        <MY_TRUSTED_CA_CERT>
        -----END CERTIFICATE-----
    additionalTrustBundlePolicy: <policy_to_add_additionalTrustBundle> 5
    1
    クラスター外の HTTP 接続を作成するために使用するプロキシー URL。URL スキームは http である必要があります。
    2
    クラスター外で HTTPS 接続を作成するために使用するプロキシー URL。
    3
    プロキシーから除外するための宛先ドメイン名、IP アドレス、または他のネットワーク CIDR のコンマ区切りのリスト。サブドメインのみと一致するように、ドメインの前に . を付けます。たとえば、.y.comx.y.com に一致しますが、y.com には一致しません。* を使用し、すべての宛先のプロキシーをバイパスします。
    4
    指定されている場合、インストールプログラムは HTTPS 接続のプロキシーに必要な 1 つ以上の追加の CA 証明書が含まれる user-ca-bundle という名前の設定マップを openshift-config namespace に生成します。次に Cluster Network Operator は、これらのコンテンツを Red Hat Enterprise Linux CoreOS (RHCOS) 信頼バンドルにマージする trusted-ca-bundle 設定マップを作成し、この設定マップは Proxy オブジェクトの trustedCA フィールドで参照されます。additionalTrustBundle フィールドは、プロキシーのアイデンティティー証明書が RHCOS 信頼バンドルからの認証局によって署名されない限り必要になります。
    5
    オプション: trustedCA フィールドの user-ca-bundle 設定マップを参照する Proxy オブジェクトの設定を決定するポリシー。許可される値は Proxyonly および Always です。Proxyonly を使用して、http/https プロキシーが設定されている場合にのみ user-ca-bundle 設定マップを参照します。Always を使用して、常に user-ca-bundle 設定マップを参照します。デフォルト値は Proxyonly です。
    注記

    インストールプログラムは、プロキシーの readinessEndpoints フィールドをサポートしません。

    注記

    インストーラーがタイムアウトした場合は、インストーラーの wait-for コマンドを使用してデプロイメントを再起動してからデプロイメントを完了します。以下に例を示します。

    $ ./openshift-install wait-for install-complete --log-level debug
  2. ファイルを保存し、OpenShift Container Platform のインストール時にこれを参照します。

インストールプログラムは、指定の install-config.yaml ファイルのプロキシー設定を使用する cluster という名前のクラスター全体のプロキシーを作成します。プロキシー設定が指定されていない場合、cluster Proxy オブジェクトが依然として作成されますが、これには spec がありません。

注記

cluster という名前の Proxy オブジェクトのみがサポートされ、追加のプロキシーを作成することはできません。

8.9.7.2. クラスターインストールの最小リソース要件

それぞれのクラスターマシンは、以下の最小要件を満たしている必要があります。

表8.18 最小リソース要件
マシンオペレーティングシステムvCPU仮想 RAMストレージ1 秒あたりの入出力 (IOPS)

ブートストラップ

RHCOS

4

16 GB

100 GB

300

コントロールプレーン

RHCOS

4

16 GB

100 GB

300

Compute

RHCOS

2

8 GB

100 GB

300

注記

OpenShift Container Platform バージョン 4.13 の時点で、RHCOS は RHEL バージョン 9.2 に基づいており、マイクロアーキテクチャーの要件を更新します。次のリストには、各アーキテクチャーに必要な最小限の命令セットアーキテクチャー (ISA) が含まれています。

  • x86-64 アーキテクチャーには x86-64-v2 ISA が必要
  • ARM64 アーキテクチャーには ARMv8.0-A ISA が必要
  • IBM Power アーキテクチャーには Power 9 ISA が必要
  • s390x アーキテクチャーには z14 ISA が必要

詳細は、RHEL アーキテクチャー を参照してください。

プラットフォームのインスタンスタイプがクラスターマシンの最小要件を満たす場合、これは OpenShift Container Platform で使用することがサポートされます。

8.9.7.3. IBM Cloud のテスト済みインスタンスタイプ

次の IBM Cloud® インスタンスタイプは、OpenShift Container Platform でテストされています。

例8.5 マシンのシリーズ

  • c4.*
  • c5.*
  • c5a.*
  • i3.*
  • m4.*
  • m5.*
  • m5a.*
  • m6a.*
  • m6i.*
  • r4.*
  • r5.*
  • r5a.*
  • r6i.*
  • t3.*
  • t3a.*

8.9.7.4. IBM Cloud 用にカスタマイズされた install-config.yaml ファイルのサンプル

install-config.yaml ファイルをカスタマイズして、OpenShift Container Platform クラスターのプラットフォームに関する詳細を指定するか、必要なパラメーターの値を変更することができます。

重要

このサンプルの YAML ファイルは参照用にのみ提供されます。インストールプログラムを使用して install-config.yaml ファイルを取得し、変更する必要があります。

apiVersion: v1
baseDomain: example.com 1
controlPlane: 2 3
  hyperthreading: Enabled 4
  name: master
  platform:
    ibm-cloud: {}
  replicas: 3
compute: 5 6
- hyperthreading: Enabled 7
  name: worker
  platform:
    ibmcloud: {}
  replicas: 3
metadata:
  name: test-cluster 8
networking:
  clusterNetwork:
  - cidr: 10.128.0.0/14 9
    hostPrefix: 23
  machineNetwork:
  - cidr: 10.0.0.0/16 10
  networkType: OVNKubernetes 11
  serviceNetwork:
  - 172.30.0.0/16
platform:
  ibmcloud:
    region: us-east 12
    resourceGroupName: us-east-example-cluster-rg 13
    serviceEndpoints: 14
      - name: IAM
        url: https://private.us-east.iam.cloud.ibm.com
      - name: VPC
        url: https://us-east.private.iaas.cloud.ibm.com/v1
      - name: ResourceController
        url: https://private.us-east.resource-controller.cloud.ibm.com
      - name: ResourceManager
        url: https://private.us-east.resource-controller.cloud.ibm.com
      - name: DNSServices
        url: https://api.private.dns-svcs.cloud.ibm.com/v1
      - name: COS
        url: https://s3.direct.us-east.cloud-object-storage.appdomain.cloud
      - name: GlobalSearch
        url: https://api.private.global-search-tagging.cloud.ibm.com
      - name: GlobalTagging
        url: https://tags.private.global-search-tagging.cloud.ibm.com
    networkResourceGroupName: us-east-example-existing-network-rg 15
    vpcName: us-east-example-network-1 16
    controlPlaneSubnets: 17
      - us-east-example-network-1-cp-us-east-1
      - us-east-example-network-1-cp-us-east-2
      - us-east-example-network-1-cp-us-east-3
    computeSubnets: 18
      - us-east-example-network-1-compute-us-east-1
      - us-east-example-network-1-compute-us-east-2
      - us-east-example-network-1-compute-us-east-3
credentialsMode: Manual
pullSecret: '{"auths":{"<local_registry>": {"auth": "<credentials>","email": "you@example.com"}}}' 19
fips: false 20
sshKey: ssh-ed25519 AAAA... 21
additionalTrustBundle: | 22
    -----BEGIN CERTIFICATE-----
    <MY_TRUSTED_CA_CERT>
    -----END CERTIFICATE-----
imageContentSources: 23
- mirrors:
  - <local_registry>/<local_repository_name>/release
  source: quay.io/openshift-release-dev/ocp-release
- mirrors:
  - <local_registry>/<local_repository_name>/release
  source: quay.io/openshift-release-dev/ocp-v4.0-art-dev
1 8 12
必須。
2 5
これらのパラメーターおよび値を指定しない場合、インストールプログラムはデフォルトの値を指定します。
3 6
controlPlane セクションは単一マッピングですが、compute セクションはマッピングのシーケンスになります。複数の異なるデータ構造の要件を満たすには、compute セクションの最初の行はハイフン - で始め、controlPlane セクションの最初の行はハイフンで始めることができません。1 つのコントロールプレーンプールのみが使用されます。
4 7
ハイパースレッディングとも呼ばれる同時マルチスレッドを有効または無効にします。デフォルトでは、同時スレッドはマシンのコアのパフォーマンスを上げるために有効にされます。パラメーター値を Disabled に設定するとこれを無効にすることができます。一部のクラスターマシンで同時マルチスレッドを無効にする場合は、これをすべてのクラスターマシンで無効にする必要があります。
重要

同時スレッドを無効にする場合は、容量計画においてマシンパフォーマンスの大幅な低下が考慮に入れられていることを確認します。同時マルチスレッドを無効にする場合は、マシンに対して n1-standard-8 などの大規模なマシンタイプを使用します。

9
マシン CIDR にはコンピュートマシンおよびコントロールプレーンマシンのサブネットが含まれている必要があります。
10
CIDR には、platform.ibmcloud.controlPlaneSubnets および platform.ibmcloud.computeSubnets で定義されたサブネットが含まれている必要があります。
11
インストールするクラスターネットワークプラグイン。サポートされる値はデフォルト値の OVNKubernetes のみです。
13
既存のリソースグループの名前。すべての installer-provisioned クラスターリソースは、このリソースグループにデプロイされます。定義されていない場合は、クラスターに新しいリソースグループが作成されます。
14
VPC のネットワーク制限に基づいて、必要に応じて代替サービスエンドポイントを指定します。これにより、サービスのデフォルトのパブリックエンドポイントがオーバーライドされます。
15
既存の Virtual Private Cloud (VPC) を含むリソースグループの名前を指定します。既存の VPC およびサブネットはこのリソースグループにある必要があります。クラスターはこの VPC にインストールされます。
16
既存 VPC の名前を指定します。
17
コントロールプレーンマシンをデプロイする既存のサブネット名を指定します。サブネットは、指定した VPC に属している必要があります。リージョン内の各アベイラビリティーゾーンのサブネットを指定します。
18
コンピュートマシンをデプロイする既存のサブネット名を指定します。サブネットは、指定した VPC に属している必要があります。リージョン内の各アベイラビリティーゾーンのサブネットを指定します。
19
<local_registry> については、レジストリードメイン名と、ミラーレジストリーがコンテンツを提供するために使用するポートをオプションで指定します。例: registry.example.com または registry.example.com:5000<credentials> について、ミラーレジストリーの base64 でエンコードされたユーザー名およびパスワードを指定します。
20
FIPS モードを有効または無効にします。デフォルトでは、FIPS モードは有効にされません。FIPS モードが有効にされている場合、OpenShift Container Platform が実行される Red Hat Enterprise Linux CoreOS (RHCOS) マシンがデフォルトの Kubernetes 暗号スイートをバイパスし、代わりに RHCOS で提供される暗号モジュールを使用します。
重要

プロセス暗号化ライブラリーでの FIPS 検証済みまたはモジュールの使用は、x86_64アーキテクチャーでの OpenShift Container Platform デプロイメントでのみサポートされます。

21
オプション: クラスター内のマシンにアクセスするのに使用する sshKey 値をオプションで指定できます。
22
ミラーレジストリーに使用した証明書ファイルの内容を指定します。
23
レジストリーをミラーリングしたときに作成された imageContentSourcePolicy.yaml ファイルの metadata.name: release-0 セクションからこれらの値を指定します。
注記

インストールのデバッグまたは障害復旧を実行する必要のある実稼働用の OpenShift Container Platform クラスターでは、ssh-agent プロセスが使用する SSH キーを指定します。

8.9.8. OpenShift CLI のインストール

コマンドラインインターフェイスを使用して OpenShift Container Platform と対話するために OpenShift CLI (oc) をインストールすることができます。oc は Linux、Windows、または macOS にインストールできます。

重要

以前のバージョンの oc をインストールしている場合、これを使用して OpenShift Container Platform 4.16 のすべてのコマンドを実行することはできません。新しいバージョンの oc をダウンロードしてインストールしてください。

Linux への OpenShift CLI のインストール

以下の手順を使用して、OpenShift CLI (oc) バイナリーを Linux にインストールできます。

手順

  1. Red Hat カスタマーポータルの OpenShift Container Platform ダウンロードページ に移動します。
  2. Product Variant ドロップダウンリストからアーキテクチャーを選択します。
  3. バージョン ドロップダウンリストから適切なバージョンを選択します。
  4. OpenShift v4.16 Linux Client エントリーの横にある Download Now をクリックして、ファイルを保存します。
  5. アーカイブを展開します。

    $ tar xvf <file>
  6. oc バイナリーを、PATH にあるディレクトリーに配置します。

    PATH を確認するには、以下のコマンドを実行します。

    $ echo $PATH

検証

  • OpenShift CLI のインストール後に、oc コマンドを使用して利用できます。

    $ oc <command>
Windows への OpenShift CLI のインストール

以下の手順を使用して、OpenShift CLI (oc) バイナリーを Windows にインストールできます。

手順

  1. Red Hat カスタマーポータルの OpenShift Container Platform ダウンロードページ に移動します。
  2. バージョン ドロップダウンリストから適切なバージョンを選択します。
  3. OpenShift v4.16 Windows Client エントリーの横にある Download Now をクリックして、ファイルを保存します。
  4. ZIP プログラムでアーカイブを展開します。
  5. oc バイナリーを、PATH にあるディレクトリーに移動します。

    PATH を確認するには、コマンドプロンプトを開いて以下のコマンドを実行します。

    C:\> path

検証

  • OpenShift CLI のインストール後に、oc コマンドを使用して利用できます。

    C:\> oc <command>
macOS への OpenShift CLI のインストール

以下の手順を使用して、OpenShift CLI (oc) バイナリーを macOS にインストールできます。

手順

  1. Red Hat カスタマーポータルの OpenShift Container Platform ダウンロードページ に移動します。
  2. バージョン ドロップダウンリストから適切なバージョンを選択します。
  3. OpenShift v4.16 macOS Client エントリーの横にある Download Now をクリックして、ファイルを保存します。

    注記

    macOS arm64 の場合は、OpenShift v4.16 macOS arm64 Client エントリーを選択します。

  4. アーカイブを展開し、解凍します。
  5. oc バイナリーをパスにあるディレクトリーに移動します。

    PATH を確認するには、ターミナルを開き、以下のコマンドを実行します。

    $ echo $PATH

検証

  • oc コマンドを使用してインストールを確認します。

    $ oc <command>

8.9.9. IAM を手動で作成する

クラスターをインストールするには、Cloud Credential Operator (CCO) が手動モードで動作する必要があります。インストールプログラムは CCO を手動モードに設定しますが、クラウドプロバイダーの ID とアクセス管理シークレットを指定する必要があります。

Cloud Credential Operator (CCO) ユーティリティー (ccoctl) を使用して、必要な IBM Cloud® リソースを作成できます。

前提条件

  • ccoctl バイナリーを設定している。
  • 既存の install-config.yaml ファイルがある。

手順

  1. install-config.yaml 設定ファイルを編集し、credentialsMode パラメーターが Manual に設定されるようにします。

    サンプル install-config.yaml 設定ファイル

    apiVersion: v1
    baseDomain: cluster1.example.com
    credentialsMode: Manual 1
    compute:
    - architecture: amd64
      hyperthreading: Enabled

    1
    この行は、credentialsMode パラメーターを Manual に設定するために追加されます。
  2. マニフェストを生成するには、インストールプログラムが含まれるディレクトリーから以下のコマンドを実行します。

    $ ./openshift-install create manifests --dir <installation_directory>
  3. インストールプログラムが含まれているディレクトリーから、次のコマンドを実行して、インストールファイルのリリースイメージを $RELEASE_IMAGE 変数に設定します。

    $ RELEASE_IMAGE=$(./openshift-install version | awk '/release image/ {print $3}')
  4. 以下のコマンドを実行して、OpenShift Container Platform リリースイメージから CredentialsRequest カスタムリソース (CR) のリストを抽出します。

    $ oc adm release extract \
      --from=$RELEASE_IMAGE \
      --credentials-requests \
      --included \1
      --install-config=<path_to_directory_with_installation_configuration>/install-config.yaml \2
      --to=<path_to_directory_for_credentials_requests> 3
    1
    --included パラメーターには、特定のクラスター設定に必要なマニフェストのみが含まれます。
    2
    install-config.yaml ファイルの場所を指定します。
    3
    CredentialsRequest オブジェクトを保存するディレクトリーへのパスを指定します。指定したディレクトリーが存在しない場合は、このコマンドによって作成されます。

    このコマンドにより、それぞれの CredentialsRequest オブジェクトに YAML ファイルが作成されます。

    サンプル CredentialsRequest オブジェクト

      apiVersion: cloudcredential.openshift.io/v1
      kind: CredentialsRequest
      metadata:
        labels:
          controller-tools.k8s.io: "1.0"
        name: openshift-image-registry-ibmcos
        namespace: openshift-cloud-credential-operator
      spec:
        secretRef:
          name: installer-cloud-credentials
          namespace: openshift-image-registry
        providerSpec:
          apiVersion: cloudcredential.openshift.io/v1
          kind: IBMCloudProviderSpec
          policies:
          - attributes:
            - name: serviceName
              value: cloud-object-storage
            roles:
            - crn:v1:bluemix:public:iam::::role:Viewer
            - crn:v1:bluemix:public:iam::::role:Operator
            - crn:v1:bluemix:public:iam::::role:Editor
            - crn:v1:bluemix:public:iam::::serviceRole:Reader
            - crn:v1:bluemix:public:iam::::serviceRole:Writer
          - attributes:
            - name: resourceType
              value: resource-group
            roles:
            - crn:v1:bluemix:public:iam::::role:Viewer

  5. 各認証情報リクエストのサービス ID を作成し、定義されたポリシーを割り当て、API キーを作成し、シークレットを生成します。

    $ ccoctl ibmcloud create-service-id \
      --credentials-requests-dir=<path_to_credential_requests_directory> \1
      --name=<cluster_name> \2
      --output-dir=<installation_directory> \3
      --resource-group-name=<resource_group_name> 4
    1
    コンポーネント CredentialsRequest オブジェクトのファイルを含むディレクトリーを指定します。
    2
    OpenShift Container Platform クラスターの名前を指定します。
    3
    オプション: ccoctl ユーティリティーがオブジェクトを作成するディレクトリーを指定します。デフォルトでは、ユーティリティーは、コマンドが実行されるディレクトリーにオブジェクトを作成します。
    4
    オプション: アクセスポリシーのスコープに使用されるリソースグループの名前を指定します。
    注記

    クラスターで TechPreviewNoUpgrade 機能セットによって有効化されたテクノロジープレビュー機能を使用している場合は、--enable-tech-preview パラメーターを含める必要があります。

    間違ったリソースグループ名が指定された場合、ブートストラップフェーズ中にインストールが失敗します。正しいリソースグループ名を見つけるには、次のコマンドを実行します。

    $ grep resourceGroupName <installation_directory>/manifests/cluster-infrastructure-02-config.yml

検証

  • クラスターの manifests ディレクトリーに適切なシークレットが生成されていることを確認してください。

8.9.10. クラスターのデプロイ

互換性のあるクラウドプラットフォームに OpenShift Container Platform をインストールできます。

重要

インストールプログラムの create cluster コマンドは、初期インストール時に 1 回だけ実行できます。

前提条件

  • クラスターをホストするクラウドプラットフォームでアカウントを設定しました。
  • OpenShift Container Platform インストールプログラムおよびクラスターのプルシークレットがある。

    Red Hat Enterprise Linux CoreOS (RHCOS) イメージがローカルで利用可能な場合、インストールプログラムを実行するホストはインターネットアクセスを必要としません。

  • ホスト上のクラウドプロバイダーアカウントに、クラスターをデプロイするための適切な権限があることが確認されました。アカウントの権限が正しくないと、インストールプロセスが失敗し、不足している権限を示すエラーメッセージが表示されます。

手順

  1. 次のコマンドを実行して、OPENSHIFT_INSTALL_OS_IMAGE_OVERRIDE 変数をエクスポートし、Red Hat Enterprise Linux CoreOS (RHCOS) イメージの場所を指定します。

    $ export OPENSHIFT_INSTALL_OS_IMAGE_OVERRIDE="<path_to_image>/rhcos-<image_version>-ibmcloud.x86_64.qcow2.gz"
  2. インストールプログラムが含まれるディレクトリーに切り替え、クラスターのデプロイメントを初期化します。

    $ ./openshift-install create cluster --dir <installation_directory> \ 1
        --log-level=info 2
    1
    <installation_directory> については、カスタマイズした ./install-config.yaml ファイルの場所を指定します。
    2
    異なるインストールの詳細情報を表示するには、info ではなく、warndebug、または error を指定します。

検証

クラスターのデプロイが正常に完了すると、次のようになります。

  • ターミナルには、Web コンソールへのリンクや kubeadmin ユーザーの認証情報など、クラスターにアクセスするための指示が表示されます。
  • 認証情報は <installation_directory>/.openshift_install.log にも出力されます。
重要

インストールプログラム、またはインストールプログラムが作成するファイルを削除することはできません。これらはいずれもクラスターを削除するために必要になります。

出力例

...
INFO Install complete!
INFO To access the cluster as the system:admin user when using 'oc', run 'export KUBECONFIG=/home/myuser/install_dir/auth/kubeconfig'
INFO Access the OpenShift web-console here: https://console-openshift-console.apps.mycluster.example.com
INFO Login to the console with user: "kubeadmin", and password: "password"
INFO Time elapsed: 36m22s

重要
  • インストールプログラムが生成する Ignition 設定ファイルには、24 時間が経過すると期限切れになり、その後に更新される証明書が含まれます。証明書を更新する前にクラスターが停止し、24 時間経過した後にクラスターを再起動すると、クラスターは期限切れの証明書を自動的に復元します。例外として、kubelet 証明書を回復するために保留状態の node-bootstrapper 証明書署名要求 (CSR) を手動で承認する必要があります。詳細は、コントロールプレーン証明書の期限切れの状態からのリカバリー に関するドキュメントを参照してください。
  • 24 時間証明書はクラスターのインストール後 16 時間から 22 時間にローテーションするため、Ignition 設定ファイルは、生成後 12 時間以内に使用することを推奨します。12 時間以内に Ignition 設定ファイルを使用することにより、インストール中に証明書の更新が実行された場合のインストールの失敗を回避できます。

8.9.11. CLI の使用によるクラスターへのログイン

クラスター kubeconfig ファイルをエクスポートし、デフォルトシステムユーザーとしてクラスターにログインできます。kubeconfig ファイルには、クライアントを正しいクラスターおよび API サーバーに接続するために CLI で使用されるクラスターに関する情報が含まれます。このファイルはクラスターに固有のファイルであり、OpenShift Container Platform のインストール時に作成されます。

前提条件

  • OpenShift Container Platform クラスターをデプロイしていること。
  • oc CLI をインストールしていること。

手順

  1. kubeadmin 認証情報をエクスポートします。

    $ export KUBECONFIG=<installation_directory>/auth/kubeconfig 1
    1
    <installation_directory> には、インストールファイルを保存したディレクトリーへのパスを指定します。
  2. エクスポートされた設定を使用して、oc コマンドを正常に実行できることを確認します。

    $ oc whoami

    出力例

    system:admin

8.9.12. インストール後の設定

以下の手順を実行して、クラスターの設定を完了します。

8.9.12.1. デフォルトの OperatorHub カタログソースの無効化

Red Hat によって提供されるコンテンツを調達する Operator カタログおよびコミュニティープロジェクトは、OpenShift Container Platform のインストール時にデフォルトで OperatorHub に設定されます。ネットワークが制限された環境では、クラスター管理者としてデフォルトのカタログを無効にする必要があります。

手順

  • disableAllDefaultSources: trueOperatorHub オブジェクトに追加して、デフォルトカタログのソースを無効にします。

    $ oc patch OperatorHub cluster --type json \
        -p '[{"op": "add", "path": "/spec/disableAllDefaultSources", "value": true}]'
ヒント

または、Web コンソールを使用してカタログソースを管理できます。Administration Cluster Settings Configuration OperatorHub ページから、Sources タブをクリックして、個別のソースを作成、更新、削除、無効化、有効化できます。

8.9.12.2. クラスターへのポリシーリソースのインストール

oc-mirror OpenShift CLI (oc) プラグインを使用して OpenShift Container Platform コンテンツをミラーリングすると、catalogSource-certified-operator-index.yaml および imageContentSourcePolicy.yaml を含むリソースが作成されます。

  • ImageContentSourcePolicy リソースは、ミラーレジストリーをソースレジストリーに関連付け、イメージプル要求をオンラインレジストリーからミラーレジストリーにリダイレクトします。
  • CatalogSource リソースは、Operator Lifecycle Manager (OLM) によって使用され、ミラーレジストリーで使用可能な Operator に関する情報を取得します。これにより、ユーザーは Operator を検出してインストールできます。

クラスターをインストールしたら、これらのリソースをクラスターにインストールする必要があります。

前提条件

  • 非接続環境で、イメージセットをレジストリーミラーにミラーリングしました。
  • cluster-admin ロールを持つユーザーとしてクラスターにアクセスできる。

手順

  1. cluster-admin ロールを持つユーザーとして OpenShift CLI にログインします。
  2. results ディレクトリーからクラスターに YAML ファイルを適用します。

    $ oc apply -f ./oc-mirror-workspace/results-<id>/

検証

  1. ImageContentSourcePolicy リソースが正常にインストールされたことを確認します。

    $ oc get imagecontentsourcepolicy
  2. CatalogSourceリソースが正常にインストールされたことを確認します。

    $ oc get catalogsource --all-namespaces

8.9.13. OpenShift Container Platform の Telemetry アクセス

OpenShift Container Platform 4.16 では、Telemetry サービスにもインターネットアクセスが必要です。Telemetry サービスは、クラスターの健全性と更新の成功に関するメトリクスを提供するためにデフォルトで実行されます。クラスターがインターネットに接続されている場合、Telemetry は自動的に実行され、クラスターは OpenShift Cluster Manager に登録されます。

OpenShift Cluster Manager インベントリーが正常である (Telemetry によって自動的に維持、または OpenShift Cluster Manager を使用して手動で維持) ことを確認した後に、subscription watch を使用 して、アカウントまたはマルチクラスターレベルで OpenShift Container Platform サブスクリプションを追跡します。

8.9.14. 次のステップ

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.