クラスターをインストールする


Red Hat OpenShift Service on AWS 4

Red Hat OpenShift Service on AWS (ROSA) クラスターのインストール、アクセス、および削除

Red Hat OpenShift Documentation Team

概要

このドキュメントでは、Hosted Control Plane を使用して、Red Hat OpenShift Service on AWS (ROSA) クラスターをインストールする方法を説明します。

第1章 Red Hat OpenShift Service on AWS クイックスタートガイド

このガイドに従って、ROSA コマンドラインインターフェイス (CLI) (rosa) を使用して Red Hat OpenShift Service on AWS クラスターをすばやく作成し、ユーザーアクセスを許可し、最初のアプリケーションをデプロイし、ユーザーアクセスを取り消してクラスターを削除する方法を学習します。

デフォルトのクラスター仕様の概要

デフォルトのインストールオプションを使用して、Red Hat OpenShift Service on AWS クラスターをすばやく作成できます。

次の要約では、デフォルトのクラスター仕様を説明します。

Expand
表1.1 Red Hat OpenShift Service on AWS クラスター仕様
コンポーネントデフォルトの仕様

アカウントおよびロール

  • デフォルトの IAM ロールの接頭辞: HCP-ROSA

クラスター設定

  • デフォルトのクラスターバージョン: 最新
  • ROSA CLI (rosa) を使用したインストールのデフォルトの AWS リージョン: aws CLI 設定によって定義されます。
  • デフォルトの EC2 IMDS エンドポイント (v1 と v2 の両方) が有効になっています
  • 可用性: データプレーンの単一ゾーン
  • ユーザー定義プロジェクトの監視: 有効
  • クラスター管理者ロールは作成されない

コンピュートノードマシンプール

  • コンピュートノードインスタンスタイプ: m5.xlarge (4 vCPU 16, GiB RAM)
  • コンピュートノード数: 2
  • 自動スケーリング: 無効
  • 追加のノードラベルなし

ネットワーク設定

  • クラスターのプライバシー: パブリック
  • クラスター全体のプロキシーは設定されていません。

Classless Inter-Domain Routing (CIDR) の範囲

  • Machine CIDR: 10.0.0.0/16
  • Service CIDR: 172.30.0.0/16
  • Pod CIDR: 10.128.0.0/14
  • Host prefix: /23

    注記

    静的 IP アドレス 172.20.0.1 は、内部 Kubernetes API アドレス用に予約されています。マシン、Pod、およびサービスの CIDR 範囲は、この IP アドレスと競合してはなりません。

クラスターのロールおよびポリシー

  • Operator ロールおよび OpenID Connect (OIDC) プロバイダーの作成に使用されるモード: auto

    注記

    Hybrid Cloud Console で OpenShift Cluster Manager を使用してインストールする場合、auto モードには管理者権限が割り当てられた OpenShift Cluster Manager ロール (ocm-role) が必要です。

  • デフォルトの Operator ロールの接頭辞: <cluster_name>-<4_digit_random_string>

ストレージ

  • ノードボリューム:

    • タイプ: AWS EBS GP3
    • デフォルトサイズ: 300 GiB (作成時に調整可能)
  • ワークロード永続ボリューム:

    • デフォルトの StorageClass: gp3-csi
    • プロビジョナー: ebs.csi.aws.com
    • 動的永続ボリュームのプロビジョニング

クラスター更新ストラテジー

  • 個別の更新
  • 1 時間のノード drain (Pod の退避) 猶予期間

1.1. 環境の設定

Red Hat OpenShift Service on AWS クラスターを作成する前に、次のタスクを完了して環境を設定する必要があります。

  • AWS および Red Hat アカウントに対して Red Hat OpenShift Service on AWS の前提条件を確認します。
  • 必要なコマンドラインインターフェイス (CLI) ツールをインストールして設定します。
  • CLI ツールの設定を確認します。

このセクションの手順に従って、これらの設定要件を完了できます。

Red Hat OpenShift Service on AWS の前提条件の確認

この手順を使用して、AWS アカウントで Red Hat OpenShift Service on AWS を有効にします。

前提条件

  • Red Hat アカウントを持っている。
  • AWS アカウントがある。

    注記

    専用の AWS アカウントを使用して実稼働クラスターを実行することを検討してください。AWS Organizations を使用している場合は、組織内の AWS アカウントを使用するか、アカウントを新規作成 できます。

手順

  1. AWS 管理コンソール にログインします。
  2. ROSA service に移動します。
  3. Get started をクリックします。

    Verify ROSA prerequisites ページが開きます。

  4. ROSA enablement の下で、緑色のチェックマークと You previously enabled ROSA が表示されていることを確認します。

    そうでない場合は、次の手順に従います。

    1. I agree to share my contact information with Red Hat の横にあるチェックボックスを選択します。
    2. Enable ROSA をクリックします。

      少し待つと、緑色のチェックマークと You enabled ROSA メッセージが表示されます。

  5. Service Quotas の下に、緑色のチェックと Your quotas meet the requirements for ROSA が表示されていることを確認します。

    Your quotas don’t meet the minimum requirements と表示される場合は、エラーメッセージに記載されているクォータの種類と最小値をメモしてください。ガイダンスは、割り当て増加のリクエスト に関する Amazon のドキュメントを参照してください。Amazon が割り当てリクエストを承認するまでに数時間かかる場合があります。

  6. ELB service-linked role の下で、緑色のチェックマークと AWSServiceRoleForElasticLoadBalancing already exists が表示されていることを確認します。
  7. Continue to Red Hat をクリックします。

    Get started with Red Hat OpenShift Service on AWS (ROSA) ページが新しいタブで開きます。このページのステップ 1 はすでに完了しており、ステップ 2 に進むことができます。

必要な CLI ツールのインストールと設定

クラスターをデプロイして操作するには、コマンドラインインターフェイス (CLI) ツールが複数必要です。

前提条件

  • AWS アカウントがある。
  • Red Hat アカウントを持っている。

手順

  1. 必要な各ツールのダウンロードページにアクセスするには、Red Hat および AWS アカウントにログインします。

    1. console.redhat.com で Red Hat アカウントにログインします。
    2. aws.amazon.com で AWS アカウントにログインします。
  2. 最新の AWS CLI (aws) をインストールして設定します。

    1. ワークステーションに適した AWS コマンドラインインターフェイス のドキュメントに従って、AWS CLI をインストールします。
    2. .aws/credentials ファイルで aws_access_key_idaws_secret_access_key、および region を指定して AWS CLI を設定します。詳細は、AWS ドキュメントの AWS 設定の基本 を参照してください。

      注記

      オプションで AWS_DEFAULT_REGION 環境変数を使用して、デフォルトの AWS リージョンを設定できます。

    3. AWS API をクエリーし、AWS CLI が適切にインストールおよび設定されているかどうかを確認します。

      $ aws sts get-caller-identity  --output text
      Copy to Clipboard Toggle word wrap

      出力例

      <aws_account_id>    arn:aws:iam::<aws_account_id>:user/<username>  <aws_user_id>
      Copy to Clipboard Toggle word wrap

  3. 最新の ROSA CLI をインストールして設定します。

    1. Downloads に移動します。
    2. ツールのリストから Red Hat OpenShift Service on AWS コマンドラインインターフェイス (rosa) を見つけて、ダウンロード をクリックします。

      rosa-linux.tar.gz ファイルはデフォルトのダウンロード先にダウンロードされます。

    3. ダウンロードしたアーカイブから rosa バイナリーファイルをデプロイメントします。以下の例は、Linux tar アーカイブからバイナリーをデプロイメントします。

      $ tar xvf rosa-linux.tar.gz
      Copy to Clipboard Toggle word wrap
    4. rosa バイナリーファイルを実行パス内のディレクトリーに移動します。以下の例では、/usr/local/bin ディレクトリーがユーザーのパスに含まれます。

      $ sudo mv rosa /usr/local/bin/rosa
      Copy to Clipboard Toggle word wrap
    5. rosa バージョンを照会して、ROSA CLI が正しくインストールされていることを確認します。

      $ rosa version
      Copy to Clipboard Toggle word wrap

      出力例

      1.2.47
      Your ROSA CLI is up to date.
      Copy to Clipboard Toggle word wrap

  4. オフラインアクセストークンを使用して ROSA CLI にログインします。

    1. ログインコマンドを実行します。

      $ rosa login
      Copy to Clipboard Toggle word wrap

      出力例

      To login to your Red Hat account, get an offline access token at https://console.redhat.com/openshift/token/rosa
      ? Copy the token and paste it here:
      Copy to Clipboard Toggle word wrap

    2. コマンド出力にリストされている URL に移動して、オフラインアクセストークンを表示します。
    3. ログインするには、コマンドラインプロンプトでオフラインアクセストークンを入力します。

      ? Copy the token and paste it here: *******************
      [full token length omitted]
      Copy to Clipboard Toggle word wrap
      注記

      今後は、rosa login コマンドを実行するときに --token="<offline_access_token>" 引数を使用してオフラインアクセストークンを指定できます。

    4. 続行する前に、ログインしていることと認証情報が正しいことを確認してください。

      $ rosa whoami
      Copy to Clipboard Toggle word wrap

      出力例

      AWS Account ID:               <aws_account_number>
      AWS Default Region:           us-east-1
      AWS ARN:                      arn:aws:iam::<aws_account_number>:user/<aws_user_name>
      OCM API:                      https://api.openshift.com
      OCM Account ID:               <red_hat_account_id>
      OCM Account Name:             Your Name
      OCM Account Username:         you@domain.com
      OCM Account Email:            you@domain.com
      OCM Organization ID:          <org_id>
      OCM Organization Name:        Your organization
      OCM Organization External ID: <external_org_id>
      Copy to Clipboard Toggle word wrap

  5. 最新の OpenShift CLI (oc) をインストールして設定します。

    1. ROSA CLI を使用して oc CLI をダウンロードします。

      次のコマンドは、CLI の最新バージョンを現在の作業ディレクトリーにダウンロードします。

      $ rosa download openshift-client
      Copy to Clipboard Toggle word wrap
    2. ダウンロードしたアーカイブから oc バイナリーファイルをデプロイメントします。以下の例は、Linux tar アーカイブからファイルをデプロイメントします。

      $ tar xvf openshift-client-linux.tar.gz
      Copy to Clipboard Toggle word wrap
    3. oc バイナリーを実行パス内のディレクトリーに移動します。以下の例では、/usr/local/bin ディレクトリーがユーザーのパスに含まれます。

      $ sudo mv oc /usr/local/bin/oc
      Copy to Clipboard Toggle word wrap
    4. oc CLI が正しくインストールされていることを確認します。

      $ rosa verify openshift-client
      Copy to Clipboard Toggle word wrap

      出力例

      I: Verifying whether OpenShift command-line tool is available...
      I: Current OpenShift Client Version: 4.17.3
      Copy to Clipboard Toggle word wrap

次のステップ

Red Hat Hybrid Cloud Console を使用して Red Hat OpenShift Service on AWS クラスターをデプロイする前に、AWS アカウントを Red Hat 組織に関連付け、Red Hat OpenShift Service on AWS に必要なアカウント全体の AWS IAM STS ロールとポリシーを作成する必要があります。

1.2. アカウント全体の STS ロールおよびポリシーの作成

Red Hat Hybrid Cloud コンソールを使用して AWS Security Token Service (STS) を使用する Red Hat OpenShift Service on AWS クラスターを作成する前に、Operator ポリシーを含む、アカウント全体で必要な STS ロールとポリシーを作成します。

手順

  1. ロールとポリシーが AWS アカウントに存在しない場合は、必要なアカウント全体の AWS IAM STS ロールとポリシーを作成します。

    $ rosa create account-roles --hosted-cp
    Copy to Clipboard Toggle word wrap

    プロンプトでデフォルト値を選択して、ロールとポリシーをすばやく作成します。

1.3. Red Hat OpenShift Service on AWS クラスター用の Virtual Private Cloud の作成

Red Hat OpenShift Service on AWS クラスターを作成するには、AWS Virtual Private Cloud (VPC) が必要です。次の方法を使用して VPC を作成できます。

  • ROSA CLI を使用した VPC の作成
  • Terraform テンプレートを使用して VPC を作成する
  • AWS コンソールで VPC リソースを手動で作成する
注記

Terraform の手順はテストとデモンストレーションを目的としています。独自のインストールでは、独自に使用するために VPC にいくつかの変更を加える必要があります。また、このリンクされた Terraform 設定を使用する場合は、クラスターをインストールする予定のリージョンと同じリージョンにあることを確認する必要があります。以下の例では、us-east-2 が使用されています。

ROSA CLI を使用した AWS VPC の作成

rosa create network コマンドは、ROSA CLI のバージョン 1.2.48 以降で使用できます。このコマンドは、AWS CloudFormation を使用して、Red Hat OpenShift Service on AWS クラスターのインストールに必要な VPC と関連ネットワークコンポーネントを作成します。CloudFormation はネイティブの AWS インフラストラクチャーコードツールであり、AWS CLI と互換性があります。

テンプレートを指定しない場合、次のパラメーターを持つリソースを作成するデフォルトのテンプレートが CloudFormation によって使用されます。

Expand
VPC のパラメーター

アベイラビリティーゾーン

1

リージョン

us-east-1

VPC CIDR

10.0.0.0/16

rosa create network コマンドで使用する CloudFormation テンプレートを作成し、カスタマイズできます。デフォルトの VPC テンプレートの詳細は、このセクションの関連情報を参照してください。

前提条件

  • AWS アカウントを設定した。
  • Red Hat アカウントを設定した。
  • ROSA CLI をインストールし、最新バージョンに設定した。

手順

  1. 次のコマンドを実行して、デフォルトの CloudFormations テンプレートを使用して AWS VPC を作成します。

    $ rosa create network
    Copy to Clipboard Toggle word wrap
  2. オプション: 追加のパラメーターを指定して VPC をカスタマイズします。

    --param フラグを使用すると、デフォルトの VPC テンプレートへの変更を指定できます。次のコマンド例では、regionNameAvailabilityZoneCount、および VpcCidr のカスタム値を指定します。

    $ rosa create network --param Region=us-east-2 --param Name=quickstart-stack --param AvailabilityZoneCount=3 --param VpcCidr=10.0.0.0/16
    Copy to Clipboard Toggle word wrap

    このコマンドの実行には約 5 分かかります。リソースが作成されるたびに、AWS から定期的にステータスの更新が提供されます。CloudFormation に問題がある場合は、ロールバックが試行されます。それ以外のエラーが発生した場合は、エラーメッセージの指示に従うか、AWS サポートにお問い合わせください。

検証

  • 完了すると、作成されたリソースの概要が表示されます。

    INFO[0140] Resources created in stack:
    INFO[0140] Resource: AttachGateway, Type: AWS::EC2::VPCGatewayAttachment, ID: <gateway_id>
    INFO[0140] Resource: EC2VPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce_id>
    INFO[0140] Resource: EcrApiVPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce_id>
    INFO[0140] Resource: EcrDkrVPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce_id>
    INFO[0140] Resource: ElasticIP1, Type: AWS::EC2::EIP, ID: <IP>
    INFO[0140] Resource: ElasticIP2, Type: AWS::EC2::EIP, ID: <IP>
    INFO[0140] Resource: InternetGateway, Type: AWS::EC2::InternetGateway, ID: igw-016e1a71b9812464e
    INFO[0140] Resource: KMSVPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce_id>
    INFO[0140] Resource: NATGateway1, Type: AWS::EC2::NatGateway, ID: <nat-gateway_id>
    INFO[0140] Resource: PrivateRoute, Type: AWS::EC2::Route, ID: <route_id>
    INFO[0140] Resource: PrivateRouteTable, Type: AWS::EC2::RouteTable, ID: <route_id>
    INFO[0140] Resource: PrivateSubnetRouteTableAssociation1, Type: AWS::EC2::SubnetRouteTableAssociation, ID: <route_id>
    INFO[0140] Resource: PublicRoute, Type: AWS::EC2::Route, ID: <route_id>
    INFO[0140] Resource: PublicRouteTable, Type: AWS::EC2::RouteTable, ID: <route_id>
    INFO[0140] Resource: PublicSubnetRouteTableAssociation1, Type: AWS::EC2::SubnetRouteTableAssociation, ID: <route_id>
    INFO[0140] Resource: S3VPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce_id>
    INFO[0140] Resource: STSVPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce_id>
    INFO[0140] Resource: SecurityGroup, Type: AWS::EC2::SecurityGroup, ID: <security-group_id>
    INFO[0140] Resource: SubnetPrivate1, Type: AWS::EC2::Subnet, ID: <private_subnet_id-1> \ 
    1
    
    INFO[0140] Resource: SubnetPublic1, Type: AWS::EC2::Subnet, ID: <public_subnet_id-1> \ 
    2
    
    INFO[0140] Resource: VPC, Type: AWS::EC2::VPC, ID: <vpc_id>
    INFO[0140] Stack rosa-network-stack-5555 created \ 
    3
    Copy to Clipboard Toggle word wrap
    1 2
    これら 2 つのサブネット ID は、rosa create cluster コマンドの使用時にクラスターを作成するために使用されます。
    3
    ネットワークスタック名は、後でリソースを削除するために使用されます。
Terraform を使用した Virtual Private Cloud の作成

Terraform は、確立されたテンプレートを使用してさまざまなリソースを作成できるツールです。次のプロセスでは、必要に応じてデフォルトのオプションを使用して Red Hat OpenShift Service on AWS クラスターを作成します。Terraform の使用の詳細は、関連情報を参照してください。

前提条件

  • マシンに Terraform バージョン 1.4.0 以降がインストールされている。
  • マシンに Git がインストールされている。

手順

  1. シェルプロンプトを開き、次のコマンドを実行して Terraform VPC リポジトリーのクローンを作成します。

    $ git clone https://github.com/openshift-cs/terraform-vpc-example
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを実行して、作成したディレクトリーに移動します。

    $ cd terraform-vpc-example
    Copy to Clipboard Toggle word wrap
  3. 次のコマンドを実行して、Terraform ファイルを開始します。

    $ terraform init
    Copy to Clipboard Toggle word wrap

    このプロセスが完了すると、初期化を確認するメッセージが表示されます。

  4. 既存の Terraform テンプレートに基づいて VPC Terraform プランを構築するには、plan コマンドを実行します。AWS リージョンを含める必要があります。クラスター名を指定することもできます。terraform plan が完了すると、rosa.tfplan ファイルが hypershift-tf ディレクトリーに追加されます。オプションの詳細は、Terraform VPC リポジトリーの README ファイル を参照してください。

    $ terraform plan -out rosa.tfplan -var region=<region>
    Copy to Clipboard Toggle word wrap
  5. 次のコマンドを実行して、このプランファイルを適用して VPC を構築します。

    $ terraform apply rosa.tfplan
    Copy to Clipboard Toggle word wrap
    1. オプション: 次のコマンドを実行すると、Terraform でプロビジョニングされたプライベート、パブリック、およびマシンプールのサブネット ID の値を、Red Hat OpenShift Service on AWS クラスターの作成時に使用する環境変数としてキャプチャーできます。

      $ export SUBNET_IDS=$(terraform output -raw cluster-subnets-string)
      Copy to Clipboard Toggle word wrap
    2. 次のコマンドを使用して、変数が正しく設定されたことを確認できます。

      $ echo $SUBNET_IDS
      Copy to Clipboard Toggle word wrap

      出力例

      $ subnet-0a6a57e0f784171aa,subnet-078e84e5b10ecf5b0
      Copy to Clipboard Toggle word wrap

AWS Virtual Private Cloud の手動作成

Terraform を使用する代わりに、AWS Virtual Private Cloud (VPC) を手動で作成することを選択した場合は、AWS コンソールの VPC ページ に移動します。

VPC は、次の表に示す要件を満たしている必要があります。

Expand
表1.2 VPC の要件
要件詳細

VPC 名

クラスターを作成するときは、特定の VPC 名と ID が必要です。

CIDR 範囲

VPC CIDR 範囲はマシンの CIDR と一致する必要があります。

アベイラビリティーゾーン

単一ゾーンの場合は 1 つの可用性ゾーンが必要で、複数ゾーンの場合は 3 つの可用性ゾーンが必要です。

パブリックサブネット

パブリッククラスターには、NAT ゲートウェイを備えたパブリックサブネットが 1 つ必要です。プライベートクラスターにはパブリックサブネットは必要ありません。

DNS ホスト名と解決

DNS ホスト名と解決が有効になっていることを確認する必要があります。

1.3.1. トラブルシューティング

クラスターのインストールに失敗した場合は、次の一般的な問題のトラブルシューティングを実行してください。

  • DHCP オプションセット にドメイン名が含まれていることを確認し、ドメイン名にスペースや大文字が含まれていないことを確認します。
  • VPC でカスタム DNS リゾルバーが使用されている場合 (DHCP オプションセットの ドメインネームサーバー フィールドが AmazonProvideDNS ではない)、Route53 で設定されているプライベートホストゾーンを適切に解決できることを確認します。

Red Hat OpenShift Service on AWS クラスターのインストールのトラブルシューティングの詳細は、Red Hat OpenShift Service on AWS クラスターのインストールのトラブルシューティングを 参照してください。

サポートの利用

追加の サポート が必要な場合は、Red Hat カスタマーポータルにアクセスして、ナレッジベースの記事の確認、サポートケースの作成、追加の製品ドキュメントおよびリソースの確認を行ってください。

サブネットへのタグ付け

VPC を使用して Red Hat OpenShift Service on AWS クラスターを作成する前に、VPC サブネットにタグを付ける必要があります。自動化されたサービス事前チェックにより、これらのリソースをクラスターで使用する前に、リソースが正しくタグ付けされているかどうかが検証されます。次の表は、リソースにタグを付ける方法を示しています。

Expand
リソースキー

パブリックサブネット

kubernetes.io/role/elb

1 (または値なし)

プライベートサブネット

kubernetes.io/role/internal-elb

1 (または値なし)

注記

少なくとも 1 つのプライベートサブネットと、該当する場合は 1 つのパブリックサブネットにタグを付ける必要があります。

前提条件

  • VPC を作成した。
  • aws CLI をインストールした。

手順

  1. 次のコマンドを実行して、ターミナルでリソースにタグを付けます。

    1. パブリックサブネットの場合は、以下を実行します。

      $ aws ec2 create-tags --resources <public-subnet-id> --region <aws_region> --tags Key=kubernetes.io/role/elb,Value=1
      Copy to Clipboard Toggle word wrap
    2. プライベートサブネットの場合は、以下を実行します。

      $ aws ec2 create-tags --resources <private-subnet-id> --region <aws_region> --tags Key=kubernetes.io/role/internal-elb,Value=1
      Copy to Clipboard Toggle word wrap

検証

  • 次のコマンドを実行して、タグが正しく適用されていることを確認します。

    $ aws ec2 describe-tags --filters "Name=resource-id,Values=<subnet_id>"
    Copy to Clipboard Toggle word wrap

    出力例

    TAGS    Name                    <subnet-id>        subnet  <prefix>-subnet-public1-us-east-1a
    TAGS    kubernetes.io/role/elb  <subnet-id>        subnet  1
    Copy to Clipboard Toggle word wrap

1.4. OpenID Connect 設定の作成

Red Hat OpenShift Service on AWS クラスターを作成するときに、クラスターを作成する前に OpenID Connect (OIDC) 設定を作成できます。この設定は、OpenShift Cluster Manager で使用するために登録されています。

前提条件

  • Red Hat OpenShift Service on AWS の AWS 前提条件を完了している。
  • インストールホストに最新の ROSA CLI rosa をインストールして設定した。

手順

  1. AWS リソースと一緒に OIDC 設定を作成するには、次のコマンドを実行します。

    $ rosa create oidc-config --mode=auto --yes
    Copy to Clipboard Toggle word wrap

    このコマンドは次の情報を返します。

    出力例

    ? Would you like to create a Managed (Red Hat hosted) OIDC Configuration Yes
    I: Setting up managed OIDC configuration
    I: To create Operator Roles for this OIDC Configuration, run the following command and remember to replace <user-defined> with a prefix of your choice:
    	rosa create operator-roles --prefix <user-defined> --oidc-config-id 13cdr6b
    If you are going to create a Hosted Control Plane cluster please include '--hosted-cp'
    I: Creating OIDC provider using 'arn:aws:iam::4540112244:user/userName'
    ? Create the OIDC provider? Yes
    I: Created OIDC provider with ARN 'arn:aws:iam::4540112244:oidc-provider/dvbwgdztaeq9o.cloudfront.net/13cdr6b'
    Copy to Clipboard Toggle word wrap

    クラスターを作成するときは、OIDC 設定 ID を指定する必要があります。CLI 出力では、--mode auto のこの値が提供されます。それ以外の場合は、--mode manualaws CLI 出力に基づいてこれらの値を決定する必要があります。

  2. オプション: OIDC 設定 ID を変数として保存して、後で使用できます。次のコマンドを実行して変数を保存します。

    $ export OIDC_ID=<oidc_config_id>
    1
    Copy to Clipboard Toggle word wrap
    1
    上記の出力例では、OIDC 設定 ID は 13cdr6b です。
    • 次のコマンドを実行して、変数の値を表示します。

      $ echo $OIDC_ID
      Copy to Clipboard Toggle word wrap

      出力例

      13cdr6b
      Copy to Clipboard Toggle word wrap

検証

  • ユーザー組織に関連付けられているクラスターで使用できる可能な OIDC 設定をリストできます。以下のコマンドを実行します。

    $ rosa list oidc-config
    Copy to Clipboard Toggle word wrap

    出力例

    ID                                MANAGED  ISSUER URL                                                             SECRET ARN
    2330dbs0n8m3chkkr25gkkcd8pnj3lk2  true     https://dvbwgdztaeq9o.cloudfront.net/2330dbs0n8m3chkkr25gkkcd8pnj3lk2
    233hvnrjoqu14jltk6lhbhf2tj11f8un  false    https://oidc-r7u1.s3.us-east-1.amazonaws.com                           aws:secretsmanager:us-east-1:242819244:secret:rosa-private-key-oidc-r7u1-tM3MDN
    Copy to Clipboard Toggle word wrap

1.5. Operator のロールとポリシーの作成

Red Hat OpenShift Service on AWS クラスターをデプロイするときは、Operator IAM ロールを作成する必要があります。クラスター Operator は、Operator のロールとポリシーを使用して、バックエンドストレージの管理やクラスターへの外部アクセスなどのクラスター操作を実行するために必要な一時的な権限を取得します。

前提条件

  • Red Hat OpenShift Service on AWS の AWS 前提条件を完了している。
  • インストールホストに最新の ROSA CLI (rosa) をインストールして設定した。
  • アカウント全体の AWS ロールを作成した。

手順

  1. Operator ロールを作成するには、次のコマンドを実行します。

    $ rosa create operator-roles --hosted-cp --prefix=$OPERATOR_ROLES_PREFIX --oidc-config-id=$OIDC_ID --installer-role-arn arn:aws:iam::$AWS_ACCOUNT_ID:role/${ACCOUNT_ROLES_PREFIX}-HCP-ROSA-Installer-Role
    Copy to Clipboard Toggle word wrap

    次の内訳は、Operator ロール作成のオプションを示しています。

    $ rosa create operator-roles --hosted-cp
    	--prefix=$OPERATOR_ROLES_PREFIX 
    1
    
    	--oidc-config-id=$OIDC_ID 
    2
    
    	--installer-role-arn arn:aws:iam::$AWS_ACCOUNT_ID:role/$ACCOUNT_ROLES_PREFIX-HCP-ROSA-Installer-Role 
    3
    Copy to Clipboard Toggle word wrap
    1
    これらの Operator ロールを作成するときは、接頭辞を指定する必要があります。そうしないとエラーが発生します。演算子接頭辞は、このセクションの関連情報を参照してください。
    2
    この値は、Red Hat OpenShift Service on AWS クラスター用に作成した OIDC 設定 ID です。
    3
    この値は、Red Hat OpenShift Service on AWS アカウントロールを作成したときに作成したインストーラーロール ARN です。

    Red Hat OpenShift Service on AWS クラスターに正しいロールを作成するには、--hosted-cp パラメーターを含める必要があります。このコマンドは次の情報を返します。

    出力例

    ? Role creation mode: auto
    ? Operator roles prefix: <pre-filled_prefix> 
    1
    
    ? OIDC Configuration ID: 23soa2bgvpek9kmes9s7os0a39i13qm4 | https://dvbwgdztaeq9o.cloudfront.net/23soa2bgvpek9kmes9s7os0a39i13qm4 
    2
    
    ? Create hosted control plane operator roles: Yes
    W: More than one Installer role found
    ? Installer role ARN: arn:aws:iam::4540112244:role/<prefix>-HCP-ROSA-Installer-Role
    ? Permissions boundary ARN (optional):
    I: Reusable OIDC Configuration detected. Validating trusted relationships to operator roles:
    I: Creating roles using 'arn:aws:iam::4540112244:user/<userName>'
    I: Created role '<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials'
    I: Created role '<prefix>-openshift-cloud-network-config-controller-cloud-credenti' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-cloud-network-config-controller-cloud-credenti'
    I: Created role '<prefix>-kube-system-kube-controller-manager' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-kube-controller-manager'
    I: Created role '<prefix>-kube-system-capa-controller-manager' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-capa-controller-manager'
    I: Created role '<prefix>-kube-system-control-plane-operator' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-control-plane-operator'
    I: Created role '<prefix>-kube-system-kms-provider' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-kms-provider'
    I: Created role '<prefix>-openshift-image-registry-installer-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-image-registry-installer-cloud-credentials'
    I: Created role '<prefix>-openshift-ingress-operator-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-ingress-operator-cloud-credentials'
    I: To create a cluster with these roles, run the following command:
    	rosa create cluster --sts --oidc-config-id 23soa2bgvpek9kmes9s7os0a39i13qm4 --operator-roles-prefix <prefix> --hosted-cp
    Copy to Clipboard Toggle word wrap

    1
    このフィールドには、最初の作成コマンドで設定した接頭辞が事前に入力されます。
    2
    このフィールドでは、Red Hat OpenShift Service on AWS クラスター用に作成した OIDC 設定を選択する必要があります。

    Operator ロールが作成され、Red Hat OpenShift Service on AWS クラスターの作成に使用する準備が整いました。

検証

  • Red Hat OpenShift Service on AWS に関連付けられている Operator ロールをリスト表示できます。以下のコマンドを実行します。

    $ rosa list operator-roles
    Copy to Clipboard Toggle word wrap

    出力例

    I: Fetching operator roles
    ROLE PREFIX  AMOUNT IN BUNDLE
    <prefix>      8
    ? Would you like to detail a specific prefix Yes 
    1
    
    ? Operator Role Prefix: <prefix>
    ROLE NAME                                                         ROLE ARN                                                                                         VERSION  MANAGED
    <prefix>-kube-system-capa-controller-manager                       arn:aws:iam::4540112244:role/<prefix>-kube-system-capa-controller-manager                       4.13     No
    <prefix>-kube-system-control-plane-operator                        arn:aws:iam::4540112244:role/<prefix>-kube-system-control-plane-operator                        4.13     No
    <prefix>-kube-system-kms-provider                                  arn:aws:iam::4540112244:role/<prefix>-kube-system-kms-provider                                  4.13     No
    <prefix>-kube-system-kube-controller-manager                       arn:aws:iam::4540112244:role/<prefix>-kube-system-kube-controller-manager                       4.13     No
    <prefix>-openshift-cloud-network-config-controller-cloud-credenti  arn:aws:iam::4540112244:role/<prefix>-openshift-cloud-network-config-controller-cloud-credenti  4.13     No
    <prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials       arn:aws:iam::4540112244:role/<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials       4.13     No
    <prefix>-openshift-image-registry-installer-cloud-credentials      arn:aws:iam::4540112244:role/<prefix>-openshift-image-registry-installer-cloud-credentials      4.13     No
    <prefix>-openshift-ingress-operator-cloud-credentials              arn:aws:iam::4540112244:role/<prefix>-openshift-ingress-operator-cloud-credentials              4.13     No
    Copy to Clipboard Toggle word wrap

    1
    コマンドを実行すると、AWS アカウントに関連付けられているすべての接頭辞が表示され、この接頭辞に関連付けられているロールの数が記録されます。これらのロールとその詳細をすべて表示する必要がある場合は、詳細プロンプトで "Yes" と入力すると、これらのロールが詳細とともにリストされます。

1.6. CLI を使用して Red Hat OpenShift Service on AWS クラスターを作成する

ROSA CLI (rosa) を使用してクラスターを作成する場合、デフォルトのオプションを選択してクラスターをすばやく作成できます。

前提条件

  • Red Hat OpenShift Service on AWS の AWS 前提条件を完了している。
  • 利用可能な AWS サービスクォータがある。
  • AWS コンソールで Red Hat OpenShift Service on AWS を有効にしました。
  • インストールホストに最新の ROSA CLI (rosa) をインストールして設定した。現在インストールされている ROSA CLI のバージョンを確認するには、rosa version を実行します。新しいバージョンが利用可能な場合、CLI はこのアップグレードをダウンロードするためのリンクを提供します。
  • ROSA CLI を使用して Red Hat アカウントにログインしている。
  • OIDC 設定を作成した。
  • AWS Elastic Load Balancing (ELB) サービスロールが AWS アカウントに存在することを確認した。

手順

  1. Red Hat OpenShift Service on AWS クラスターを作成するには、次のいずれかのコマンドを使用します。

    注記

    Red Hat OpenShift Service on AWS クラスターを作成する場合、デフォルトのマシン Classless Inter-Domain Routing (CIDR) は 10.0.0.0/16 です。これが VPC サブネットの CIDR 範囲に対応していない場合は、次のコマンドに --machine-cidr <address_block> を追加します。Red Hat OpenShift Service on AWS のデフォルト CIDR 範囲の詳細は、「CIDR 範囲の定義」を参照してください。

    • 環境変数を設定していない場合は、以下のコマンドを実行します。

      $ rosa create cluster --cluster-name=<cluster_name> \ 
      1
      
          --mode=auto --hosted-cp [--private] \ 
      2
      
          --operator-roles-prefix <operator-role-prefix> \ 
      3
      
          --external-id <external-id> \ 
      4
      
          --oidc-config-id <id-of-oidc-configuration> \
          --subnet-ids=<public-subnet-id>,<private-subnet-id>
      Copy to Clipboard Toggle word wrap
      1
      クラスターの名前を指定します。クラスター名が 15 文字を超える場合、openshiftapps.com でプロビジョニングされたクラスターのサブドメインとして自動生成されたドメイン接頭辞が含まれます。サブドメインをカスタマイズするには、--domain-prefix フラグを使用します。ドメイン接頭辞は 15 文字を超えてはならず、一意である必要があり、クラスターの作成後に変更できません。
      2
      オプション: --private 引数はプライベート Red Hat OpenShift Service on AWS クラスターを作成するために使用されます。この引数を使用する場合は、--subnet-ids にプライベートサブネット ID のみを使用するようにしてください。
      3
      デフォルトでは、クラスター固有の Operator のロール名には、クラスター名とランダムな 4 桁のハッシュが接頭辞として付けられます。オプションで、ロール名の <cluster_name>-<hash> を置き換えるカスタム接頭辞を指定できます。接頭辞は、クラスター固有の Operator IAM ロールを作成するときに適用されます。接頭辞の詳細は、カスタム Operator IAM ロール接頭辞について を参照してください。
      注記

      関連するアカウント全体のロールを作成したときにカスタム ARN パスを指定した場合、カスタムパスは自動的に検出されます。カスタムパスは、後のステップで作成するときに、クラスター固有の Operator ロールに適用されます。

      4
      オプション: 別のアカウントでロールを引き受けるときに必要になる可能性のある一意の識別子。
    • 環境変数を設定する場合、単一の初期マシンプールを備え、パブリックまたはプライベートに利用可能な API および Ingress を使用するクラスターを作成するには、次のコマンドを実行します。

      $ rosa create cluster --private --cluster-name=<cluster_name> \
          --mode=auto --hosted-cp --operator-roles-prefix=$OPERATOR_ROLES_PREFIX \
          --oidc-config-id=$OIDC_ID --subnet-ids=$SUBNET_IDS
      Copy to Clipboard Toggle word wrap
    • 環境変数を設定する場合、単一の初期マシンプール、パブリックに利用可能な API、およびパブリックに利用可能な Ingress を備えたクラスターを作成するには、次のコマンドを実行します。

      $ rosa create cluster --cluster-name=<cluster_name> --mode=auto \
          --hosted-cp --operator-roles-prefix=$OPERATOR_ROLES_PREFIX \
          --oidc-config-id=$OIDC_ID --subnet-ids=$SUBNET_IDS
      Copy to Clipboard Toggle word wrap
  2. 次のコマンドを実行して、クラスターのステータスを確認します。

    $ rosa describe cluster --cluster=<cluster_name>
    Copy to Clipboard Toggle word wrap

    以下の State フィールドの変更は、クラスターインストールの進捗として出力に表示されます。

    • pending (Preparing account)
    • installing (DNS setup in progress)
    • installing
    • ready

      注記

      インストールが失敗した場合や、State フィールドが 10 分以上 ready に変わらない場合は、インストールのトラブルシューティングのドキュメントで詳細を確認してください。詳細は、インストールのトラブルシューティング を参照してください。Red Hat サポートにサポートを依頼する手順は、Red Hat OpenShift Service on AWS のサポートの利用 を参照してください。

  3. Red Hat OpenShift Service on AWS インストールプログラムのログを監視して、クラスター作成の進行状況を追跡します。ログを確認するには、次のコマンドを実行します。

    $ rosa logs install --cluster=<cluster_name> --watch \ 
    1
    Copy to Clipboard Toggle word wrap
    1
    オプション: インストールの進行中に新しいログメッセージを監視するには、--watch 引数を使用します。

1.7. クラスターへのユーザーアクセスの付与

設定されたアイデンティティープロバイダーにユーザーを追加することで、Red Hat OpenShift Service on AWS クラスターへのアクセス権をユーザーに付与できます。

Red Hat OpenShift Service on AWS クラスターにさまざまなタイプのアイデンティティープロバイダーを設定できます。以下の手順例では、クラスターへのアイデンティティープロビジョニング用に設定された GitHub 組織に、ユーザーを追加します。

手順

  1. github.com に移動し、GitHub アカウントにログインします。
  2. Red Hat OpenShift Service on AWS クラスターへのアクセスを必要とするユーザーを GitHub 組織に招待します。GitHub ドキュメントの 組織に参加するようにユーザーを招待する の手順を実行してください。

1.8. ユーザーへの管理者権限の付与

設定されたアイデンティティープロバイダーにユーザーを追加したら、Red Hat OpenShift Service on AWS クラスターに対してユーザーに cluster-admin または dedicated-admin 特権権限を付与できます。

手順

  • アイデンティティープロバイダーユーザーの cluster-admin 権限を設定するには、以下を実行します。

    1. ユーザーに cluster-admin 権限を付与します。

      $ rosa grant user cluster-admin --user=<idp_user_name> --cluster=<cluster_name> 
      1
      Copy to Clipboard Toggle word wrap
      1
      <idp_user_name> および <cluster_name> は、アイデンティティープロバイダーのユーザーおよびクラスター名に置き換えます。

      出力例

      I: Granted role 'cluster-admins' to user '<idp_user_name>' on cluster '<cluster_name>'
      Copy to Clipboard Toggle word wrap

    2. ユーザーが cluster-admins グループのメンバーとしてリスト表示されているかどうかを確認します。

      $ rosa list users --cluster=<cluster_name>
      Copy to Clipboard Toggle word wrap

      出力例

      ID                 GROUPS
      <idp_user_name>    cluster-admins
      Copy to Clipboard Toggle word wrap

  • アイデンティティープロバイダーユーザーに dedicated-admin 権限を設定するには、以下を実行します。

    1. ユーザーに dedicated-admin 権限を付与します。

      $ rosa grant user dedicated-admin --user=<idp_user_name> --cluster=<cluster_name>
      Copy to Clipboard Toggle word wrap

      出力例

      I: Granted role 'dedicated-admins' to user '<idp_user_name>' on cluster '<cluster_name>'
      Copy to Clipboard Toggle word wrap

    2. ユーザーが dedicated-admins グループのメンバーとしてリスト表示されているかどうかを確認します。

      $ rosa list users --cluster=<cluster_name>
      Copy to Clipboard Toggle word wrap

      出力例

      ID                 GROUPS
      <idp_user_name>    dedicated-admins
      Copy to Clipboard Toggle word wrap

1.9. Web コンソールを使用したクラスターへのアクセス

クラスター管理者ユーザーを作成するか、設定されたアイデンティティープロバイダーにユーザーを追加したら、Web コンソールから Red Hat OpenShift Service on AWS クラスターにログインできます。

手順

  1. クラスターのコンソール URL を取得します。

    $ rosa describe cluster -c <cluster_name> | grep Console 
    1
    Copy to Clipboard Toggle word wrap
    1
    <cluster_name> は、クラスター名に置き換えます。

    出力例

    Console URL:                https://console-openshift-console.apps.example-cluster.wxyz.p1.openshiftapps.com
    Copy to Clipboard Toggle word wrap

  2. 前述の手順の出力にあるコンソール URL に移動し、ログインします。

    • cluster-admin ユーザーを作成した場合は、指定した認証情報を使用してログインします。
    • クラスターにアイデンティティープロバイダーを設定している場合は、Log in with…​ ダイアログでアイデンティティープロバイダー名を選択し、プロバイダーによって提示される認可要求を完了します。

1.10. Developer Catalog からのアプリケーションのデプロイ

Red Hat OpenShift Service on AWS Web コンソールの Developer Catalog からテストアプリケーションをデプロイし、ルートで公開できます。

前提条件

  • Red Hat Hybrid Cloud Console にログインしている。
  • Red Hat OpenShift Service on AWS クラスターを作成している。
  • クラスターにアイデンティティープロバイダーを設定している。
  • 設定したアイデンティティープロバイダーにユーザーアカウントを追加している。

手順

  1. OpenShift Cluster ManagerCluster List ページに移動します。
  2. 表示するクラスターの横にあるオプションアイコン (⋮) をクリックします。
  3. Open console をクリックします。
  4. クラスターコンソールが新しいブラウザーウィンドウで開きます。設定済みのアイデンティティープロバイダーの認証情報を使用して Red Hat アカウントにログインします。
  5. Administrator パースペクティブで、HomeProjectsCreate Project の順に選択します。
  6. プロジェクトの名前を入力し、必要に応じて Display Name および Description を追加します。
  7. Create をクリックしてプロジェクトを作成します。
  8. Developer パースペクティブに切り替え、+Add を選択します。選択した Project が、作成したプロジェクトであることを確認します。
  9. Developer Catalog ダイアログで、All services を選択します。
  10. Developer Catalog ページで、メニューから LanguagesJavaScript を選択します。
  11. Node.js をクリックし、次に Create をクリックして、Create Source-to-Image application ページを開きます。

    注記

    場合によっては、Clear All Filters をクリックして Node.js オプションを表示する必要があります。

  12. Git セクションで Try sample をクリックします。
  13. Name フィールドに一意の名前を追加します。この値を使用して、関連付けられたリソースに名前を付けます。
  14. DeploymentCreate a route が選択されていることを確認します。
  15. Create をクリックしてアプリケーションをデプロイします。Pod のデプロイには数分かかります。
  16. オプション: Node.js アプリケーションを選択してそのサイドバーを確認し、Topology ペインで Pod のステータスを確認します。nodejs ビルドが完了し、nodejs Pod が Running 状態になるまで待機してから続行します。
  17. デプロイメントが完了したら、以下のような形式のアプリケーションのルート URL をクリックします。

    https://nodejs-<project>.<cluster_name>.<hash>.<region>.openshiftapps.com/
    Copy to Clipboard Toggle word wrap

    ブラウザーの新しいタブが開き、以下のようなメッセージが表示されます。

    Welcome to your Node.js application on OpenShift
    Copy to Clipboard Toggle word wrap
  18. オプション: アプリケーションを削除し、作成したリソースをクリーンアップします。

    1. Administrator パースペクティブで、HomeProjects に移動します。
    2. プロジェクトのアクションメニューをクリックし、Delete Project を選択します。

1.11. 管理者権限とユーザーアクセスの取り消し

ROSA CLI rosa を使用して、ユーザーから cluster-admin 権限または dedicated-admin 特権を取り消すことができます。

ユーザーからのクラスターアクセスを取り消すには、設定したアイデンティティープロバイダーからユーザーを削除する必要があります。

このセクションの手順に従って、ユーザーからの管理者権限またはクラスターアクセスを取り消すことができます。

ユーザーからの管理者権限の削除

このセクションの手順に従って、ユーザーから cluster-admin 権限または dedicated-admin 権限を取り消すことができます。

手順

  • アイデンティティープロバイダーユーザーから cluster-admin 権限を取り消すには、以下を実行します。

    1. cluster-admin 権限を取り消します。

      $ rosa revoke user cluster-admin --user=<idp_user_name> --cluster=<cluster_name> 
      1
      Copy to Clipboard Toggle word wrap
      1
      <idp_user_name> および <cluster_name> は、アイデンティティープロバイダーのユーザーおよびクラスター名に置き換えます。

      出力例

      ? Are you sure you want to revoke role cluster-admins from user <idp_user_name> in cluster <cluster_name>? Yes
      I: Revoked role 'cluster-admins' from user '<idp_user_name>' on cluster '<cluster_name>'
      Copy to Clipboard Toggle word wrap

    2. ユーザーが cluster-admins グループのメンバーとしてリスト表示されていないことを確認します。

      $ rosa list users --cluster=<cluster_name>
      Copy to Clipboard Toggle word wrap

      出力例

      W: There are no users configured for cluster '<cluster_name>'
      Copy to Clipboard Toggle word wrap

  • アイデンティティープロバイダーユーザーから dedicated-admin 権限を取り消すには、以下を実行します。

    1. dedicated-admin 特権を取り消します。

      $ rosa revoke user dedicated-admin --user=<idp_user_name> --cluster=<cluster_name>
      Copy to Clipboard Toggle word wrap

      出力例

      ? Are you sure you want to revoke role dedicated-admins from user <idp_user_name> in cluster <cluster_name>? Yes
      I: Revoked role 'dedicated-admins' from user '<idp_user_name>' on cluster '<cluster_name>'
      Copy to Clipboard Toggle word wrap

    2. ユーザーが dedicated-admins グループのメンバーとしてリスト表示されていないことを確認します。

      $ rosa list users --cluster=<cluster_name>
      Copy to Clipboard Toggle word wrap

      出力例

      W: There are no users configured for cluster '<cluster_name>'
      Copy to Clipboard Toggle word wrap

クラスターへのユーザーアクセスの取り消し

アイデンティティープロバイダーを設定済みのアイデンティティープロバイダーから削除して、アイデンティティープロバイダーからクラスターへのアクセス権限を取り除くことができます。

Red Hat OpenShift Service on AWS クラスターにさまざまなタイプのアイデンティティープロバイダーを設定できます。以下の手順例では、クラスターへのアイデンティティープロビジョニング用に設定された GitHub 組織のメンバーのクラスターへのアクセス権を取り消すことができます。

手順

  1. github.com に移動し、GitHub アカウントにログインします。
  2. GitHub 組織からユーザーを削除します。GitHub ドキュメントの 組織からのメンバーの削除 の手順に従います。

1.12. Red Hat OpenShift Service on AWS クラスターと AWS IAM STS リソースの削除

ROSA CLI rosa を使用して Red Hat OpenShift Service on AWS クラスターを削除できます。また、ROSA CLI を使用して、AWS Identity and Access Management (IAM) アカウントワイドロール、クラスター固有の Operator ロール、および OpenID Connect (OIDC) プロバイダーを削除することもできます。アカウント全体のポリシーと Operator ポリシーを削除するには、AWS IAM コンソールまたは AWS CLI を使用できます。

重要

アカウント全体の IAM ロールとポリシーは、同じ AWS アカウント内の他の Red Hat OpenShift Service on AWS クラスターで使用される場合があります。他のクラスターで必要とされていない場合に限り、リソースを削除する必要があります。

手順

  1. クラスターを削除し、ログを監視します。<cluster_name> はクラスターの名前または ID に置き換えます。

    $ rosa delete cluster --cluster=<cluster_name> --watch
    Copy to Clipboard Toggle word wrap
    重要

    IAM ロール、ポリシー、および OIDC プロバイダーを削除する前に、クラスターの削除が完了するのを待つ必要があります。インストーラーで作成されたリソースを削除するために、アカウント全体のロールが必要です。クラスター固有の Operator ロールは、OpenShift Operator によって作成されるリソースをクリーンアップするために必要です。Operator は OIDC プロバイダーを使用して AWS API で認証します。

  2. クラスターが削除されたら、クラスター Operator が認証に使用する OIDC プロバイダーを削除します。

    $ rosa delete oidc-provider -c <cluster_id> --mode auto 
    1
    Copy to Clipboard Toggle word wrap
    1
    <cluster_id> をクラスターの ID に置き換えてください。
    注記

    -y オプションを使用すると、プロンプトに対して自動的にはいと答えることができます。

  3. クラスター固有の Operator IAM ロールを削除します。

    $ rosa delete operator-roles -c <cluster_id> --mode auto 
    1
    Copy to Clipboard Toggle word wrap
    1
    <cluster_id> をクラスターの ID に置き換えてください。
  4. アカウント全体のロールを削除します。

    重要

    アカウント全体の IAM ロールとポリシーは、同じ AWS アカウント内の他の Red Hat OpenShift Service on AWS クラスターで使用される場合があります。他のクラスターで必要とされていない場合に限り、リソースを削除する必要があります。

    $ rosa delete account-roles --prefix <prefix> --mode auto 
    1
    Copy to Clipboard Toggle word wrap
    1
    その際、--<prefix> 引数を含める必要があります。<prefix> を削除するアカウント全体のロールの接頭辞に置き換えてください。アカウント全体のロールを作成するときにカスタム接頭辞を指定しなかった場合は、作成方法に応じて、デフォルトの接頭辞 (HCP-ROSA または ManagedOpenShift) を指定します。
  5. Red Hat OpenShift Service on AWS 用に作成したアカウント全体のポリシーと Operator IAM ポリシーを削除します。

    1. AWS IAM コンソール にログインします。
    2. Access managementPolicies に移動し、アカウント全体のポリシーのいずれかを選択します。
    3. ポリシーを選択した状態で、ActionsDelete をクリックし、削除ポリシーダイアログを開きます。
    4. ポリシー名を入力して削除の確認を行い、Delete を選択してポリシーを削除します。
    5. このステップを繰り返して、クラスターのアカウント全体のポリシーと Operator ポリシーをそれぞれ削除します。

第2章 デフォルトオプションを使用して Red Hat OpenShift Service on AWS クラスターを作成する

Hosted Control Plane を使用する Red Hat OpenShift Service on AWS は、AWS クラスター上に Red Hat OpenShift Service を作成するための、より効率的で信頼性の高いアーキテクチャーを提供します。Hosted Control Plane では、各クラスターに AWS アカウント内で分離された専用のコントロールプレーンが存在します。

デフォルトのオプションと自動 AWS Identity and Access Management (IAM) リソース作成を使用して、Red Hat OpenShift Service on AWS クラスターをすばやく作成します。ROSA CLI (rosa) を使用してクラスターをデプロイできます。

重要

既存の Red Hat OpenShift Service on AWS (クラシックアーキテクチャー) クラスターを Hosted Control Plane アーキテクチャーにアップグレードまたは変換することはできないため、Red Hat OpenShift Service on AWS 機能を使用するには新しいクラスターを作成する必要があります。

注記

Red Hat OpenShift Service on AWS クラスターは AWS IAM セキュリティートークンサービス (STS) 認証のみをサポートします。

関連資料

自動作成モードに関する考慮事項

このドキュメントの手順では、ROSA CLI の auto モードを使用して、現在の AWS アカウントを使用して必要な IAM リソースを即座に作成します。必要なリソースには、アカウント全体の IAM ロールおよびポリシー、クラスター固有の Operator ロール、ならびに OpenID Connect (OIDC) ID プロバイダーが含まれます。

または、IAM リソースを自動的にデプロイする代わりに、IAM リソースの作成に必要な aws コマンドを出力する manual モードを使用することもできます。

次のステップ

2.1. デフォルトのクラスター仕様の概要

デフォルトのインストールオプションを使用して、Red Hat OpenShift Service on AWS クラスターをすばやく作成できます。

次の要約では、デフォルトのクラスター仕様を説明します。

Expand
表2.1 Red Hat OpenShift Service on AWS クラスター仕様
コンポーネントデフォルトの仕様

アカウントおよびロール

  • デフォルトの IAM ロールの接頭辞: HCP-ROSA

クラスター設定

  • デフォルトのクラスターバージョン: 最新
  • ROSA CLI (rosa) を使用したインストールのデフォルトの AWS リージョン: aws CLI 設定によって定義されます。
  • デフォルトの EC2 IMDS エンドポイント (v1 と v2 の両方) が有効になっています
  • 可用性: データプレーンの単一ゾーン
  • ユーザー定義プロジェクトの監視: 有効
  • クラスター管理者ロールは作成されない

コンピュートノードマシンプール

  • コンピュートノードインスタンスタイプ: m5.xlarge (4 vCPU 16, GiB RAM)
  • コンピュートノード数: 2
  • 自動スケーリング: 無効
  • 追加のノードラベルなし

ネットワーク設定

  • クラスターのプライバシー: パブリック
  • クラスター全体のプロキシーは設定されていません。

Classless Inter-Domain Routing (CIDR) の範囲

  • Machine CIDR: 10.0.0.0/16
  • Service CIDR: 172.30.0.0/16
  • Pod CIDR: 10.128.0.0/14
  • Host prefix: /23

    注記

    静的 IP アドレス 172.20.0.1 は、内部 Kubernetes API アドレス用に予約されています。マシン、Pod、およびサービスの CIDR 範囲は、この IP アドレスと競合してはなりません。

クラスターのロールおよびポリシー

  • Operator ロールおよび OpenID Connect (OIDC) プロバイダーの作成に使用されるモード: auto

    注記

    Hybrid Cloud Console で OpenShift Cluster Manager を使用してインストールする場合、auto モードには管理者権限が割り当てられた OpenShift Cluster Manager ロール (ocm-role) が必要です。

  • デフォルトの Operator ロールの接頭辞: <cluster_name>-<4_digit_random_string>

ストレージ

  • ノードボリューム:

    • タイプ: AWS EBS GP3
    • デフォルトサイズ: 300 GiB (作成時に調整可能)
  • ワークロード永続ボリューム:

    • デフォルトの StorageClass: gp3-csi
    • プロビジョナー: ebs.csi.aws.com
    • 動的永続ボリュームのプロビジョニング

クラスター更新ストラテジー

  • 個別の更新
  • 1 時間のノード drain (Pod の退避) 猶予期間

2.2. Red Hat OpenShift Service on AWS の前提条件

Red Hat OpenShift Service on AWS クラスターを作成するには、次の項目が必要です。

  • 設定された仮想プライベートクラウド (VPC)
  • アカウント全体のロール
  • OIDC 設定
  • Operator ロール

2.2.1. Red Hat OpenShift Service on AWS クラスター用の Virtual Private Cloud の作成

Red Hat OpenShift Service on AWS クラスターを作成するには、仮想プライベートクラウド (VPC) が必要です。次の方法を使用して VPC を作成できます。

  • ROSA CLI を使用した VPC の作成
  • Terraform テンプレートを使用して VPC を作成する
  • AWS コンソールで VPC リソースを手動で作成する
注記

Terraform の手順はテストとデモンストレーションを目的としています。独自のインストールでは、独自に使用するために VPC にいくつかの変更を加える必要があります。また、この Terraform 設定を使用する場合は、クラスターをインストールする予定のリージョンと同じリージョン内に設定があることを確認してください。以下の例では、us-east-2 が使用されています。

ROSA CLI を使用した AWS VPC の作成

rosa create network コマンドは、ROSA CLI のバージョン 1.2.48 以降で使用できます。このコマンドは、AWS CloudFormation を使用して、Red Hat OpenShift Service on AWS クラスターのインストールに必要な VPC と関連ネットワークコンポーネントを作成します。CloudFormation はネイティブの AWS インフラストラクチャーコードツールであり、AWS CLI と互換性があります。

テンプレートを指定しない場合、次のパラメーターを持つリソースを作成するデフォルトのテンプレートが CloudFormation によって使用されます。

Expand
VPC のパラメーター

アベイラビリティーゾーン

1

リージョン

us-east-1

VPC CIDR

10.0.0.0/16

rosa create network コマンドで使用する CloudFormation テンプレートを作成し、カスタマイズできます。デフォルトの VPC テンプレートの詳細は、このセクションの関連情報を参照してください。

前提条件

  • AWS アカウントを設定した。
  • Red Hat アカウントを設定した。
  • ROSA CLI をインストールし、最新バージョンに設定した。

手順

  1. 次のコマンドを実行して、デフォルトの CloudFormations テンプレートを使用して AWS VPC を作成します。

    $ rosa create network
    Copy to Clipboard Toggle word wrap
  2. オプション: 追加のパラメーターを指定して VPC をカスタマイズします。

    --param フラグを使用すると、デフォルトの VPC テンプレートへの変更を指定できます。次のコマンド例では、regionNameAvailabilityZoneCount、および VpcCidr のカスタム値を指定します。

    $ rosa create network --param Region=us-east-2 --param Name=quickstart-stack --param AvailabilityZoneCount=3 --param VpcCidr=10.0.0.0/16
    Copy to Clipboard Toggle word wrap

    このコマンドの実行には約 5 分かかります。リソースが作成されるたびに、AWS から定期的にステータスの更新が提供されます。CloudFormation に問題がある場合は、ロールバックが試行されます。それ以外のエラーが発生した場合は、エラーメッセージの指示に従うか、AWS サポートにお問い合わせください。

検証

  • 完了すると、作成されたリソースの概要が表示されます。

    INFO[0140] Resources created in stack:
    INFO[0140] Resource: AttachGateway, Type: AWS::EC2::VPCGatewayAttachment, ID: <gateway_id>
    INFO[0140] Resource: EC2VPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce_id>
    INFO[0140] Resource: EcrApiVPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce_id>
    INFO[0140] Resource: EcrDkrVPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce_id>
    INFO[0140] Resource: ElasticIP1, Type: AWS::EC2::EIP, ID: <IP>
    INFO[0140] Resource: ElasticIP2, Type: AWS::EC2::EIP, ID: <IP>
    INFO[0140] Resource: InternetGateway, Type: AWS::EC2::InternetGateway, ID: igw-016e1a71b9812464e
    INFO[0140] Resource: KMSVPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce_id>
    INFO[0140] Resource: NATGateway1, Type: AWS::EC2::NatGateway, ID: <nat-gateway_id>
    INFO[0140] Resource: PrivateRoute, Type: AWS::EC2::Route, ID: <route_id>
    INFO[0140] Resource: PrivateRouteTable, Type: AWS::EC2::RouteTable, ID: <route_id>
    INFO[0140] Resource: PrivateSubnetRouteTableAssociation1, Type: AWS::EC2::SubnetRouteTableAssociation, ID: <route_id>
    INFO[0140] Resource: PublicRoute, Type: AWS::EC2::Route, ID: <route_id>
    INFO[0140] Resource: PublicRouteTable, Type: AWS::EC2::RouteTable, ID: <route_id>
    INFO[0140] Resource: PublicSubnetRouteTableAssociation1, Type: AWS::EC2::SubnetRouteTableAssociation, ID: <route_id>
    INFO[0140] Resource: S3VPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce_id>
    INFO[0140] Resource: STSVPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce_id>
    INFO[0140] Resource: SecurityGroup, Type: AWS::EC2::SecurityGroup, ID: <security-group_id>
    INFO[0140] Resource: SubnetPrivate1, Type: AWS::EC2::Subnet, ID: <private_subnet_id-1> \ 
    1
    
    INFO[0140] Resource: SubnetPublic1, Type: AWS::EC2::Subnet, ID: <public_subnet_id-1> \ 
    2
    
    INFO[0140] Resource: VPC, Type: AWS::EC2::VPC, ID: <vpc_id>
    INFO[0140] Stack rosa-network-stack-5555 created \ 
    3
    Copy to Clipboard Toggle word wrap
    1 2
    これら 2 つのサブネット ID は、rosa create cluster コマンドの使用時にクラスターを作成するために使用されます。
    3
    ネットワークスタック名は、後でリソースを削除するために使用されます。
Terraform を使用した Virtual Private Cloud の作成

Terraform は、確立されたテンプレートを使用してさまざまなリソースを作成できるツールです。次のプロセスでは、必要に応じてデフォルトのオプションを使用して Red Hat OpenShift Service on AWS クラスターを作成します。Terraform の使用の詳細は、関連情報を参照してください。

前提条件

  • マシンに Terraform バージョン 1.4.0 以降がインストールされている。
  • マシンに Git がインストールされている。

手順

  1. シェルプロンプトを開き、次のコマンドを実行して Terraform VPC リポジトリーのクローンを作成します。

    $ git clone https://github.com/openshift-cs/terraform-vpc-example
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを実行して、作成したディレクトリーに移動します。

    $ cd terraform-vpc-example
    Copy to Clipboard Toggle word wrap
  3. 次のコマンドを実行して、Terraform ファイルを開始します。

    $ terraform init
    Copy to Clipboard Toggle word wrap

    このプロセスが完了すると、初期化を確認するメッセージが表示されます。

  4. 既存の Terraform テンプレートに基づいて VPC Terraform プランを構築するには、plan コマンドを実行します。AWS リージョンを含める必要があります。クラスター名を指定することもできます。terraform plan が完了すると、rosa.tfplan ファイルが hypershift-tf ディレクトリーに追加されます。オプションの詳細は、Terraform VPC リポジトリーの README ファイル を参照してください。

    $ terraform plan -out rosa.tfplan -var region=<region>
    Copy to Clipboard Toggle word wrap
  5. 次のコマンドを実行して、このプランファイルを適用して VPC を構築します。

    $ terraform apply rosa.tfplan
    Copy to Clipboard Toggle word wrap
    1. オプション: 次のコマンドを実行すると、Terraform でプロビジョニングされたプライベート、パブリック、およびマシンプールのサブネット ID の値を、Red Hat OpenShift Service on AWS クラスターの作成時に使用する環境変数としてキャプチャーできます。

      $ export SUBNET_IDS=$(terraform output -raw cluster-subnets-string)
      Copy to Clipboard Toggle word wrap
    2. 次のコマンドを使用して、変数が正しく設定されたことを確認できます。

      $ echo $SUBNET_IDS
      Copy to Clipboard Toggle word wrap

      出力例

      $ subnet-0a6a57e0f784171aa,subnet-078e84e5b10ecf5b0
      Copy to Clipboard Toggle word wrap

AWS Virtual Private Cloud の手動作成

Terraform を使用する代わりに、AWS Virtual Private Cloud (VPC) を手動で作成することを選択した場合は、AWS コンソールの VPC ページ に移動します。

VPC は、次の表に示す要件を満たしている必要があります。

Expand
表2.2 VPC の要件
要件詳細

VPC 名

クラスターを作成するときは、特定の VPC 名と ID が必要です。

CIDR 範囲

VPC CIDR 範囲はマシンの CIDR と一致する必要があります。

アベイラビリティーゾーン

単一ゾーンの場合は 1 つの可用性ゾーンが必要で、複数ゾーンの場合は 3 つの可用性ゾーンが必要です。

パブリックサブネット

パブリッククラスターには、NAT ゲートウェイを備えたパブリックサブネットが 1 つ必要です。プライベートクラスターにはパブリックサブネットは必要ありません。

DNS ホスト名と解決

DNS ホスト名と解決が有効になっていることを確認する必要があります。

2.2.2. トラブルシューティング

クラスターのインストールに失敗した場合は、次の一般的な問題のトラブルシューティングを実行してください。

  • DHCP オプションセット にドメイン名が含まれていることを確認し、ドメイン名にスペースや大文字が含まれていないことを確認します。
  • VPC でカスタム DNS リゾルバーが使用されている場合 (DHCP オプションセットの ドメインネームサーバー フィールドが AmazonProvideDNS ではない)、Route53 で設定されているプライベートホストゾーンを適切に解決できることを確認します。

Red Hat OpenShift Service on AWS クラスターのインストールのトラブルシューティングの詳細は、Red Hat OpenShift Service on AWS クラスターのインストールのトラブルシューティングを 参照してください。

サポートの利用

追加の サポート が必要な場合は、Red Hat カスタマーポータルにアクセスして、ナレッジベースの記事の確認、サポートケースの作成、追加の製品ドキュメントおよびリソースの確認を行ってください。

サブネットへのタグ付け

VPC を使用して Red Hat OpenShift Service on AWS クラスターを作成する前に、VPC サブネットにタグを付ける必要があります。自動化されたサービス事前チェックにより、これらのリソースをクラスターで使用する前に、リソースが正しくタグ付けされているかどうかが検証されます。次の表は、リソースにタグを付ける方法を示しています。

Expand
リソースキー

パブリックサブネット

kubernetes.io/role/elb

1 (または値なし)

プライベートサブネット

kubernetes.io/role/internal-elb

1 (または値なし)

注記

少なくとも 1 つのプライベートサブネットと、該当する場合は 1 つのパブリックサブネットにタグを付ける必要があります。

前提条件

  • VPC を作成した。
  • aws CLI をインストールした。

手順

  1. 次のコマンドを実行して、ターミナルでリソースにタグを付けます。

    1. パブリックサブネットの場合は、以下を実行します。

      $ aws ec2 create-tags --resources <public-subnet-id> --region <aws_region> --tags Key=kubernetes.io/role/elb,Value=1
      Copy to Clipboard Toggle word wrap
    2. プライベートサブネットの場合は、以下を実行します。

      $ aws ec2 create-tags --resources <private-subnet-id> --region <aws_region> --tags Key=kubernetes.io/role/internal-elb,Value=1
      Copy to Clipboard Toggle word wrap

検証

  • 次のコマンドを実行して、タグが正しく適用されていることを確認します。

    $ aws ec2 describe-tags --filters "Name=resource-id,Values=<subnet_id>"
    Copy to Clipboard Toggle word wrap

    出力例

    TAGS    Name                    <subnet-id>        subnet  <prefix>-subnet-public1-us-east-1a
    TAGS    kubernetes.io/role/elb  <subnet-id>        subnet  1
    Copy to Clipboard Toggle word wrap

2.2.3. アカウント全体の STS ロールおよびポリシーの作成

Red Hat OpenShift Service on AWS クラスターを作成する前に、必要なアカウント全体のロールとポリシーを作成する必要があります。

注記

Red Hat OpenShift Service on AWS の特定の AWS 管理ポリシーを各ロールに添付する必要があります。これらの必要なアカウントロールには、顧客管理のポリシーを使用しないでください。Red Hat OpenShift Service on AWS クラスターの AWS 管理ポリシーの詳細は、ROSA の AWS 管理ポリシーを 参照してください。

前提条件

  • Red Hat OpenShift Service on AWS の AWS 前提条件を完了している。
  • 利用可能な AWS サービスクォータがある。
  • AWS コンソールで Red Hat OpenShift Service on AWS を有効にしました。
  • インストールホストに最新の ROSA CLI (rosa) をインストールして設定した。
  • ROSA CLI を使用して Red Hat アカウントにログインしている。

手順

  1. AWS アカウントに存在しない場合は、次のコマンドを実行して、必要なアカウント全体の STS ロールを作成し、ポリシーをアタッチします。

    $ rosa create account-roles --hosted-cp
    Copy to Clipboard Toggle word wrap
  2. オプション: 次のコマンドを実行して、接頭辞を環境変数として設定します。

    $ export ACCOUNT_ROLES_PREFIX=<account_role_prefix>
    Copy to Clipboard Toggle word wrap
    • 次のコマンドを実行して、変数の値を表示します。

      $ echo $ACCOUNT_ROLES_PREFIX
      Copy to Clipboard Toggle word wrap

      出力例

      ManagedOpenShift
      Copy to Clipboard Toggle word wrap

Red Hat OpenShift Service on AWS の AWS 管理 IAM ポリシーの詳細は、ROSA の AWS 管理 IAM ポリシー を参照してください。

2.2.4. OpenID Connect 設定の作成

Red Hat OpenShift Service on AWS クラスターを作成するときに、クラスターを作成する前に OpenID Connect (OIDC) 設定を作成できます。この設定は、OpenShift Cluster Manager で使用するために登録されています。

前提条件

  • Red Hat OpenShift Service on AWS の AWS 前提条件を完了している。
  • インストールホストに最新の ROSA CLI rosa をインストールして設定した。

手順

  1. AWS リソースと一緒に OIDC 設定を作成するには、次のコマンドを実行します。

    $ rosa create oidc-config --mode=auto --yes
    Copy to Clipboard Toggle word wrap

    このコマンドは次の情報を返します。

    出力例

    ? Would you like to create a Managed (Red Hat hosted) OIDC Configuration Yes
    I: Setting up managed OIDC configuration
    I: To create Operator Roles for this OIDC Configuration, run the following command and remember to replace <user-defined> with a prefix of your choice:
    	rosa create operator-roles --prefix <user-defined> --oidc-config-id 13cdr6b
    If you are going to create a Hosted Control Plane cluster please include '--hosted-cp'
    I: Creating OIDC provider using 'arn:aws:iam::4540112244:user/userName'
    ? Create the OIDC provider? Yes
    I: Created OIDC provider with ARN 'arn:aws:iam::4540112244:oidc-provider/dvbwgdztaeq9o.cloudfront.net/13cdr6b'
    Copy to Clipboard Toggle word wrap

    クラスターを作成するときは、OIDC 設定 ID を指定する必要があります。CLI 出力では、--mode auto のこの値が提供されます。それ以外の場合は、--mode manualaws CLI 出力に基づいてこれらの値を決定する必要があります。

  2. オプション: OIDC 設定 ID を変数として保存して、後で使用できます。次のコマンドを実行して変数を保存します。

    $ export OIDC_ID=<oidc_config_id>
    1
    Copy to Clipboard Toggle word wrap
    1
    上記の出力例では、OIDC 設定 ID は 13cdr6b です。
    • 次のコマンドを実行して、変数の値を表示します。

      $ echo $OIDC_ID
      Copy to Clipboard Toggle word wrap

      出力例

      13cdr6b
      Copy to Clipboard Toggle word wrap

検証

  • ユーザー組織に関連付けられているクラスターで使用できる可能な OIDC 設定をリストできます。以下のコマンドを実行します。

    $ rosa list oidc-config
    Copy to Clipboard Toggle word wrap

    出力例

    ID                                MANAGED  ISSUER URL                                                             SECRET ARN
    2330dbs0n8m3chkkr25gkkcd8pnj3lk2  true     https://dvbwgdztaeq9o.cloudfront.net/2330dbs0n8m3chkkr25gkkcd8pnj3lk2
    233hvnrjoqu14jltk6lhbhf2tj11f8un  false    https://oidc-r7u1.s3.us-east-1.amazonaws.com                           aws:secretsmanager:us-east-1:242819244:secret:rosa-private-key-oidc-r7u1-tM3MDN
    Copy to Clipboard Toggle word wrap

2.2.5. Operator のロールとポリシーの作成

Red Hat OpenShift Service on AWS クラスターをデプロイするときは、Operator IAM ロールを作成する必要があります。クラスター Operator は、Operator のロールとポリシーを使用して、バックエンドストレージの管理やクラスターへの外部アクセスなどのクラスター操作を実行するために必要な一時的な権限を取得します。

前提条件

  • Red Hat OpenShift Service on AWS の AWS 前提条件を完了している。
  • インストールホストに最新の ROSA CLI (rosa) をインストールして設定した。
  • アカウント全体の AWS ロールを作成した。

手順

  1. Operator ロールを作成するには、次のコマンドを実行します。

    $ rosa create operator-roles --hosted-cp --prefix=$OPERATOR_ROLES_PREFIX --oidc-config-id=$OIDC_ID --installer-role-arn arn:aws:iam::$AWS_ACCOUNT_ID:role/${ACCOUNT_ROLES_PREFIX}-HCP-ROSA-Installer-Role
    Copy to Clipboard Toggle word wrap

    次の内訳は、Operator ロール作成のオプションを示しています。

    $ rosa create operator-roles --hosted-cp
    	--prefix=$OPERATOR_ROLES_PREFIX 
    1
    
    	--oidc-config-id=$OIDC_ID 
    2
    
    	--installer-role-arn arn:aws:iam::$AWS_ACCOUNT_ID:role/$ACCOUNT_ROLES_PREFIX-HCP-ROSA-Installer-Role 
    3
    Copy to Clipboard Toggle word wrap
    1
    これらの Operator ロールを作成するときは、接頭辞を指定する必要があります。そうしないとエラーが発生します。演算子接頭辞は、このセクションの関連情報を参照してください。
    2
    この値は、Red Hat OpenShift Service on AWS クラスター用に作成した OIDC 設定 ID です。
    3
    この値は、Red Hat OpenShift Service on AWS アカウントロールを作成したときに作成したインストーラーロール ARN です。

    Red Hat OpenShift Service on AWS クラスターに正しいロールを作成するには、--hosted-cp パラメーターを含める必要があります。このコマンドは次の情報を返します。

    出力例

    ? Role creation mode: auto
    ? Operator roles prefix: <pre-filled_prefix> 
    1
    
    ? OIDC Configuration ID: 23soa2bgvpek9kmes9s7os0a39i13qm4 | https://dvbwgdztaeq9o.cloudfront.net/23soa2bgvpek9kmes9s7os0a39i13qm4 
    2
    
    ? Create hosted control plane operator roles: Yes
    W: More than one Installer role found
    ? Installer role ARN: arn:aws:iam::4540112244:role/<prefix>-HCP-ROSA-Installer-Role
    ? Permissions boundary ARN (optional):
    I: Reusable OIDC Configuration detected. Validating trusted relationships to operator roles:
    I: Creating roles using 'arn:aws:iam::4540112244:user/<userName>'
    I: Created role '<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials'
    I: Created role '<prefix>-openshift-cloud-network-config-controller-cloud-credenti' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-cloud-network-config-controller-cloud-credenti'
    I: Created role '<prefix>-kube-system-kube-controller-manager' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-kube-controller-manager'
    I: Created role '<prefix>-kube-system-capa-controller-manager' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-capa-controller-manager'
    I: Created role '<prefix>-kube-system-control-plane-operator' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-control-plane-operator'
    I: Created role '<prefix>-kube-system-kms-provider' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-kms-provider'
    I: Created role '<prefix>-openshift-image-registry-installer-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-image-registry-installer-cloud-credentials'
    I: Created role '<prefix>-openshift-ingress-operator-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-ingress-operator-cloud-credentials'
    I: To create a cluster with these roles, run the following command:
    	rosa create cluster --sts --oidc-config-id 23soa2bgvpek9kmes9s7os0a39i13qm4 --operator-roles-prefix <prefix> --hosted-cp
    Copy to Clipboard Toggle word wrap

    1
    このフィールドには、最初の作成コマンドで設定した接頭辞が事前に入力されます。
    2
    このフィールドでは、Red Hat OpenShift Service on AWS クラスター用に作成した OIDC 設定を選択する必要があります。

    Operator ロールが作成され、Red Hat OpenShift Service on AWS クラスターの作成に使用する準備が整いました。

検証

  • Red Hat OpenShift Service on AWS に関連付けられている Operator ロールをリスト表示できます。以下のコマンドを実行します。

    $ rosa list operator-roles
    Copy to Clipboard Toggle word wrap

    出力例

    I: Fetching operator roles
    ROLE PREFIX  AMOUNT IN BUNDLE
    <prefix>      8
    ? Would you like to detail a specific prefix Yes 
    1
    
    ? Operator Role Prefix: <prefix>
    ROLE NAME                                                         ROLE ARN                                                                                         VERSION  MANAGED
    <prefix>-kube-system-capa-controller-manager                       arn:aws:iam::4540112244:role/<prefix>-kube-system-capa-controller-manager                       4.13     No
    <prefix>-kube-system-control-plane-operator                        arn:aws:iam::4540112244:role/<prefix>-kube-system-control-plane-operator                        4.13     No
    <prefix>-kube-system-kms-provider                                  arn:aws:iam::4540112244:role/<prefix>-kube-system-kms-provider                                  4.13     No
    <prefix>-kube-system-kube-controller-manager                       arn:aws:iam::4540112244:role/<prefix>-kube-system-kube-controller-manager                       4.13     No
    <prefix>-openshift-cloud-network-config-controller-cloud-credenti  arn:aws:iam::4540112244:role/<prefix>-openshift-cloud-network-config-controller-cloud-credenti  4.13     No
    <prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials       arn:aws:iam::4540112244:role/<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials       4.13     No
    <prefix>-openshift-image-registry-installer-cloud-credentials      arn:aws:iam::4540112244:role/<prefix>-openshift-image-registry-installer-cloud-credentials      4.13     No
    <prefix>-openshift-ingress-operator-cloud-credentials              arn:aws:iam::4540112244:role/<prefix>-openshift-ingress-operator-cloud-credentials              4.13     No
    Copy to Clipboard Toggle word wrap

    1
    コマンドを実行すると、AWS アカウントに関連付けられているすべての接頭辞が表示され、この接頭辞に関連付けられているロールの数が記録されます。これらのロールとその詳細をすべて表示する必要がある場合は、詳細プロンプトで "Yes" と入力すると、これらのロールが詳細とともにリストされます。

2.3. CLI を使用して Red Hat OpenShift Service on AWS クラスターを作成する

ROSA CLI (rosa) を使用してクラスターを作成する場合、デフォルトのオプションを選択してクラスターをすばやく作成できます。

前提条件

  • Red Hat OpenShift Service on AWS の AWS 前提条件を完了している。
  • 利用可能な AWS サービスクォータがある。
  • AWS コンソールで Red Hat OpenShift Service on AWS を有効にしました。
  • インストールホストに最新の ROSA CLI (rosa) をインストールして設定した。現在インストールされている ROSA CLI のバージョンを確認するには、rosa version を実行します。新しいバージョンが利用可能な場合、CLI はこのアップグレードをダウンロードするためのリンクを提供します。
  • ROSA CLI を使用して Red Hat アカウントにログインしている。
  • OIDC 設定を作成した。
  • AWS Elastic Load Balancing (ELB) サービスロールが AWS アカウントに存在することを確認した。

手順

  1. Red Hat OpenShift Service on AWS クラスターを作成するには、次のいずれかのコマンドを使用します。

    注記

    Red Hat OpenShift Service on AWS クラスターを作成する場合、デフォルトのマシン Classless Inter-Domain Routing (CIDR) は 10.0.0.0/16 です。これが VPC サブネットの CIDR 範囲に対応していない場合は、次のコマンドに --machine-cidr <address_block> を追加します。Red Hat OpenShift Service on AWS のデフォルト CIDR 範囲の詳細は、「CIDR 範囲の定義」を参照してください。

    • 環境変数を設定していない場合は、以下のコマンドを実行します。

      $ rosa create cluster --cluster-name=<cluster_name> \ 
      1
      
          --mode=auto --hosted-cp [--private] \ 
      2
      
          --operator-roles-prefix <operator-role-prefix> \ 
      3
      
          --external-id <external-id> \ 
      4
      
          --oidc-config-id <id-of-oidc-configuration> \
          --subnet-ids=<public-subnet-id>,<private-subnet-id>
      Copy to Clipboard Toggle word wrap
      1
      クラスターの名前を指定します。クラスター名が 15 文字を超える場合、openshiftapps.com でプロビジョニングされたクラスターのサブドメインとして自動生成されたドメイン接頭辞が含まれます。サブドメインをカスタマイズするには、--domain-prefix フラグを使用します。ドメイン接頭辞は 15 文字を超えてはならず、一意である必要があり、クラスターの作成後に変更できません。
      2
      オプション: --private 引数はプライベート Red Hat OpenShift Service on AWS クラスターを作成するために使用されます。この引数を使用する場合は、--subnet-ids にプライベートサブネット ID のみを使用するようにしてください。
      3
      デフォルトでは、クラスター固有の Operator のロール名には、クラスター名とランダムな 4 桁のハッシュが接頭辞として付けられます。オプションで、ロール名の <cluster_name>-<hash> を置き換えるカスタム接頭辞を指定できます。接頭辞は、クラスター固有の Operator IAM ロールを作成するときに適用されます。接頭辞の詳細は、カスタム Operator IAM ロール接頭辞について を参照してください。
      注記

      関連するアカウント全体のロールを作成したときにカスタム ARN パスを指定した場合、カスタムパスは自動的に検出されます。カスタムパスは、後のステップで作成するときに、クラスター固有の Operator ロールに適用されます。

      4
      オプション: 別のアカウントでロールを引き受けるときに必要になる可能性のある一意の識別子。
    • 環境変数を設定する場合、単一の初期マシンプールを備え、パブリックまたはプライベートに利用可能な API および Ingress を使用するクラスターを作成するには、次のコマンドを実行します。

      $ rosa create cluster --private --cluster-name=<cluster_name> \
          --mode=auto --hosted-cp --operator-roles-prefix=$OPERATOR_ROLES_PREFIX \
          --oidc-config-id=$OIDC_ID --subnet-ids=$SUBNET_IDS
      Copy to Clipboard Toggle word wrap
    • 環境変数を設定する場合、単一の初期マシンプール、パブリックに利用可能な API、およびパブリックに利用可能な Ingress を備えたクラスターを作成するには、次のコマンドを実行します。

      $ rosa create cluster --cluster-name=<cluster_name> --mode=auto \
          --hosted-cp --operator-roles-prefix=$OPERATOR_ROLES_PREFIX \
          --oidc-config-id=$OIDC_ID --subnet-ids=$SUBNET_IDS
      Copy to Clipboard Toggle word wrap
  2. 次のコマンドを実行して、クラスターのステータスを確認します。

    $ rosa describe cluster --cluster=<cluster_name>
    Copy to Clipboard Toggle word wrap

    以下の State フィールドの変更は、クラスターインストールの進捗として出力に表示されます。

    • pending (Preparing account)
    • installing (DNS setup in progress)
    • installing
    • ready

      注記

      インストールが失敗した場合や、State フィールドが 10 分以上 ready に変わらない場合は、インストールのトラブルシューティングのドキュメントで詳細を確認してください。詳細は、インストールのトラブルシューティング を参照してください。Red Hat サポートにサポートを依頼する手順は、Red Hat OpenShift Service on AWS のサポートの利用 を参照してください。

  3. Red Hat OpenShift Service on AWS インストールプログラムのログを監視して、クラスター作成の進行状況を追跡します。ログを確認するには、次のコマンドを実行します。

    $ rosa logs install --cluster=<cluster_name> --watch \ 
    1
    Copy to Clipboard Toggle word wrap
    1
    オプション: インストールの進行中に新しいログメッセージを監視するには、--watch 引数を使用します。

第3章 Terraform を使用した ROSA クラスターの作成

3.1. Terraform を使用してデフォルトの Red Hat OpenShift Service on AWS クラスターを作成する

デフォルトのクラスターオプションで設定された Terraform クラスターテンプレートを使用して、Red Hat OpenShift Service on AWS クラスターをすばやく作成します。

以下で説明するクラスター作成プロセスでは、次のリソースを使用して Red Hat OpenShift Service on AWS クラスターを準備する Terraform 設定を使用します。

  • マネージド oidc-config 設定を使用する OIDC プロバイダー
  • 前提条件となる IAM Operator ロールと、それに関連付けられた AWS マネージド Red Hat OpenShift Service on AWS ポリシー
  • IAM アカウントロールと関連する AWS マネージド Red Hat OpenShift Service on AWS ポリシー
  • Red Hat OpenShift Service on AWS クラスターを作成するために必要なその他のすべての AWS リソース

3.1.1. Terraform の概要

Terraform は、リソースを設定すると必要に応じてそれらのリソースをレプリケートできる infrastructure-as-code ツールです。Terraform は、宣言的言語を使用して作成タスクを実行します。インフラストラクチャーリソースの任意の最終状態を宣言すると、Terraform は仕様に合わせてリソースを作成します。

前提条件

Terraform 設定内で Red Hat Cloud Services プロバイダー を使用するには、次の前提条件を満たす必要があります。

  • ROSA CLI ツールがインストールされました。
  • オフラインの Red Hat OpenShift Cluster Manager トークン がある。
  • Terraform バージョン 1.4.6 以降をインストールした。
  • AWS アカウント全体の IAM ロールを作成した。

    特定のアカウント全体の IAM ロールとポリシーは、Red Hat OpenShift Service on AWS のサポート、インストール、コントロールプレーン、コンピューティング機能に必要な STS 権限を提供します。これには、アカウント全体の Operator ポリシーが含まれます。AWS アカウントロールの詳細は、関連情報を参照してください。

  • リソースを作成できる AWS アカウント関連する認証情報 がある。この認証情報は AWS プロバイダー用に設定されているものです。AWS Terraform プロバイダーのドキュメントで、Authentication and Configuration セクションを参照してください。
  • Terraform を操作する AWS IAM ロールポリシーに、少なくとも以下の権限がある。権限は、AWS コンソールで確認してください。

    例3.1 Terraform の最小限の AWS 権限

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "VisualEditor0",
          "Effect": "Allow",
          "Action": [
            "iam:GetPolicyVersion",
            "iam:DeletePolicyVersion",
            "iam:CreatePolicyVersion",
            "iam:UpdateAssumeRolePolicy",
            "secretsmanager:DescribeSecret",
            "iam:ListRoleTags",
            "secretsmanager:PutSecretValue",
            "secretsmanager:CreateSecret",
            "iam:TagRole",
            "secretsmanager:DeleteSecret",
            "iam:UpdateOpenIDConnectProviderThumbprint",
            "iam:DeletePolicy",
            "iam:CreateRole",
            "iam:AttachRolePolicy",
            "iam:ListInstanceProfilesForRole",
            "secretsmanager:GetSecretValue",
            "iam:DetachRolePolicy",
            "iam:ListAttachedRolePolicies",
            "iam:ListPolicyTags",
            "iam:ListRolePolicies",
            "iam:DeleteOpenIDConnectProvider",
            "iam:DeleteInstanceProfile",
            "iam:GetRole",
            "iam:GetPolicy",
            "iam:ListEntitiesForPolicy",
            "iam:DeleteRole",
            "iam:TagPolicy",
            "iam:CreateOpenIDConnectProvider",
            "iam:CreatePolicy",
            "secretsmanager:GetResourcePolicy",
            "iam:ListPolicyVersions",
            "iam:UpdateRole",
            "iam:GetOpenIDConnectProvider",
            "iam:TagOpenIDConnectProvider",
            "secretsmanager:TagResource",
            "sts:AssumeRoleWithWebIdentity",
            "iam:ListRoles"
          ],
          "Resource": [
            "arn:aws:secretsmanager:*:<ACCOUNT_ID>:secret:*",
            "arn:aws:iam::<ACCOUNT_ID>:instance-profile/*",
            "arn:aws:iam::<ACCOUNT_ID>:role/*",
            "arn:aws:iam::<ACCOUNT_ID>:oidc-provider/*",
            "arn:aws:iam::<ACCOUNT_ID>:policy/*"
          ]
        },
        {
          "Sid": "VisualEditor1",
          "Effect": "Allow",
          "Action": [
            "s3:*"
            ],
          "Resource": "*"
        }
      ]
    }
    Copy to Clipboard Toggle word wrap
Terraform を使用する場合の考慮事項

一般に、Terraform を使用してクラウドリソースを管理する場合は、すべての変更が Terraform 方法論を使用して実行されることを前提として行う必要があります。AWS コンソールや Red Hat コンソールなど、Terraform 外部のツールを使用して Terraform によって作成されたクラウドリソースを変更する場合は注意してください。Terraform によってすでに管理されているクラウドリソースを管理するために Terraform 外部のツールを使用すると、宣言した Terraform 設定から設定のドリフトが発生します。

たとえば、Red Hat Hybrid Cloud Console を使用して Terraform で作成されたクラスターをアップグレードする場合は、今後の設定変更を適用する前に Terraform の状態を調整する必要があります。詳細は、HashiCorp Developer ドキュメントの Manage resources in Terraform state を参照してください。

3.1.2. デフォルトのクラスター仕様の概要

デフォルトのインストールオプションを使用して、Red Hat OpenShift Service on AWS クラスターをすばやく作成できます。

次の要約では、デフォルトのクラスター仕様を説明します。

Expand
表3.1 Red Hat OpenShift Service on AWS クラスター仕様
コンポーネントデフォルトの仕様

アカウントおよびロール

  • デフォルトの IAM ロールの接頭辞: rosa-<6-digit-alphanumeric-string>

クラスター設定

  • デフォルトのクラスターバージョン: 4.14
  • クラスター名: rosa-<6-digit-alphanumeric-string>
  • Red Hat OpenShift Cluster Manager Hybrid Cloud Console を使用したインストール用のデフォルトの AWS リージョン: us-east-2 (US East, Ohio)
  • 可用性: データプレーンのマルチゾーン
  • EC2 インスタンスメタデータサービス (IMDS) が有効になっており、IMDSv1 または IMDSv2 の使用が許可されています (トークンはオプション)
  • 可用性: データプレーンの単一ゾーン
  • ユーザー定義プロジェクトの監視: 有効
  • クラスター管理者ロールは作成されない

コンピュートノードマシンプール

  • コンピュートノードインスタンスタイプ: m5.xlarge (4 vCPU 16, GiB RAM)
  • Compute node count: 3
  • 自動スケーリング: 無効
  • 追加のノードラベルなし

ネットワーク設定

  • クラスターのプライバシー: パブリックまたはプライベート
  • Terraform クラスターの作成プロセス中に、新しい VPC を作成することを選択できます。
  • クラスター全体のプロキシーは設定されていません。

Classless Inter-Domain Routing (CIDR) の範囲

  • Machine CIDR: 10.0.0.0/16
  • Service CIDR: 172.30.0.0/16
  • Pod CIDR: 10.128.0.0/14
  • Host prefix: /23

    注記

    静的 IP アドレス 172.20.0.1 は、内部 Kubernetes API アドレス用に予約されています。マシン、Pod、およびサービスの CIDR 範囲は、この IP アドレスと競合してはなりません。

クラスターのロールおよびポリシー

  • Operator ロールおよび OpenID Connect (OIDC) プロバイダーの作成に使用されるモード: auto

    注記

    Hybrid Cloud Console で OpenShift Cluster Manager を使用してインストールする場合、auto モードには管理者権限が割り当てられた OpenShift Cluster Manager ロール (ocm-role) が必要です。

  • デフォルトの Operator ロールの接頭辞: rosa-<6-digit-alphanumeric-string>

ストレージ

  • ノードボリューム:

    • タイプ: AWS EBS GP3
    • デフォルトサイズ: 300 GiB (作成時に調整可能)
  • ワークロード永続ボリューム:

    • デフォルトの StorageClass: gp3-csi
    • プロビジョナー: ebs.csi.aws.com
    • 動的永続ボリュームのプロビジョニング

クラスター更新ストラテジー

  • 個別の更新
  • 1 時間のノード drain (Pod の退避) 猶予期間

3.1.3. Terraform を使用してデフォルトの Red Hat OpenShift Service on AWS クラスターを作成する

以下に概説するクラスター作成プロセスでは、Terraform を使用してアカウント全体の IAM ロールと、マネージド OIDC 設定の Red Hat OpenShift Service on AWS クラスターを作成する方法を示します。

3.1.3.1. Terraform 用の環境の準備

Terraform を使用して Red Hat OpenShift Service on AWS クラスターを作成する前に、オフラインの Red Hat OpenShift Cluster Manager トークン をエクスポートする必要があります。

手順

  1. オプション: この手順の実行中、現在のディレクトリーに Terraform ファイルが作成されます。次のコマンドを実行すると、これらのファイルを保存する新しいディレクトリーを作成してそこに移動できます。

    $ mkdir terraform-cluster && cd terraform-cluster
    Copy to Clipboard Toggle word wrap
  2. オフラインの Red Hat OpenShift Cluster Manager トークン を使用して、アカウントに権限を付与します。
  3. オフライントークンをコピーし、次のコマンドを実行してトークンを環境変数として設定します。

    $ export RHCS_TOKEN=<your_offline_token>
    Copy to Clipboard Toggle word wrap
    注記

    この環境変数は、マシンの再起動やターミナルの終了など、各セッションの終了時にリセットされます。

検証

  • トークンをエクスポートしたら、次のコマンドを実行して値を確認します。

    $ echo $RHCS_TOKEN
    Copy to Clipboard Toggle word wrap
3.1.3.2. ローカルでの Terraform ファイルの作成

オフラインの Red Hat OpenShift Cluster Manager トークン を設定した後、クラスターを構築するために Terraform ファイルをローカルで作成する必要があります。このファイルは、次のコードテンプレートを使用して作成できます。

手順

  1. 次のコマンドを実行して、main.tf ファイルを作成します。

    $ cat<<-EOF>main.tf
    #
    # Copyright (c) 2023 Red Hat, Inc.
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #   http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    #
    terraform {
      required_providers {
        aws = {
          source  = "hashicorp/aws"
          version = ">= 4.20.0"
        }
        rhcs = {
          version = ">= 1.6.3"
          source  = "terraform-redhat/rhcs"
        }
      }
    }
    
    # Export token using the RHCS_TOKEN environment variable
    provider "rhcs" {}
    
    provider "aws" {
      region = var.aws_region
      ignore_tags {
        key_prefixes = ["kubernetes.io/"]
      }
      default_tags {
        tags = var.default_aws_tags
      }
    }
    
    data "aws_availability_zones" "available" {}
    
    locals {
      # Extract availability zone names for the specified region, limit it to 3 if multi az or 1 if single
      region_azs = var.multi_az ? slice([for zone in data.aws_availability_zones.available.names : format("%s", zone)], 0, 3) : slice([for zone in data.aws_availability_zones.available.names : format("%s", zone)], 0, 1)
    }
    
    resource "random_string" "random_name" {
      length  = 6
      special = false
      upper   = false
    }
    
    locals {
      worker_node_replicas = var.multi_az ? 3 : 2
      # If cluster_name is not null, use that, otherwise generate a random cluster name
      cluster_name = coalesce(var.cluster_name, "rosa-\${random_string.random_name.result}")
    }
    
    # The network validator requires an additional 60 seconds to validate Terraform clusters.
    resource "time_sleep" "wait_60_seconds" {
      count = var.create_vpc ? 1 : 0
      depends_on = [module.vpc]
      create_duration = "60s"
    }
    
    module "rosa-hcp" {
      source                 = "terraform-redhat/rosa-hcp/rhcs"
      version                = "1.6.3"
      cluster_name           = local.cluster_name
      openshift_version      = var.openshift_version
      account_role_prefix    = local.cluster_name
      operator_role_prefix   = local.cluster_name
      replicas               = local.worker_node_replicas
      aws_availability_zones = local.region_azs
      create_oidc            = true
      private                = var.private_cluster
      aws_subnet_ids         = var.create_vpc ? var.private_cluster ? module.vpc[0].private_subnets : concat(module.vpc[0].public_subnets, module.vpc[0].private_subnets) : var.aws_subnet_ids
      create_account_roles   = true
      create_operator_roles  = true
    # Optional: Configure a cluster administrator user \ 
    1
    
    #
    # Option 1: Default cluster-admin user
    # Create an administrator user (cluster-admin) and automatically
    # generate a password by uncommenting the following parameter:
    #  create_admin_user = true
    # Generated administrator credentials are displayed in terminal output.
    #
    # Option 2: Specify administrator username and password
    # Create an administrator user and define your own password
    # by uncommenting and editing the values of the following parameters:
    #  admin_credentials_username = <username>
    #  admin_credentials_password = <password>
    
      depends_on = [time_sleep.wait_60_seconds]
    }
    EOF
    Copy to Clipboard Toggle word wrap
    1
    オプション: 適切なパラメーターのコメントを解除し、必要に応じて値を編集して、クラスターの作成中に管理者ユーザーを作成します。
  2. 次のコマンドを実行して、variables.tf ファイルを作成します。

    注記

    クラスターを構築するコマンドを実行する に、このファイルをコピーして編集します。

    $ cat<<-EOF>variables.tf
    #
    # Copyright (c) 2023 Red Hat, Inc.
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #   http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    #
    variable "openshift_version" {
      type        = string
      default     = "4.14.20"
      description = "Desired version of OpenShift for the cluster, for example '4.14.20'. If version is greater than the currently running version, an upgrade will be scheduled."
    }
    
    variable "create_vpc" {
      type        = bool
      description = "If you would like to create a new VPC, set this value to 'true'. If you do not want to create a new VPC, set this value to 'false'."
    }
    
    # ROSA Cluster info
    variable "cluster_name" {
      default     = null
      type        = string
      description = "The name of the ROSA cluster to create"
    }
    
    variable "additional_tags" {
      default = {
        Terraform   = "true"
        Environment = "dev"
      }
      description = "Additional AWS resource tags"
      type        = map(string)
    }
    
    variable "multi_az" {
      type        = bool
      description = "Multi AZ Cluster for High Availability"
      default     = true
    }
    
    variable "worker_node_replicas" {
      default     = 3
      description = "Number of worker nodes to provision. Single zone clusters need at least 2 nodes, multizone clusters need at least 3 nodes"
      type        = number
    }
    
    variable "aws_subnet_ids" {
      type        = list(any)
      description = "A list of either the public or public + private subnet IDs to use for the cluster blocks to use for the cluster"
      default     = ["subnet-01234567890abcdef", "subnet-01234567890abcdef", "subnet-01234567890abcdef"]
    }
    
    variable "private_cluster" {
      type        = bool
      description = "If you want to create a private cluster, set this value to 'true'. If you want a publicly available cluster, set this value to 'false'."
    }
    
    #VPC Info
    variable "vpc_name" {
      type        = string
      description = "VPC Name"
      default     = "tf-qs-vpc"
    }
    
    variable "vpc_cidr_block" {
      type        = string
      description = "value of the CIDR block to use for the VPC"
      default     = "10.0.0.0/16"
    }
    
    variable "private_subnet_cidrs" {
      type        = list(any)
      description = "The CIDR blocks to use for the private subnets"
      default     = ["10.0.1.0/24", "10.0.2.0/24", "10.0.3.0/24"]
    }
    
    variable "public_subnet_cidrs" {
      type        = list(any)
      description = "The CIDR blocks to use for the public subnets"
      default     = ["10.0.101.0/24", "10.0.102.0/24", "10.0.103.0/24"]
    }
    
    variable "single_nat_gateway" {
      type        = bool
      description = "Single NAT or per NAT for subnet"
      default     = false
    }
    
    #AWS Info
    variable "aws_region" {
      type    = string
      default = "us-east-2"
    }
    
    variable "default_aws_tags" {
      type        = map(string)
      description = "Default tags for AWS"
      default     = {}
    }
    EOF
    Copy to Clipboard Toggle word wrap
  3. 以下のコマンドを実行して vpc.tf ファイルを作成します。

    $ cat<<-EOF>vpc.tf
    #
    # Copyright (c) 2023 Red Hat, Inc.
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #   http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    #
    module "vpc" {
      source  = "terraform-aws-modules/vpc/aws"
      version = "5.1.2"
    
      count = var.create_vpc ? 1 : 0
      name  = var.vpc_name
      cidr  = var.vpc_cidr_block
    
      azs             = local.region_azs
      private_subnets = var.multi_az ? var.private_subnet_cidrs : [var.private_subnet_cidrs[0]]
      public_subnets  = var.multi_az ? var.public_subnet_cidrs : [var.public_subnet_cidrs[0]]
    
      enable_nat_gateway   = true
      single_nat_gateway   = var.single_nat_gateway
      enable_dns_hostnames = true
      enable_dns_support   = true
    
      tags = var.additional_tags
    }
    EOF
    Copy to Clipboard Toggle word wrap

    これで Terraform を起動する準備ができました。

3.1.3.3. Terraform を使用して Red Hat OpenShift Service on AWS クラスターを作成する

Terraform ファイルを作成した後、Terraform を起動して、必要な依存関係をすべて提供する必要があります。その後、Terraform プランを適用します。

重要

Terraform の状態ファイルは変更しないでください。詳細は、Terraform 使用時の考慮事項 を参照してください。

手順

  1. Terraform ファイルに基づいてリソースを作成するように Terraform を設定し、次のコマンドを実行します。

    $ terraform init
    Copy to Clipboard Toggle word wrap
  2. オプション: 次のコマンドを実行して、コピーした Terraform が正しいことを確認します。

    $ terraform validate
    Copy to Clipboard Toggle word wrap

    出力例

    Success! The configuration is valid.
    Copy to Clipboard Toggle word wrap

  3. 次のコマンドを実行して、Terraform を使用してクラスターを作成します。

    $ terraform apply
    Copy to Clipboard Toggle word wrap

    Terraform インターフェイスでは、クラスターを作成するために次のような 2 つの質問が表示されます。

    出力例

    var.create_vpc
      If you would like to create a new VPC, set this value to 'true'. If you do not want to create a new VPC, set this value to 'false'.
    
      Enter a value:
    
    var.private_cluster
      If you want to create a private cluster, set this value to 'true'. If you want a publicly available cluster, set this value to 'false'.
    
      Enter a value:
    Copy to Clipboard Toggle word wrap

  4. Terraform インターフェイスに作成または変更するリソースがリストされ、確認を求めるプロンプトが表示されたら、続行するには yes を、キャンセルするには no を入力します。

    出力例

    Plan: 63 to add, 0 to change, 0 to destroy.
    
    Do you want to perform these actions?
      Terraform will perform the actions described above.
      Only 'yes' will be accepted to approve.
    Copy to Clipboard Toggle word wrap

    yes と入力すると、Terraform プランが開始され、AWS アカウントロール、Operator ロール、および Red Hat OpenShift Service on AWS クラスターが作成されます。

検証

  1. 次のコマンドを実行して、クラスターが作成されたことを確認します。

    $ rosa list clusters
    Copy to Clipboard Toggle word wrap

    クラスターの ID、名前、ステータスを示す出力例

    ID                                NAME          STATE  TOPOLOGY
    27c3snjsupa9obua74ba8se5kcj11269  rosa-tf-demo  ready  Hosted CP
    Copy to Clipboard Toggle word wrap

  2. 次のコマンドを実行して、アカウントロールが作成されたことを確認します。

    $ rosa list account-roles
    Copy to Clipboard Toggle word wrap

    出力例

    I: Fetching account roles
    ROLE NAME                                   ROLE TYPE      ROLE ARN                                                           OPENSHIFT VERSION  AWS Managed
    ROSA-demo-Installer-Role                    Installer      arn:aws:iam::<ID>:role/ROSA-demo-Installer-Role                    4.14               No
    ROSA-demo-Support-Role                      Support        arn:aws:iam::<ID>:role/ROSA-demo-Support-Role                      4.14               No
    ROSA-demo-Worker-Role                       Worker         arn:aws:iam::<ID>:role/ROSA-demo-Worker-Role                       4.14               No
    Copy to Clipboard Toggle word wrap

  3. 次のコマンドを実行して、Operator ロールが作成されたことを確認します。

    $ rosa list operator-roles
    Copy to Clipboard Toggle word wrap

    Terraform で作成された Operator ロールを示す出力例

    I: Fetching operator roles
    ROLE PREFIX    AMOUNT IN BUNDLE
    rosa-demo      8
    Copy to Clipboard Toggle word wrap

3.1.3.4. Terraform を使用して Red Hat OpenShift Service on AWS クラスターを削除する

terraform destroy コマンドを使用して、terraform apply コマンドで作成したすべてのリソースを削除します。

注記

リソースを破棄する前に、Terraform の .tf ファイルを変更しないでください。これらの変数は削除対象のリソースと照合されます。

手順

  1. terraform apply コマンドを実行してクラスターを作成したディレクトリーで、次のコマンドを実行してクラスターを削除します。

    $ terraform destroy
    Copy to Clipboard Toggle word wrap

    Terraform インターフェイスでは、2 つの変数の入力を求められます。これらは、クラスターの作成時に指定した回答と一致する必要があります。

    var.create_vpc
      If you would like to create a new VPC, set this value to 'true.' If you do not want to create a new VPC, set this value to 'false.'
    
      Enter a value:
    
    var.private_cluster
      If you want to create a private cluster, set this value to 'true.' If you want a publicly available cluster, set this value to 'false.'
    
      Enter a value:
    Copy to Clipboard Toggle word wrap
  2. yes と入力して、ロールとクラスターの削除を開始します。

    出力例

    Plan: 0 to add, 0 to change, 63 to destroy.
    
    Do you really want to destroy all resources?
      Terraform will destroy all your managed infrastructure, as shown above.
      There is no undo. Only 'yes' will be accepted to confirm.
    
      Enter a value: yes
    Copy to Clipboard Toggle word wrap

検証

  1. 次のコマンドを実行して、クラスターが破棄されたことを確認します。

    $ rosa list clusters
    Copy to Clipboard Toggle word wrap

    クラスターがないことを示す出力例

    I: No clusters available
    Copy to Clipboard Toggle word wrap

  2. 次のコマンドを実行して、アカウントロールが破棄されたことを確認します。

    $ rosa list account-roles
    Copy to Clipboard Toggle word wrap

    Terraform で作成されたアカウントロールがないことを示す出力例

    I: Fetching account roles
    I: No account roles available
    Copy to Clipboard Toggle word wrap

  3. 次のコマンドを実行して、Operator ロールが破棄されたことを確認します。

    $ rosa list operator-roles
    Copy to Clipboard Toggle word wrap

    Terraform で作成された Operator ロールがないことを示す出力例

    I: Fetching operator roles
    I: No operator roles available
    Copy to Clipboard Toggle word wrap

第4章 カスタム AWS KMS 暗号鍵を使用した ROSA with HCP クラスターの作成

カスタム AWS Key Management Service (KMS) キーを使用して Red Hat OpenShift Service on AWS クラスターを作成します。

4.1. Red Hat OpenShift Service on AWS の前提条件

Red Hat OpenShift Service on AWS クラスターを作成するには、次の項目が必要です。

  • 設定された仮想プライベートクラウド (VPC)
  • アカウント全体のロール
  • OIDC 設定
  • Operator ロール

4.2. Red Hat OpenShift Service on AWS クラスター用の Virtual Private Cloud の作成

Red Hat OpenShift Service on AWS クラスターを作成するには、仮想プライベートクラウド (VPC) が必要です。VPC を作成するには、次のいずれかの方法を使用します。

  • ROSA コマンドラインインターフェイス (CLI) を使用して VPC を作成する
  • Terraform テンプレートを使用して VPC を作成する
  • AWS コンソールで VPC リソースを手動で作成する
注記

Terraform の手順はテストとデモンストレーションを目的としています。独自のインストールでは、独自に使用するために VPC にいくつかの変更を加える必要があります。また、この Terraform スクリプトを使用するときは、クラスターをインストールする予定のリージョンと同じリージョンにあることを確認する必要があります。これらの例では、us-east-2 を使用します。

ROSA CLI を使用した AWS VPC の作成

rosa create network コマンドは、ROSA CLI のバージョン 1.2.48 以降で使用できます。このコマンドは、AWS CloudFormation を使用して、Red Hat OpenShift Service on AWS クラスターのインストールに必要な VPC と関連ネットワークコンポーネントを作成します。CloudFormation はネイティブの AWS インフラストラクチャーコードツールであり、AWS CLI と互換性があります。

テンプレートを指定しない場合、次のパラメーターを持つリソースを作成するデフォルトのテンプレートが CloudFormation によって使用されます。

Expand
VPC のパラメーター

アベイラビリティーゾーン

1

リージョン

us-east-1

VPC CIDR

10.0.0.0/16

rosa create network コマンドで使用する CloudFormation テンプレートを作成し、カスタマイズできます。デフォルトの VPC テンプレートの詳細は、このセクションの関連情報を参照してください。

前提条件

  • AWS アカウントを設定した。
  • Red Hat アカウントを設定した。
  • ROSA CLI をインストールし、最新バージョンに設定した。

手順

  1. 次のコマンドを実行して、デフォルトの CloudFormations テンプレートを使用して AWS VPC を作成します。

    $ rosa create network
    Copy to Clipboard Toggle word wrap
  2. オプション: 追加のパラメーターを指定して VPC をカスタマイズします。

    --param フラグを使用すると、デフォルトの VPC テンプレートへの変更を指定できます。次のコマンド例では、regionNameAvailabilityZoneCount、および VpcCidr のカスタム値を指定します。

    $ rosa create network --param Region=us-east-2 --param Name=quickstart-stack --param AvailabilityZoneCount=3 --param VpcCidr=10.0.0.0/16
    Copy to Clipboard Toggle word wrap

    このコマンドの実行には約 5 分かかります。リソースが作成されるたびに、AWS から定期的にステータスの更新が提供されます。CloudFormation に問題がある場合は、ロールバックが試行されます。それ以外のエラーが発生した場合は、エラーメッセージの指示に従うか、AWS サポートにお問い合わせください。

検証

  • 完了すると、作成されたリソースの概要が表示されます。

    INFO[0140] Resources created in stack:
    INFO[0140] Resource: AttachGateway, Type: AWS::EC2::VPCGatewayAttachment, ID: <gateway_id>
    INFO[0140] Resource: EC2VPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce_id>
    INFO[0140] Resource: EcrApiVPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce_id>
    INFO[0140] Resource: EcrDkrVPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce_id>
    INFO[0140] Resource: ElasticIP1, Type: AWS::EC2::EIP, ID: <IP>
    INFO[0140] Resource: ElasticIP2, Type: AWS::EC2::EIP, ID: <IP>
    INFO[0140] Resource: InternetGateway, Type: AWS::EC2::InternetGateway, ID: igw-016e1a71b9812464e
    INFO[0140] Resource: KMSVPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce_id>
    INFO[0140] Resource: NATGateway1, Type: AWS::EC2::NatGateway, ID: <nat-gateway_id>
    INFO[0140] Resource: PrivateRoute, Type: AWS::EC2::Route, ID: <route_id>
    INFO[0140] Resource: PrivateRouteTable, Type: AWS::EC2::RouteTable, ID: <route_id>
    INFO[0140] Resource: PrivateSubnetRouteTableAssociation1, Type: AWS::EC2::SubnetRouteTableAssociation, ID: <route_id>
    INFO[0140] Resource: PublicRoute, Type: AWS::EC2::Route, ID: <route_id>
    INFO[0140] Resource: PublicRouteTable, Type: AWS::EC2::RouteTable, ID: <route_id>
    INFO[0140] Resource: PublicSubnetRouteTableAssociation1, Type: AWS::EC2::SubnetRouteTableAssociation, ID: <route_id>
    INFO[0140] Resource: S3VPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce_id>
    INFO[0140] Resource: STSVPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce_id>
    INFO[0140] Resource: SecurityGroup, Type: AWS::EC2::SecurityGroup, ID: <security-group_id>
    INFO[0140] Resource: SubnetPrivate1, Type: AWS::EC2::Subnet, ID: <private_subnet_id-1> \ 
    1
    
    INFO[0140] Resource: SubnetPublic1, Type: AWS::EC2::Subnet, ID: <public_subnet_id-1> \ 
    2
    
    INFO[0140] Resource: VPC, Type: AWS::EC2::VPC, ID: <vpc_id>
    INFO[0140] Stack rosa-network-stack-5555 created \ 
    3
    Copy to Clipboard Toggle word wrap
    1 2
    これら 2 つのサブネット ID は、rosa create cluster コマンドの使用時にクラスターを作成するために使用されます。
    3
    ネットワークスタック名は、後でリソースを削除するために使用されます。
Terraform を使用した Virtual Private Cloud の作成

Terraform は、確立されたテンプレートを使用してさまざまなリソースを作成できるツールです。次のプロセスでは、必要に応じてデフォルトのオプションを使用して Red Hat OpenShift Service on AWS クラスターを作成します。Terraform の使用の詳細は、関連情報を参照してください。

前提条件

  • マシンに Terraform バージョン 1.4.0 以降がインストールされている。
  • マシンに Git がインストールされている。

手順

  1. シェルプロンプトを開き、次のコマンドを実行して Terraform VPC リポジトリーのクローンを作成します。

    $ git clone https://github.com/openshift-cs/terraform-vpc-example
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを実行して、作成したディレクトリーに移動します。

    $ cd terraform-vpc-example
    Copy to Clipboard Toggle word wrap
  3. 次のコマンドを実行して、Terraform ファイルを開始します。

    $ terraform init
    Copy to Clipboard Toggle word wrap

    このプロセスが完了すると、初期化を確認するメッセージが表示されます。

  4. 既存の Terraform テンプレートに基づいて VPC Terraform プランを構築するには、plan コマンドを実行します。AWS リージョンを含める必要があります。クラスター名を指定することもできます。terraform plan が完了すると、rosa.tfplan ファイルが hypershift-tf ディレクトリーに追加されます。オプションの詳細は、Terraform VPC リポジトリーの README ファイル を参照してください。

    $ terraform plan -out rosa.tfplan -var region=<region>
    Copy to Clipboard Toggle word wrap
  5. 次のコマンドを実行して、このプランファイルを適用して VPC を構築します。

    $ terraform apply rosa.tfplan
    Copy to Clipboard Toggle word wrap
    1. オプション: 次のコマンドを実行すると、Terraform でプロビジョニングされたプライベート、パブリック、およびマシンプールのサブネット ID の値を、Red Hat OpenShift Service on AWS クラスターの作成時に使用する環境変数としてキャプチャーできます。

      $ export SUBNET_IDS=$(terraform output -raw cluster-subnets-string)
      Copy to Clipboard Toggle word wrap
    2. 次のコマンドを使用して、変数が正しく設定されたことを確認できます。

      $ echo $SUBNET_IDS
      Copy to Clipboard Toggle word wrap

      出力例

      $ subnet-0a6a57e0f784171aa,subnet-078e84e5b10ecf5b0
      Copy to Clipboard Toggle word wrap

AWS Virtual Private Cloud の手動作成

Terraform を使用する代わりに、AWS Virtual Private Cloud (VPC) を手動で作成することを選択した場合は、AWS コンソールの VPC ページ に移動します。

VPC は、次の表に示す要件を満たしている必要があります。

Expand
表4.1 VPC の要件
要件詳細

VPC 名

クラスターを作成するときは、特定の VPC 名と ID が必要です。

CIDR 範囲

VPC CIDR 範囲はマシンの CIDR と一致する必要があります。

アベイラビリティーゾーン

単一ゾーンの場合は 1 つの可用性ゾーンが必要で、複数ゾーンの場合は 3 つの可用性ゾーンが必要です。

パブリックサブネット

パブリッククラスターには、NAT ゲートウェイを備えたパブリックサブネットが 1 つ必要です。プライベートクラスターにはパブリックサブネットは必要ありません。

DNS ホスト名と解決

DNS ホスト名と解決が有効になっていることを確認する必要があります。

4.2.1. トラブルシューティング

クラスターのインストールに失敗した場合は、次の一般的な問題のトラブルシューティングを実行してください。

  • DHCP オプションセット にドメイン名が含まれていることを確認し、ドメイン名にスペースや大文字が含まれていないことを確認します。
  • VPC でカスタム DNS リゾルバーが使用されている場合 (DHCP オプションセットの ドメインネームサーバー フィールドが AmazonProvideDNS ではない)、Route53 で設定されているプライベートホストゾーンを適切に解決できることを確認します。

Red Hat OpenShift Service on AWS クラスターのインストールのトラブルシューティングの詳細は、Red Hat OpenShift Service on AWS クラスターのインストールのトラブルシューティングを 参照してください。

サポートの利用

追加の サポート が必要な場合は、Red Hat カスタマーポータルにアクセスして、ナレッジベースの記事の確認、サポートケースの作成、追加の製品ドキュメントおよびリソースの確認を行ってください。

サブネットへのタグ付け

VPC を使用して Red Hat OpenShift Service on AWS クラスターを作成する前に、VPC サブネットにタグを付ける必要があります。自動化されたサービス事前チェックにより、これらのリソースをクラスターで使用する前に、リソースが正しくタグ付けされているかどうかが検証されます。次の表は、リソースにタグを付ける方法を示しています。

Expand
リソースキー

パブリックサブネット

kubernetes.io/role/elb

1 (または値なし)

プライベートサブネット

kubernetes.io/role/internal-elb

1 (または値なし)

注記

少なくとも 1 つのプライベートサブネットと、該当する場合は 1 つのパブリックサブネットにタグを付ける必要があります。

前提条件

  • VPC を作成した。
  • aws CLI をインストールした。

手順

  1. 次のコマンドを実行して、ターミナルでリソースにタグを付けます。

    1. パブリックサブネットの場合は、以下を実行します。

      $ aws ec2 create-tags --resources <public-subnet-id> --region <aws_region> --tags Key=kubernetes.io/role/elb,Value=1
      Copy to Clipboard Toggle word wrap
    2. プライベートサブネットの場合は、以下を実行します。

      $ aws ec2 create-tags --resources <private-subnet-id> --region <aws_region> --tags Key=kubernetes.io/role/internal-elb,Value=1
      Copy to Clipboard Toggle word wrap

検証

  • 次のコマンドを実行して、タグが正しく適用されていることを確認します。

    $ aws ec2 describe-tags --filters "Name=resource-id,Values=<subnet_id>"
    Copy to Clipboard Toggle word wrap

    出力例

    TAGS    Name                    <subnet-id>        subnet  <prefix>-subnet-public1-us-east-1a
    TAGS    kubernetes.io/role/elb  <subnet-id>        subnet  1
    Copy to Clipboard Toggle word wrap

4.2.2. アカウント全体の STS ロールおよびポリシーの作成

Red Hat OpenShift Service on AWS クラスターを作成する前に、必要なアカウント全体のロールとポリシーを作成する必要があります。

注記

Red Hat OpenShift Service on AWS の特定の AWS 管理ポリシーを各ロールに添付する必要があります。これらの必要なアカウントロールには、顧客管理のポリシーを使用しないでください。Red Hat OpenShift Service on AWS クラスターの AWS 管理ポリシーの詳細は、ROSA の AWS 管理ポリシーを 参照してください。

前提条件

  • Red Hat OpenShift Service on AWS の AWS 前提条件を完了している。
  • 利用可能な AWS サービスクォータがある。
  • AWS コンソールで Red Hat OpenShift Service on AWS を有効にしました。
  • インストールホストに最新の ROSA CLI (rosa) をインストールして設定した。
  • ROSA CLI を使用して Red Hat アカウントにログインしている。

手順

  1. AWS アカウントに存在しない場合は、次のコマンドを実行して、必要なアカウント全体の STS ロールを作成し、ポリシーをアタッチします。

    $ rosa create account-roles --hosted-cp
    Copy to Clipboard Toggle word wrap
  2. オプション: 次のコマンドを実行して、接頭辞を環境変数として設定します。

    $ export ACCOUNT_ROLES_PREFIX=<account_role_prefix>
    Copy to Clipboard Toggle word wrap
    • 次のコマンドを実行して、変数の値を表示します。

      $ echo $ACCOUNT_ROLES_PREFIX
      Copy to Clipboard Toggle word wrap

      出力例

      ManagedOpenShift
      Copy to Clipboard Toggle word wrap

Red Hat OpenShift Service on AWS の AWS 管理 IAM ポリシーの詳細は、ROSA の AWS 管理 IAM ポリシー を参照してください。

4.2.3. OpenID Connect 設定の作成

Red Hat OpenShift Service on AWS クラスターを作成するときに、クラスターを作成する前に OpenID Connect (OIDC) 設定を作成できます。この設定は、OpenShift Cluster Manager で使用するために登録されています。

前提条件

  • Red Hat OpenShift Service on AWS の AWS 前提条件を完了している。
  • インストールホストに最新の ROSA CLI rosa をインストールして設定した。

手順

  1. AWS リソースと一緒に OIDC 設定を作成するには、次のコマンドを実行します。

    $ rosa create oidc-config --mode=auto --yes
    Copy to Clipboard Toggle word wrap

    このコマンドは次の情報を返します。

    出力例

    ? Would you like to create a Managed (Red Hat hosted) OIDC Configuration Yes
    I: Setting up managed OIDC configuration
    I: To create Operator Roles for this OIDC Configuration, run the following command and remember to replace <user-defined> with a prefix of your choice:
    	rosa create operator-roles --prefix <user-defined> --oidc-config-id 13cdr6b
    If you are going to create a Hosted Control Plane cluster please include '--hosted-cp'
    I: Creating OIDC provider using 'arn:aws:iam::4540112244:user/userName'
    ? Create the OIDC provider? Yes
    I: Created OIDC provider with ARN 'arn:aws:iam::4540112244:oidc-provider/dvbwgdztaeq9o.cloudfront.net/13cdr6b'
    Copy to Clipboard Toggle word wrap

    クラスターを作成するときは、OIDC 設定 ID を指定する必要があります。CLI 出力では、--mode auto のこの値が提供されます。それ以外の場合は、--mode manualaws CLI 出力に基づいてこれらの値を決定する必要があります。

  2. オプション: OIDC 設定 ID を変数として保存して、後で使用できます。次のコマンドを実行して変数を保存します。

    $ export OIDC_ID=<oidc_config_id>
    1
    Copy to Clipboard Toggle word wrap
    1
    上記の出力例では、OIDC 設定 ID は 13cdr6b です。
    • 次のコマンドを実行して、変数の値を表示します。

      $ echo $OIDC_ID
      Copy to Clipboard Toggle word wrap

      出力例

      13cdr6b
      Copy to Clipboard Toggle word wrap

検証

  • ユーザー組織に関連付けられているクラスターで使用できる可能な OIDC 設定をリストできます。以下のコマンドを実行します。

    $ rosa list oidc-config
    Copy to Clipboard Toggle word wrap

    出力例

    ID                                MANAGED  ISSUER URL                                                             SECRET ARN
    2330dbs0n8m3chkkr25gkkcd8pnj3lk2  true     https://dvbwgdztaeq9o.cloudfront.net/2330dbs0n8m3chkkr25gkkcd8pnj3lk2
    233hvnrjoqu14jltk6lhbhf2tj11f8un  false    https://oidc-r7u1.s3.us-east-1.amazonaws.com                           aws:secretsmanager:us-east-1:242819244:secret:rosa-private-key-oidc-r7u1-tM3MDN
    Copy to Clipboard Toggle word wrap

4.2.4. Operator のロールとポリシーの作成

Red Hat OpenShift Service on AWS クラスターをデプロイするときは、Operator IAM ロールを作成する必要があります。クラスター Operator は、Operator のロールとポリシーを使用して、バックエンドストレージの管理やクラスターへの外部アクセスなどのクラスター操作を実行するために必要な一時的な権限を取得します。

前提条件

  • Red Hat OpenShift Service on AWS の AWS 前提条件を完了している。
  • インストールホストに最新の ROSA CLI (rosa) をインストールして設定した。
  • アカウント全体の AWS ロールを作成した。

手順

  1. Operator ロールを作成するには、次のコマンドを実行します。

    $ rosa create operator-roles --hosted-cp --prefix=$OPERATOR_ROLES_PREFIX --oidc-config-id=$OIDC_ID --installer-role-arn arn:aws:iam::$AWS_ACCOUNT_ID:role/${ACCOUNT_ROLES_PREFIX}-HCP-ROSA-Installer-Role
    Copy to Clipboard Toggle word wrap

    次の内訳は、Operator ロール作成のオプションを示しています。

    $ rosa create operator-roles --hosted-cp
    	--prefix=$OPERATOR_ROLES_PREFIX 
    1
    
    	--oidc-config-id=$OIDC_ID 
    2
    
    	--installer-role-arn arn:aws:iam::$AWS_ACCOUNT_ID:role/$ACCOUNT_ROLES_PREFIX-HCP-ROSA-Installer-Role 
    3
    Copy to Clipboard Toggle word wrap
    1
    これらの Operator ロールを作成するときは、接頭辞を指定する必要があります。そうしないとエラーが発生します。演算子接頭辞は、このセクションの関連情報を参照してください。
    2
    この値は、Red Hat OpenShift Service on AWS クラスター用に作成した OIDC 設定 ID です。
    3
    この値は、Red Hat OpenShift Service on AWS アカウントロールを作成したときに作成したインストーラーロール ARN です。

    Red Hat OpenShift Service on AWS クラスターに正しいロールを作成するには、--hosted-cp パラメーターを含める必要があります。このコマンドは次の情報を返します。

    出力例

    ? Role creation mode: auto
    ? Operator roles prefix: <pre-filled_prefix> 
    1
    
    ? OIDC Configuration ID: 23soa2bgvpek9kmes9s7os0a39i13qm4 | https://dvbwgdztaeq9o.cloudfront.net/23soa2bgvpek9kmes9s7os0a39i13qm4 
    2
    
    ? Create hosted control plane operator roles: Yes
    W: More than one Installer role found
    ? Installer role ARN: arn:aws:iam::4540112244:role/<prefix>-HCP-ROSA-Installer-Role
    ? Permissions boundary ARN (optional):
    I: Reusable OIDC Configuration detected. Validating trusted relationships to operator roles:
    I: Creating roles using 'arn:aws:iam::4540112244:user/<userName>'
    I: Created role '<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials'
    I: Created role '<prefix>-openshift-cloud-network-config-controller-cloud-credenti' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-cloud-network-config-controller-cloud-credenti'
    I: Created role '<prefix>-kube-system-kube-controller-manager' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-kube-controller-manager'
    I: Created role '<prefix>-kube-system-capa-controller-manager' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-capa-controller-manager'
    I: Created role '<prefix>-kube-system-control-plane-operator' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-control-plane-operator'
    I: Created role '<prefix>-kube-system-kms-provider' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-kms-provider'
    I: Created role '<prefix>-openshift-image-registry-installer-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-image-registry-installer-cloud-credentials'
    I: Created role '<prefix>-openshift-ingress-operator-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-ingress-operator-cloud-credentials'
    I: To create a cluster with these roles, run the following command:
    	rosa create cluster --sts --oidc-config-id 23soa2bgvpek9kmes9s7os0a39i13qm4 --operator-roles-prefix <prefix> --hosted-cp
    Copy to Clipboard Toggle word wrap

    1
    このフィールドには、最初の作成コマンドで設定した接頭辞が事前に入力されます。
    2
    このフィールドでは、Red Hat OpenShift Service on AWS クラスター用に作成した OIDC 設定を選択する必要があります。

    Operator ロールが作成され、Red Hat OpenShift Service on AWS クラスターの作成に使用する準備が整いました。

検証

  • Red Hat OpenShift Service on AWS に関連付けられている Operator ロールをリスト表示できます。以下のコマンドを実行します。

    $ rosa list operator-roles
    Copy to Clipboard Toggle word wrap

    出力例

    I: Fetching operator roles
    ROLE PREFIX  AMOUNT IN BUNDLE
    <prefix>      8
    ? Would you like to detail a specific prefix Yes 
    1
    
    ? Operator Role Prefix: <prefix>
    ROLE NAME                                                         ROLE ARN                                                                                         VERSION  MANAGED
    <prefix>-kube-system-capa-controller-manager                       arn:aws:iam::4540112244:role/<prefix>-kube-system-capa-controller-manager                       4.13     No
    <prefix>-kube-system-control-plane-operator                        arn:aws:iam::4540112244:role/<prefix>-kube-system-control-plane-operator                        4.13     No
    <prefix>-kube-system-kms-provider                                  arn:aws:iam::4540112244:role/<prefix>-kube-system-kms-provider                                  4.13     No
    <prefix>-kube-system-kube-controller-manager                       arn:aws:iam::4540112244:role/<prefix>-kube-system-kube-controller-manager                       4.13     No
    <prefix>-openshift-cloud-network-config-controller-cloud-credenti  arn:aws:iam::4540112244:role/<prefix>-openshift-cloud-network-config-controller-cloud-credenti  4.13     No
    <prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials       arn:aws:iam::4540112244:role/<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials       4.13     No
    <prefix>-openshift-image-registry-installer-cloud-credentials      arn:aws:iam::4540112244:role/<prefix>-openshift-image-registry-installer-cloud-credentials      4.13     No
    <prefix>-openshift-ingress-operator-cloud-credentials              arn:aws:iam::4540112244:role/<prefix>-openshift-ingress-operator-cloud-credentials              4.13     No
    Copy to Clipboard Toggle word wrap

    1
    コマンドを実行すると、AWS アカウントに関連付けられているすべての接頭辞が表示され、この接頭辞に関連付けられているロールの数が記録されます。これらのロールとその詳細をすべて表示する必要がある場合は、詳細プロンプトで "Yes" と入力すると、これらのロールが詳細とともにリストされます。

4.2.5. カスタム AWS KMS キーを使用して Red Hat OpenShift Service on AWS クラスターを作成する

ノードルートボリューム、etcd データベース、またはその両方を暗号化するために使用される、お客様提供の KMS キーを使用して Red Hat OpenShift Service on AWS クラスターを作成できます。両方にそれぞれ異なる KMS キー ARN を指定できます。

注記

Red Hat OpenShift Service on AWS は、お客様が提供した KMS キーを使用して永続ボリュームを暗号化するための デフォルトの ストレージクラスを自動的に設定しません。これは、インストール後にクラスター内で設定できるものです。

手順

  1. 次のコマンドを実行して、AWS の顧客管理のカスタム KMS キーを作成します。

    $ KMS_ARN=$(aws kms create-key --region $AWS_REGION --description 'Custom ROSA Encryption Key' --tags TagKey=red-hat,TagValue=true --query KeyMetadata.Arn --output text)
    Copy to Clipboard Toggle word wrap

    このコマンドで、後の手順のために、このカスタムキーの Amazon リソースネーム (ARN) 出力が保存されます。

    注記

    お客様は、お客様の KMS キーに必要な --tags TagKey=red-hat,TagValue=true 引数を指定する必要があります。

  2. 次のコマンドを実行して、KMS キーが作成されたことを確認します。

    $ echo $KMS_ARN
    Copy to Clipboard Toggle word wrap
  3. AWS アカウント ID を環境変数に設定します。

    $ AWS_ACCOUNT_ID=<aws_account_id>
    Copy to Clipboard Toggle word wrap
  4. 前述の手順で作成したアカウント全体のインストーラーロールと Operator ロールの ARN を、ファイルの Statement.Principal.AWS セクションに追加します。次の例では、デフォルトの ManagedOpenShift-HCP-ROSA-Installer-Role ロールの ARN が追加されます。

    {
      "Version": "2012-10-17",
      "Id": "key-rosa-policy-1",
      "Statement": [
      {
                  "Sid": "Enable IAM User Permissions",
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::${AWS_ACCOUNT_ID}:root"
                  },
                  "Action": "kms:*",
                  "Resource": "*"
              },
            {
                  "Sid": "Installer Permissions",
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::${AWS_ACCOUNT_ID}:role/ManagedOpenShift-HCP-ROSA-Installer-Role"
                  },
                  "Action": [
                      "kms:CreateGrant",
                      "kms:DescribeKey",
                      "kms:GenerateDataKeyWithoutPlaintext"
                  ],
                  "Resource": "*"
              },
              {
                  "Sid": "ROSA KubeControllerManager Permissions",
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::${AWS_ACCOUNT_ID}:role/<operator_role_prefix>-kube-system-kube-controller-manager"
    
                  },
                  "Action": "kms:DescribeKey",
                  "Resource": "*"
              },
              {
                  "Sid": "ROSA KMS Provider Permissions",
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::${AWS_ACCOUNT_ID}:role/<operator_role_prefix>-kube-system-kms-provider"
                  },
                  "Action": [
                      "kms:Encrypt",
                      "kms:Decrypt",
                      "kms:DescribeKey"
                  ],
                  "Resource": "*"
              },
              {
                  "Sid": "ROSA NodeManager Permissions",
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::${AWS_ACCOUNT_ID}:role/<operator_role_prefix>-kube-system-capa-controller-manager"
                  },
                  "Action": [
                      "kms:DescribeKey",
                      "kms:GenerateDataKeyWithoutPlaintext",
                      "kms:CreateGrant"
                  ],
                  "Resource": "*"
              }
          ]
      }
    Copy to Clipboard Toggle word wrap
  5. 次のコマンドを実行して、作成されたポリシーファイルの詳細を確認します。

    $ cat rosa-key-policy.json
    Copy to Clipboard Toggle word wrap
  6. 次のコマンドを実行して、新しく生成されたキーポリシーをカスタム KMS キーに適用します。

    $ aws kms put-key-policy --key-id $KMS_ARN \
    --policy file://rosa-key-policy.json \
    --policy-name default
    Copy to Clipboard Toggle word wrap
  7. 次のコマンドを実行してクラスターを作成します。

    注記

    クラスター名が 15 文字を超える場合、*.openshiftapps.com にプロビジョニングされたクラスターのサブドメインとして自動生成されたドメイン接頭辞が含まれます。

    サブドメインをカスタマイズするには、--domain-prefix フラグを使用します。ドメイン接頭辞は 15 文字を超えてはならず、一意である必要があり、クラスターの作成後に変更できません。

    $ rosa create cluster --cluster-name <cluster_name> \
    --subnet-ids <private_subnet_id>,<public_subnet_id> \
    --sts \
    --mode auto \
    --machine-cidr 10.0.0.0/16 \
    --compute-machine-type m5.xlarge \
    --hosted-cp \
    --region <aws_region> \
    --oidc-config-id $OIDC_ID \
    --kms-key-arn $KMS_ARN \ 
    1
    
    --etcd-encryption-kms-arn $KMS_ARN \ 
    2
    
    --operator-roles-prefix $OPERATOR_ROLES_PREFIX
    Copy to Clipboard Toggle word wrap
    1
    この KMS キー ARN は、すべてのワーカーノードのルートボリュームを暗号化するために使用します。etcd データベースの暗号化のみが必要な場合は必要ありません。
    2
    この KMS キー ARN は、etcd データベースの暗号化に使用します。etcd データベースは、デフォルトでは常に AES 暗号ブロックを使用して暗号化されますが、代わりに KMS キーを使用して暗号化することもできます。ノードのルートボリュームの暗号化のみが必要な場合は必要ありません。

検証

OpenShift Cluster Manager を使用して、KMS キーが機能することを確認できます。

  1. OpenShift Cluster Manager に移動し、Instances を選択します。
  2. インスタンスを選択します。
  3. Storage タブをクリックします。
  4. KMS key ID をコピーします。
  5. Key Management Service を検索して選択します。
  6. コピーした KMS key IDFilter フィールドに入力します。

第5章 Red Hat OpenShift Service on AWS クラスター用の共有 VPC を設定する

共有され集中管理された AWS Virtual Private Cloud (VPC) に Red Hat OpenShift Service on AWS クラスターを作成できます。

注記

別のクラスター用にインストーラーによって自動的に作成された VPC に新しい Red Hat OpenShift Service on AWS クラスターをインストールすることはサポートされていません。

注記
  • このプロセスには、同じ AWS 組織に属する 2 つの別々 の AWS アカウントが必要です。1 つのアカウントは VPC 所有の AWS アカウント (VPC Owner) として機能し、もう 1 つのアカウントはクラスターを作成する AWS アカウント (Cluster Creator) でクラスターを作成します。
  • 共有 VPC へのクラスターのインストールは、OpenShift 4.17.9 以降でのみサポートされています。

* ホストゾーンは、集中管理された VPC アカウントまたはクラスターがデプロイされているワークロードアカウントのいずれかに作成できます。

注記

特定のクラスターと VPC の関係のみがサポートされます。単一の VPC 内の複数の Red Hat OpenShift Service on AWS クラスターはサポートされていません。詳細は、単一の VPC 内の複数の Red Hat OpenShift Service on AWS クラスターを 参照してください。

VPC Owner の前提条件

Cluster Creator の前提条件

5.1. ステップ 1: VPC Owner: AWS 組織内で共有するための VPC の設定

VPC 内のサブネットを AWS 組織内の別の AWS アカウントと共有できます。

手順

  1. AWS コンソールの VPC セクション で、仕様に合わせて VPC を作成または変更します。正しいリージョンを選択したことを確認してください。
  2. Route 53 ロール を作成します。

    注記

    Amazon Route 53 ホストゾーン (ステップ 3 で作成) を作成する予定のアカウントと同じアカウントに Route 53 ロール を作成する必要があります。たとえば、集中管理された VPC アカウントにホストゾーンを作成する場合は、VPC 所有者 アカウントに Route 53 ロール を作成する必要があります。ワークロードアカウントにホストゾーンを作成する場合は、クラスター作成者 アカウントに Route 53 ロール を作成する必要があります。

    1. ロールを引き受ける権限を付与するカスタム信頼ポリシーファイルを作成します。

      $ cat <<EOF > /tmp/route53-role.json
      {
          "Version": "2012-10-17",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::<Account-ID>:root"  
      1
      
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      EOF
      Copy to Clipboard Toggle word wrap
      1
      信頼ポリシープリンシパルは、ルート ではなく、Ingress Operator ロールとインストーラーアカウントロールにスコープを縮小できます。
    2. AWS 管理ポリシー ROSASharedVPCRoute53Policy の IAM ロールを作成します。

      $ aws iam create-role --role-name <role_name> \  
      1
      
          --assume-role-policy-document file:///tmp/route53-role.json
      Copy to Clipboard Toggle word wrap
      1
      <role_name> は、作成するロールの名前に置き換えます。
    3. 必要な共有 VPC 権限を許可するために、AWS 管理ポリシー ROSASharedVPCRoute53Policy を アタッチします。

      $ aws iam attach-role-policy --role-name <role_name> \  
      1
      
      --policy-arn arn:aws:iam::aws:policy/ROSASharedVPCRoute53Policy
      Copy to Clipboard Toggle word wrap
      1
      <role_name> は、作成したロールの名前に置き換えます。
  3. VPC エンドポイントロール を作成します。

    1. ロールを引き受ける権限を付与するカスタム信頼ポリシーファイルを作成します。

      $ cat <<EOF > /tmp/shared-vpc-role.json
      {
          "Version": "2012-10-17",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::<Account-ID>:root"  
      1
      
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      EOF
      Copy to Clipboard Toggle word wrap
      1
      信頼ポリシープリンシパルは、ルート ではなく、Ingress Operator ロールとインストーラーアカウントロールにスコープを縮小できます。
    2. AWS 管理ポリシー ROSASharedVPCEndpointPolicy の IAM ロールを作成します。

      $ aws iam create-role --role-name <role_name> \  
      1
      
          --assume-role-policy-document file:///tmp/vpce-role.json
      Copy to Clipboard Toggle word wrap
      1
      <role_name> は、作成するロールの名前に置き換えます。
    3. 必要な共有 VPC 権限を許可するために、AWS 管理ポリシー ROSASharedVPCEndpointPolicy を アタッチします。

      $ aws iam attach-role-policy --role-name <role_name> \  
      1
      
      --policy-arn arn:aws:iam::aws:policy/ROSASharedVPCEndpointPolicy
      Copy to Clipboard Toggle word wrap
      1
      <role_name> は、作成したロールの名前に置き換えます。
  4. 設定を続行するには、Route 53 ロール ARN と VPC エンドポイントロール ARN を Cluster Creator に提供します。
関連情報

VPC 所有者が Virtual Private Cloud (VPC)、サブネット、および VPC リソースを共有するための IAM ロールを作成した後、openshiftapps.com DNS ドメインを予約し、VPC 所有者 と通信するための Operator ロールを作成します。

注記

共有 VPC クラスターの場合は、クラスター作成手順の後に Operator ロールを作成することもできます。クラスターは、Ingress Operator のロール ARN が共有 VPC ロールの信頼関係に追加されるまで waiting 状態になります。

前提条件

  • VPC 所有者 からの IAM ロールの Route 53 ロール ARN を取得しています。
  • VPC 所有者 からの IAM ロールの VPC エンドポイントロール ARN を取得しています。

手順

  1. 以下のコマンドを使用して openshiftapps.com DNS ドメインを予約します。

    $ rosa create dns-domain --hosted-cp
    Copy to Clipboard Toggle word wrap

    このコマンドは、予約済みの openshiftapps.com DNS ドメインを作成します。

    I: DNS domain '14eo.p3.openshiftapps.com' has been created.
    I: To view all DNS domains, run 'rosa list dns-domains'
    Copy to Clipboard Toggle word wrap
  2. OIDC 設定を作成します。

    OIDC 設定プロセス の詳細は、この記事を確認してください。次のコマンドは、必要な OIDC 設定 ID を生成します。

    $ rosa create oidc-config
    Copy to Clipboard Toggle word wrap

    コマンドが OIDC 設定を作成したことを確認します。

    I: To create Operator Roles for this OIDC Configuration, run the following command and remember to replace <user-defined> with a prefix of your choice:
    	rosa create operator-roles --prefix <user-defined> --oidc-config-id 25tu67hq45rto1am3slpf5lq6jargg
    Copy to Clipboard Toggle word wrap
  3. 次のコマンドを入力してアカウントロールを作成します。

    $ rosa create account-roles
        --route53-role-arn <Created_Route_53_Role_Arn> 
    1
    
        --vpc-endpoint-role-arn <Created_VPC_Endpoint_Role_Arn> 
    2
    
        --prefix <user_defined_account_role_prefix> 
    3
    
        --hosted-cp
    Copy to Clipboard Toggle word wrap
    1
    VPC 所有者が 作成した Route 53 ロールの ARN を指定します。
    2
    VPC 所有者が 作成した VPC エンドポイントロールの ARN を指定します。
    3
    Operator ロールの接頭辞を指定します。
  4. 次のコマンドを入力して、Operator ロールを作成します。

    $ rosa create operator-roles --oidc-config-id <oidc-config-ID> 
    1
    
        --installer-role-arn <Installer_Role> 
    2
    
        --route53-role-arn <Created_Route_53_Role_Arn> 
    3
    
        --vpc-endpoint-role-arn <Created_VPC_Endpoint_Role_Arn> 
    4
    
        --prefix <operator-prefix> 
    5
    
        --hosted-cp
    Copy to Clipboard Toggle word wrap
    1
    前の手順で作成した OIDC 設定 ID を指定します。
    2
    rosa create account-roles プロセスの一部として作成されたインストーラー ARN を指定します。
    3
    VPC 所有者が 作成した Route 53 ロールの ARN を指定します。
    4
    VPC 所有者が 作成した VPC エンドポイントロールの ARN を指定します。
    5
    Operator ロールの接頭辞を指定します。
    注記

    インストーラーアカウントロールと共有 VPC ロールには 1 対 1 の関係が必要です。複数の共有 VPC ロールを作成する場合は、共有 VPC ロールごとに 1 セットのアカウントロールを作成する必要があります。

  5. Operator ロールを作成したら、Ingress Operator クラウド認証情報 ロールの ARN、インストーラー ロールの ARN、コントロールプレーン Operator クラウド認証情報 ロールの ARN を VPC 所有者 と共有して、設定を続行します。

    共有する情報は、たとえば次のようなものです。

    • my-rosa-cluster.14eo.p1.openshiftapps.com
    • arn:aws:iam::111122223333:role/ManagedOpenShift-Installer-Role
    • arn:aws:iam::111122223333:role/my-rosa-cluster-openshift-ingress-operator-cloud-credentials
    • arn:aws:iam::111122223333: ロール/my-rosa-cluster- コントロールプレーン -Operator

5.3. ステップ 3: VPC Owner: 共有 VPC ロールの更新とホストゾーンの作成

クラスター作成者が DNS ドメインと IAM ロールを提供した後、2 つのホストゾーンを作成し、VPC を共有するために作成された IAM ロールの信頼ポリシーを更新します。

注記

ホストゾーンは、集中管理された VPC アカウントまたはワークロードアカウントのいずれかに作成できます。

* ホストゾーンは、集中管理された VPC アカウントまたはクラスターがデプロイされているワークロードアカウントのいずれかに作成できます。

前提条件

  • Cluster Creator からの完全なドメイン名を取得している。
  • Ingress Operator Cloud Credentials ロールの ARN を Cluster Creator から取得している。
  • インストーラー ロールの ARN を Cluster Creator から取得している。
  • Cluster Creator からの コントロールプレーン Operator の Cloud Credentials ロールの ARN を取得していること。
注記

クラスター名が 15 文字を超える場合、*.openshiftapps.com にプロビジョニングされたクラスターのサブドメインとして自動生成されたドメイン接頭辞が含まれます。

サブドメインをカスタマイズするには、--domain-prefix フラグを使用します。ドメイン接頭辞は 15 文字を超えてはならず、一意である必要があり、クラスターの作成後に変更できません。

手順

  1. AWS コンソールのリソースアクセスマネージャー で、以前に作成した VPC のパブリックサブネットとプライベートサブネットを Cluster Creator の AWS アカウント ID で共有するリソース共有を作成します。
  2. Route 53 ロール を更新し、信頼ポリシーのプリンシパルセクションに インストーラーIngress Operator のクラウド認証情報 ロールを追加します。

    {
      "Version": "2012-10-17",
      "Statement": [
        {
    	  "Sid": "Statement1",
    	  "Effect": "Allow",
    	  "Principal": {
    	  	"AWS": [
              "arn:aws:iam::<Cluster-Creator's-AWS-Account-ID>:role/<prefix>-ingress-operator-cloud-credentials",
              "arn:aws:iam::<Cluster-Creator's-AWS-Account-ID>:role/<prefix>-hcp-Installer-Role",
              "arn:aws:iam::<Cluster-Creator's-AWS-Account-ID>:role/<prefix>-control-plane-operator-cloud-credentials"
            ]
    	  },
    	  "Action": "sts:AssumeRole"
    	}
      ]
    }
    Copy to Clipboard Toggle word wrap
  3. VPC エンドポイントロール を更新し、インストーラー ロールと Ingress Operator クラウド認証情報 ロールを信頼ポリシーのプリンシパルセクションに追加します。

    {
      "Version": "2012-10-17",
      "Statement": [
        {
    	  "Sid": "Statement1",
    	  "Effect": "Allow",
    	  "Principal": {
    	  	"AWS": [
              "arn:aws:iam::<Cluster-Creator's-AWS-Account-ID>:role/<prefix>-hcp-Installer-Role",
              "arn:aws:iam::<Cluster-Creator's-AWS-Account-ID>:role/<prefix>-control-plane-operator-cloud-credentials"
            ]
    	  },
    	  "Action": "sts:AssumeRole"
    	}
      ]
    }
    Copy to Clipboard Toggle word wrap
  4. AWS console の Route 53 セクション でプライベートホストゾーンを作成します。ホストゾーン設定では、ドメイン名は rosa.<cluster-name>.<base-domain> です。プライベートホストゾーンは、ネットワーク所有者の VPC に関連付ける必要があります。
  5. AWS コンソールの Route 53 セクション でローカルホストゾーンを作成します。ホストゾーン設定では、ドメイン名は <cluster-name>.hypershift.local です。ローカルホストゾーンは、ネットワーク所有者の VPC に関連付けられている必要があります。
  6. ホストゾーンが作成され、ネットワーク所有者の VPC に関連付けられた後、設定を続行するために Cluster Creator に次の情報を提供します。

    • ホストゾーン ID
    • AWS リージョン
    • サブネット ID

5.4. ステップ 4: Cluster Creator: 共有 VPC でのクラスターの作成

共有 VPC にクラスターを作成するには、次の手順を実行します。

注記

共有 VPC へのクラスターのインストールは、OpenShift 4.17.9 以降でのみサポートされています。

前提条件

  • VPC 所有者 からホストゾーン ID を取得しました。
  • VPC Owner から AWS リージョンを取得している。
  • VPC Owner からサブネット ID を取得している。
  • VPC 所有者 から Route 53 ロール ARN を取得しています。
  • VPC 所有者 から VPC エンドポイントロール ARN を取得しています。

手順

  • ターミナルで次のコマンドを入力して、共有 VPC を作成します。

    $ rosa create cluster --cluster-name <cluster_name> --sts --operator-roles-prefix <prefix> --oidc-config-id <oidc_config_id> --region us-east-1 --subnet-ids <subnet_ids> --hcp-internal-communication-hosted-zone-id <local_hosted_zone_ID> --ingress-private-hosted-zone-id <private_hosted_zone_ID> --route53-role-arn <route_53_role_arn> vpc-endpoint-role-arn <vpc_endpoint_role_arn> --base-domain <dns-domain> --additional-allowed-principals <route53-role-arn>,<vpc-endpoint-role-arn> --hosted-cp
    Copy to Clipboard Toggle word wrap

第6章 Red Hat OpenShift Service on AWS にプライベートクラスターを作成する

パブリックインターネットアクセスを必要としない Red Hat OpenShift Service on AWS の場合は、プライベートクラスターを作成できます。

6.1. ROSA CLI を使用してプライベート Red Hat OpenShift Service on AWS クラスターを作成する

ROSA コマンドラインインターフェイス (CLI) rosa を使用して、Red Hat OpenShift Service on AWS で複数のアベイラビリティーゾーン (マルチ AZ) を持つプライベートクラスターを作成できます。

前提条件

  • 利用可能な AWS サービスクォータがある。
  • AWS コンソールで Red Hat OpenShift Service on AWS を有効にしました。
  • インストールホストに最新バージョンの ROSA CLI をインストールして設定した。

手順

Hosted Control Plane を使用したクラスターの作成には、10 分ほどかかる場合があります。

  1. 少なくとも 1 つのプライベートサブネットを持つ VPC を作成します。マシンの Classless Inter-Domain Routing (CIDR) が、仮想プライベートクラウドの CIDR と一致していることを確認します。詳細は、独自の VPC を使用するための要件 および VPC 検証 を参照してください。

    重要

    ファイアウォールを使用する場合は、ROSA が機能するのに必要なサイトにアクセスできるようにファイアウォールを設定する必要があります。

    詳細は、「AWS PrivateLink ファイアウォールの前提条件」セクションを参照してください。

  2. 次のコマンドを実行して、アカウント全体の IAM ロールを作成します。

    $ rosa create account-roles --hosted-cp
    Copy to Clipboard Toggle word wrap
  3. 次のコマンドを実行して、OIDC 設定を作成します。

    $ rosa create oidc-config --mode=auto --yes
    Copy to Clipboard Toggle word wrap

    OIDC 設定の ID を保存します。Operator ロールの作成に必要なためです。

    出力例

    I: Setting up managed OIDC configuration
    I: To create Operator Roles for this OIDC Configuration, run the following command and remember to replace <user-defined> with a prefix of your choice:
    	rosa create operator-roles --prefix <user-defined> --oidc-config-id 28s4avcdt2l318r1jbk3ifmimkurk384
    If you are going to create a Hosted Control Plane cluster please include '--hosted-cp'
    I: Creating OIDC provider using 'arn:aws:iam::46545644412:user/user'
    I: Created OIDC provider with ARN 'arn:aws:iam::46545644412:oidc-provider/oidc.op1.openshiftapps.com/28s4avcdt2l318r1jbk3ifmimkurk384'
    Copy to Clipboard Toggle word wrap

  4. 次のコマンドを実行して、Operator ロールを作成します。

    $ rosa create operator-roles --hosted-cp --prefix <operator_roles_prefix> --oidc-config-id <oidc_config_id> --installer-role-arn arn:aws:iam::$<account_roles_prefix>:role/$<account_roles_prefix>-HCP-ROSA-Installer-Role
    Copy to Clipboard Toggle word wrap
  5. 次のコマンドを実行して、プライベート Red Hat OpenShift Service on AWS クラスターを作成します。

    $ rosa create cluster --private --cluster-name=<cluster-name> --sts --mode=auto --hosted-cp --operator-roles-prefix <operator_role_prefix> --oidc-config-id <oidc_config_id> [--machine-cidr=<VPC CIDR>/16] --subnet-ids=<private-subnet-id1>[,<private-subnet-id2>,<private-subnet-id3>]
    Copy to Clipboard Toggle word wrap
  6. 次のコマンドを入力してクラスターのステータスを確認します。クラスターの作成中、出力の State フィールドは pending から installing に移行し、最後に ready に移行します。

    $ rosa describe cluster --cluster=<cluster_name>
    Copy to Clipboard Toggle word wrap
    注記

    インストールが失敗する場合や、10 分経っても State フィールドが ready に変わらない場合は、関連情報セクションの「Red Hat OpenShift Service on AWS のインストールのトラブルシューティング」ドキュメントを参照してください。

  7. 以下のコマンドを実行して、OpenShift インストーラーのログでクラスターの進捗を追跡します。

    $ rosa logs install --cluster=<cluster_name> --watch
    Copy to Clipboard Toggle word wrap

6.2. AWS PrivateLink エンドポイントに AWS セキュリティーグループをさらに追加する

Red Hat OpenShift Service on AWS クラスターでは、ホストの Virtual Private Cloud (VPC) で公開される AWS PrivateLink エンドポイントに、クラスターのマシン CIDR 範囲内から発信されるリクエストへのアクセスを制限するセキュリティーグループがあります。VPC ピアリング、トランジットゲートウェイ、またはその他のネットワーク接続を介して VPC 外部のエンティティーに API アクセスを許可するには、別のセキュリティーグループを作成して PrivateLink エンドポイントにアタッチする必要があります。

重要

AWS PrivateLink エンドポイントへの AWS セキュリティーグループの追加は、Red Hat OpenShift Service on AWS バージョン 4.17.2 以降でのみサポートされます。

前提条件

  • 企業ネットワークまたは他の VPC に接続性がある。
  • VPC 内でセキュリティーグループを作成して割り当てる権限を持っている。

手順

  1. 次のコマンドを実行して、クラスター名を環境変数として設定します。

    $ export CLUSTER_NAME=<cluster_name>
    Copy to Clipboard Toggle word wrap

    次のコマンドを実行して、変数が存在することを確認します。

    $ echo $CLUSTER_NAME
    Copy to Clipboard Toggle word wrap

    出力例

    hcp-private
    Copy to Clipboard Toggle word wrap

  2. 次のコマンドを実行して、VPC エンドポイント (VPCE) ID と VPC ID を見つけます。

    $ read -r VPCE_ID VPC_ID <<< $(aws ec2 describe-vpc-endpoints --filters "Name=tag:api.openshift.com/id,Values=$(rosa describe cluster -c ${CLUSTER_NAME} -o yaml | grep '^id: ' | cut -d' ' -f2)" --query 'VpcEndpoints[].[VpcEndpointId,VpcId]' --output text)
    Copy to Clipboard Toggle word wrap
    警告

    デフォルトの AWS PrivateLink エンドポイントセキュリティーグループの変更または削除はサポートされておらず、予期しない動作が発生する可能性があります。

  3. 次のコマンドを実行して、追加のセキュリティーグループを作成します。

    $ export SG_ID=$(aws ec2 create-security-group --description "Granting API access to ${CLUSTER_NAME} from outside of VPC" --group-name "${CLUSTER_NAME}-api-sg" --vpc-id $VPC_ID --output text)
    Copy to Clipboard Toggle word wrap
  4. 次のコマンドを実行して、セキュリティーグループに受信 (Ingress) ルールを追加します。

    $ aws ec2 authorize-security-group-ingress --group-id $SG_ID --ip-permissions FromPort=443,ToPort=443,IpProtocol=tcp,IpRanges=[{CidrIp=<cidr-to-allow>}] \ 
    1
    Copy to Clipboard Toggle word wrap
    1
    アクセスを許可する CIDR ブロックを指定します。
  5. 次のコマンドを実行して、新しいセキュリティーグループを VPCE に追加します。

    $ aws ec2 modify-vpc-endpoint --vpc-endpoint-id $VPCE_ID --add-security-group-ids $SG_ID
    Copy to Clipboard Toggle word wrap

指定された CIDR ブロックから Red Hat OpenShift Service on AWS の API にアクセスできるようになりました。

6.3. Red Hat OpenShift Service on AWS クラスターの追加プリンシパル

クラスターのプライベート API サーバーエンドポイントに接続するための追加プリンシパルとして、AWS Identity and Access Management (IAM) ロールを許可できます。

Red Hat OpenShift Service on AWS クラスターの API サーバーエンドポイントには、パブリックインターネットまたは VPC プライベートサブネット内に作成されたインターフェイスエンドポイントからアクセスできます。デフォルトでは、-kube-system-kube-controller-manager Operator ロールを使用して、Red Hat OpenShift Service on AWS API サーバーにプライベートにアクセスできます。クラスターがインストールされているプライマリーアカウントを使用せずに、別のアカウントから Red Hat OpenShift Service on AWS に直接アクセスできるようにするには、クロスアカウント IAM ロールを追加のプリンシパルとして含める必要があります。この機能を使用すると、ピアリングを回避したり、クロスアカウント VPC をクラスターの VPC にアタッチしたりして、ネットワークアーキテクチャーを簡素化し、データ転送コストを削減できます。

この図では、クラスターを作成するクラスターが Account A として指定されています。このアカウントは、別のアカウントである Account B に API サーバーへのアクセス権が必要であることを指定します。

注記

追加の許可されたプリンシパルを設定したら、クロスアカウント Red Hat OpenShift Service on AWS API サーバーにアクセスする VPC にインターフェイス VPC エンドポイントを作成する必要があります。次に、Route53 にプライベートホストゾーンを作成し、Red Hat OpenShift Service on AWS への呼び出しを、作成された VPC エンドポイントを通過するようにルーティングします。

6.3.1. Red Hat OpenShift Service on AWS クラスターの作成中にプリンシパルを追加する

他のロールを介したアクセスを許可するには、--additional-allowed-principals 引数を使用します。

手順

  1. 次の例のように、rosa create cluster コマンドに --additional-allowed-principals 引数を追加します。

    $ rosa create cluster [...] --additional-allowed-principals <arn_string>
    Copy to Clipboard Toggle word wrap

    arn:aws:iam::account_id:role/role_name を使用して、特定のロールを承認できます。

  2. クラスター作成コマンドを実行すると、--additional-allowed-principals が指定されたクラスター概要が表示されます。

    出力例

    Name:                       mycluster
    Domain Prefix:              mycluster
    Display Name:               mycluster
    ID:                         <cluster-id>
    External ID:                <cluster-id>
    Control Plane:              ROSA Service Hosted
    OpenShift Version:          4.15.17
    Channel Group:              stable
    DNS:                        Not ready
    AWS Account:                <aws_id>
    AWS Billing Account:        <aws_id>
    API URL:
    Console URL:
    Region:                     us-east-2
    Availability:
     - Control Plane:           MultiAZ
     - Data Plane:              SingleAZ
    
    Nodes:
     - Compute (desired):       2
     - Compute (current):       0
    Network:
     - Type:                    OVNKubernetes
     - Service CIDR:            172.30.0.0/16
     - Machine CIDR:            10.0.0.0/16
     - Pod CIDR:                10.128.0.0/14
     - Host Prefix:             /23
     - Subnets:                 subnet-453e99d40, subnet-666847ce827
    EC2 Metadata Http Tokens:   optional
    Role (STS) ARN:             arn:aws:iam::<aws_id>:role/mycluster-HCP-ROSA-Installer-Role
    Support Role ARN:           arn:aws:iam::<aws_id>:role/mycluster-HCP-ROSA-Support-Role
    Instance IAM Roles:
     - Worker:                  arn:aws:iam::<aws_id>:role/mycluster-HCP-ROSA-Worker-Role
    Operator IAM Roles:
     - arn:aws:iam::<aws_id>:role/mycluster-kube-system-control-plane-operator
     - arn:aws:iam::<aws_id>:role/mycluster-openshift-cloud-network-config-controller-cloud-creden
     - arn:aws:iam::<aws_id>:role/mycluster-openshift-image-registry-installer-cloud-credentials
     - arn:aws:iam::<aws_id>:role/mycluster-openshift-ingress-operator-cloud-credentials
     - arn:aws:iam::<aws_id>:role/mycluster-openshift-cluster-csi-drivers-ebs-cloud-credentials
     - arn:aws:iam::<aws_id>:role/mycluster-kube-system-kms-provider
     - arn:aws:iam::<aws_id>:role/mycluster-kube-system-kube-controller-manager
     - arn:aws:iam::<aws_id>:role/mycluster-kube-system-capa-controller-manager
    Managed Policies:           Yes
    State:                      waiting (Waiting for user action)
    Private:                    No
    Delete Protection:          Disabled
    Created:                    Jun 25 2024 13:36:37 UTC
    User Workload Monitoring:   Enabled
    Details Page:               https://console.redhat.com/openshift/details/s/Bvbok4O79q1Vg8
    OIDC Endpoint URL:          https://oidc.op1.openshiftapps.com/vhufi5lap6vbl3jlq20e (Managed)
    Audit Log Forwarding:       Disabled
    External Authentication:    Disabled
    Additional Principals:      arn:aws:iam::<aws_id>:role/additional-user-role
    Copy to Clipboard Toggle word wrap

6.3.2. 既存の Red Hat OpenShift Service on AWS クラスターにプリンシパルを追加する

コマンドラインインターフェイス (CLI) を使用して、クラスターにプリンシパルをさらに追加できます。

手順

  • 次のコマンドを実行してクラスターを編集し、このクラスターのエンドポイントにアクセスできる追加のプリンシパルを追加します。

    $ rosa edit cluster -c <cluster_name> --additional-allowed-principals <arn_string>
    Copy to Clipboard Toggle word wrap

    arn:aws:iam::account_id:role/role_name を使用して、特定のロールを承認できます。

6.4. 次のステップ

アイデンティティープロバイダーの設定

第7章 AWS クラスター上に Egress ゼロの Red Hat OpenShift Service on AWS クラスターを作成する

出力ゼロで Red Hat OpenShift Service on AWS を作成すると、クラスターがインターネットにアクセスできない場合にクラスターがローカルリージョンのイメージレジストリーを使用できるようにすることで、クラスターの安定性とセキュリティーを強化できます。クラスターは最初に Quay からイメージをプルしようとしますが、イメージにアクセスできない場合は、代わりにローカルリージョンのイメージレジストリーからイメージをプルします。

Egress ゼロのすべてのパブリッククラスターとプライベートクラスターは、インターネット上のさまざまなエンドポイントやレジストリーからこれらのイメージを収集するのではなく、クラスターのローカルリージョンにある Amazon Elastic Container Registry (ECR) から Red Hat コンテナーイメージを取得します。ECR は、OpenShift リリースイメージと Red Hat Operator 用のストレージを提供します。ECR へのリクエストは、すべてクラスター内の VPC エンドポイント経由で提供されるため、お客様の AWS ネットワーク内に保持されます。

Egress Zero の Red Hat OpenShift Service on AWS クラスターは、AWS ECR を使用して、パブリックインターネットを必要とせずにクラスターをプロビジョニングします。クラスターのライフサイクルに必要なプロセスは、AWS のプライベートネットワーク経由で実行されます。そのため、AWS ECR はクラスターのコアプラットフォームイメージを提供するうえで欠かせないサービスです。AWS ECR の詳細は、Amazon Elastic Container Registry を参照してください。

Virtual Private Cloud (VPC) を設定し、クラスターの作成時に --properties zero_egress:true フラグを使用することで、パブリック Egress を必要としない完全に機能するクラスターを作成できます。

Egress zero を使用してクラスターをアップグレードするには 、Red Hat OpenShift Service on AWS クラスターのアップグレードを 参照してください。

注記

ネットワークが制限された環境で作成されたクラスターは、Red Hat Insights や Telemetry などの特定の Red Hat OpenShift Service on AWS 機能を使用できない可能性があります。このようなクラスターでは、quay.io などのレジストリーへのパブリックアクセスを必要とするワークロードで障害が発生する可能性もあります。Egress ゼロを使用してインストールしたクラスターを使用する場合は、OperatorHub から Red Hat が所有する Operator をインストールすることもできます。Red Hat が所有する Operator の完全なリストは、Red Hat Ecosystem Catalog を参照してください。Egress ゼロを使用してインストールした Operator の場合、デフォルトの Operator チャネルのみがミラーリングされます。

ネットワーク環境用語集

非接続環境 という用語は、Red Hat OpenShift Service on AWS のドキュメント全体で使用されていますが、さまざまなレベルのインターネット接続を備えた環境を意味する場合もある広義の用語です。また、特定レベルのインターネット接続を意味する他の用語も使用されており、そのような環境では固有の設定が追加で必要な場合があります。この種類のネットワークは、インターネットに完全にアクセスできる "標準的なネットワーク" とは異なります。

次の表は、完全なインターネット接続がない環境を指して使用されるさまざまな用語を説明しています。

Expand
表7.1 非接続環境に関連する用語
用語説明

エアギャップネットワーク

外部ネットワークから完全に分離された環境またはネットワーク。

この場合の分離は、内部ネットワーク上のマシンと外部ネットワーク部分との間が物理的に分離されていること ("エアギャップ") を意味します。エアギャップ環境は、厳格なセキュリティー要件や規制要件がある業界でよく使用されます。

非接続環境

外部ネットワークから、一定レベルの分離が存在する環境またはネットワーク。

この分離は、内部ネットワーク上のマシンと外部ネットワークを物理的にまたは論理的に分離することで実現できます。外部ネットワークからの分離レベルにかかわらず、非接続環境のクラスターは Red Hat がホストするパブリックサービスにアクセスできないため、クラスターの機能を完全に維持するためのセットアップが追加で必要になります。

ネットワークが制限されたインストール

外部ネットワークへの接続が制限されている環境またはネットワーク。

内部ネットワーク上のマシンと外部ネットワークの間に物理的な接続が存在する場合もありますが、ネットワークトラフィックはファイアウォールやプロキシーなどの追加設定により制限されています。

前提条件

  • VPC、サブネット、その他の必要なインフラストラクチャーを作成するのに十分な権限を持つ AWS アカウントがある。
  • Terraform v1.4.0+ CLI をインストールした。
  • ROSA v1.2.45+ CLI をインストールした。
  • 必要な認証情報を使用して AWS CLI をインストールし、設定した。
  • git CLI をインストールした。
重要
  • Hosted Control Plane アーキテクチャーを使用する Red Hat OpenShift Service on AWS のすべてのサポートされているバージョンで Egress zero を使用できます。ただし、Red Hat では、OpenShift Container Platform バージョンごとに利用可能な最新の z-stream リリースを使用することを推奨しています。
  • 通常のクラスターと同様にクラスターをインストールおよびアップグレードすることはできます。しかし、Egress ゼロのクラスターでは、非接続環境での内部イメージレジストリーの機能に関するアップストリームの問題により、イメージレジストリーなどのすべてのプラットフォームコンポーネントを完全に使用することはできません。クラスターをアップグレードまたはインストールするときに、最新の ROSA バージョンを使用すると、この機能を復元できます。

7.1. 環境変数の設定

リソースの作成を効率化するには、次の環境変数を設定します。

手順

  1. 次のコマンドを実行して環境変数を設定します。

    $ export <variable_name>=<variable_value>
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを実行すると、変数が設定されたかどうかを確認できます。

    $ echo <variable_name>
    Copy to Clipboard Toggle word wrap
    Expand
    表7.2 切断された Red Hat OpenShift Service on AWS クラスターの推奨変数
    変数名変数値注記

    AWS_ACCOUNT_ID

    $(aws sts get-caller-identity --query Account --output text)

    rosa login を使用して AWS アカウントにログインする必要があります。

    CLUSTER_NAME

    クラスターに付ける名前。

    26 文字を超えるクラスター名を指定することはできません。

    OIDC_ID

    OpenID Connect (OIDC) 設定の 32 桁の ID。

    この ID は、rosa create oidc-config を実行して生成します。

    OPERATOR_ROLES_PREFIX

    Operator ロール接頭辞。

    AWS アカウントロールで Operator ロールと同じ接頭辞を使用するには、Operator ロール接頭辞変数を設定した後、ACCOUNT_ROLES_PREFIX=$OPERATOR_ROLES_PREFIX を実行できます。

    PRIVATE_SUBNET

    プライベートサブネットの ID。

    この値を引用符 (") で囲み、サブネット ID をコンマで区切る必要があります。

    REGION

    使用中の AWS リージョン。

    -

    SUBNET_IDS

    すべてのサブネットの ID。

    この値を引用符 (") で囲み、サブネット ID をコンマで区切る必要があります。

7.2. Red Hat OpenShift Service on AWS クラスター用の Virtual Private Cloud の作成

Red Hat OpenShift Service on AWS クラスターを作成するには、仮想プライベートクラウド (VPC) が必要です。VPC エンドポイント経由でローカルの ECR ミラーからイメージをプルするには、privatelink サービス接続を設定し、特定のタグを使用してデフォルトのセキュリティーグループを変更する必要があります。VPC を作成するには、次のいずれかの方法を使用します。

  • ROSA コマンドラインインターフェイス (CLI) を使用して VPC を作成する
  • Terraform テンプレートを使用して VPC を作成する
  • AWS CLI を使用した VPC の作成
  • AWS コンソールで VPC リソースを手動で作成する

7.2.1. ROSA CLI を使用した AWS VPC の作成

rosa create network コマンドは、ROSA CLI のバージョン 1.2.48 以降で使用できます。このコマンドは、AWS CloudFormation を使用して、Red Hat OpenShift Service on AWS クラスターのインストールに必要な VPC と関連ネットワークコンポーネントを作成します。CloudFormation はネイティブの AWS インフラストラクチャーコードツールであり、AWS CLI と互換性があります。

テンプレートを指定しない場合、次のパラメーターを持つリソースを作成するデフォルトのテンプレートが CloudFormation によって使用されます。

Expand
VPC のパラメーター

アベイラビリティーゾーン

1

リージョン

us-east-1

VPC CIDR

10.0.0.0/16

rosa create network コマンドで使用する CloudFormation テンプレートを作成し、カスタマイズできます。デフォルトの VPC テンプレートの詳細は、このセクションの関連情報を参照してください。

前提条件

  • AWS アカウントを設定した。
  • Red Hat アカウントを設定した。
  • ROSA CLI をインストールし、最新バージョンに設定した。

検証

  • 完了すると、作成されたリソースの概要が表示されます。

    INFO[0140] Resources created in stack:
    INFO[0140] Resource: AttachGateway, Type: AWS::EC2::VPCGatewayAttachment, ID: <gateway_id>
    INFO[0140] Resource: EC2VPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce_id>
    INFO[0140] Resource: EcrApiVPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce_id>
    INFO[0140] Resource: EcrDkrVPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce_id>
    INFO[0140] Resource: ElasticIP1, Type: AWS::EC2::EIP, ID: <IP>
    INFO[0140] Resource: ElasticIP2, Type: AWS::EC2::EIP, ID: <IP>
    INFO[0140] Resource: InternetGateway, Type: AWS::EC2::InternetGateway, ID: igw-016e1a71b9812464e
    INFO[0140] Resource: KMSVPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce_id>
    INFO[0140] Resource: NATGateway1, Type: AWS::EC2::NatGateway, ID: <nat-gateway_id>
    INFO[0140] Resource: PrivateRoute, Type: AWS::EC2::Route, ID: <route_id>
    INFO[0140] Resource: PrivateRouteTable, Type: AWS::EC2::RouteTable, ID: <route_id>
    INFO[0140] Resource: PrivateSubnetRouteTableAssociation1, Type: AWS::EC2::SubnetRouteTableAssociation, ID: <route_id>
    INFO[0140] Resource: PublicRoute, Type: AWS::EC2::Route, ID: <route_id>
    INFO[0140] Resource: PublicRouteTable, Type: AWS::EC2::RouteTable, ID: <route_id>
    INFO[0140] Resource: PublicSubnetRouteTableAssociation1, Type: AWS::EC2::SubnetRouteTableAssociation, ID: <route_id>
    INFO[0140] Resource: S3VPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce_id>
    INFO[0140] Resource: STSVPCEndpoint, Type: AWS::EC2::VPCEndpoint, ID: <vpce_id>
    INFO[0140] Resource: SecurityGroup, Type: AWS::EC2::SecurityGroup, ID: <security-group_id>
    INFO[0140] Resource: SubnetPrivate1, Type: AWS::EC2::Subnet, ID: <private_subnet_id-1> \ 
    1
    
    INFO[0140] Resource: SubnetPublic1, Type: AWS::EC2::Subnet, ID: <public_subnet_id-1> \ 
    2
    
    INFO[0140] Resource: VPC, Type: AWS::EC2::VPC, ID: <vpc_id>
    INFO[0140] Stack rosa-network-stack-5555 created \ 
    3
    Copy to Clipboard Toggle word wrap
    1 2
    これら 2 つのサブネット ID は、rosa create cluster コマンドの使用時にクラスターを作成するために使用されます。
    3
    ネットワークスタック名は、後でリソースを削除するために使用されます。
サブネットへのタグ付け

VPC を使用して Red Hat OpenShift Service on AWS クラスターを作成する前に、VPC サブネットにタグを付ける必要があります。自動化されたサービス事前チェックにより、これらのリソースが正しくタグ付けされているかどうかが検証されます。次の表は、リソースにタグを付ける方法を示しています。

Expand
リソースキー

パブリックサブネット

kubernetes.io/role/elb

1 または値なし

プライベートサブネット

kubernetes.io/role/internal-elb

1 または値なし

注記

該当する場合は、少なくとも 1 つのプライベートサブネットと 1 つのパブリックサブネットにタグを付ける必要があります。

  1. ターミナルでリソースにタグを付けます。

    1. パブリックサブネットの場合は、次のコマンドを実行します。

      $ aws ec2 create-tags --resources <public_subnet_id> --region <aws_region> --tags Key=kubernetes.io/role/elb,Value=1
      Copy to Clipboard Toggle word wrap
    2. プライベートサブネットの場合は、次のコマンドを実行します。

      $ aws ec2 create-tags --resources <private_subnet_id> --region <aws_region> --tags Key=kubernetes.io/role/internal-elb,Value=1
      Copy to Clipboard Toggle word wrap

検証

  • 次のコマンドを実行して、タグが正しいことを確認します。

    $ aws ec2 describe-tags --filters "Name=resource-id,Values=<subnet_id>"
    Copy to Clipboard Toggle word wrap

    出力例

    TAGS    Name                    <subnet_id>        subnet  <prefix>-subnet-public1-us-east-1a
    TAGS    kubernetes.io/role/elb  <subnet_id>        subnet  1
    Copy to Clipboard Toggle word wrap

7.2.2. Terraform を使用した Virtual Private Cloud の作成

Terraform は、確立されたテンプレートを使用してさまざまなリソースを作成できるツールです。次のプロセスでは、必要に応じてデフォルトのオプションを使用して Red Hat OpenShift Service on AWS クラスターを作成します。Terraform の使用の詳細は、関連情報を参照してください。

注記

Terraform の手順はテストとデモンストレーションを目的としています。独自のインストールでは、独自に使用するために VPC にいくつかの変更を加える必要があります。また、この Terraform スクリプトを使用する場合は、クラスターをインストールする予定のリージョンと同じリージョン内にスクリプトがあることを確認してください。この例では、us-east-2 を使用します。

前提条件

  • マシンに Terraform バージョン 1.4.0 以降がインストールされている。
  • マシンに Git がインストールされている。

手順

  1. シェルプロンプトを開き、次のコマンドを実行して Terraform VPC リポジトリーのクローンを作成します。

    $ git clone https://github.com/openshift-cs/terraform-vpc-example
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを実行して、作成したディレクトリーに移動します。

    $ cd terraform-vpc-example/zero-egress
    Copy to Clipboard Toggle word wrap
  3. 次のコマンドを実行して、Terraform ファイルを開始します。

    $ terraform init
    Copy to Clipboard Toggle word wrap

    このプロセスが完了すると、初期化を確認するメッセージが表示されます。

  4. 既存の Terraform テンプレートに基づいて VPC Terraform プランを構築するには、plan コマンドを実行します。AWS リージョン、アベイラビリティーゾーン、CIDR ブロック、プライベートサブネットを含める必要があります。クラスター名を指定することもできます。terraform plan が完了すると、rosa-zero-egress.tfplan ファイルが hypershift-tf ディレクトリーに追加されます。オプションの詳細は、Terraform VPC リポジトリーの README ファイル を参照してください。

    $ terraform plan -out rosa-zero-egress.tfplan -var region=<aws_region> \ 
    1
    
          -var 'availability_zones=["aws_region_1a","aws_region_1b","aws_region_1c"]'\ 
    2
    
          -var vpc_cidr_block=10.0.0.0/16 \ 
    3
    
          -var 'private_subnets=["10.0.0.0/24", "10.0.1.0/24", "10.0.2.0/24"]' 
    4
    Copy to Clipboard Toggle word wrap
    1
    AWS リージョンを入力します。
    2
    VPC のアベイラビリティーゾーンを入力します。たとえば、ap-southeast-1 を使用する VPC の場合、アベイラビリティーゾーンとして ["ap-southeast-1a", "ap-southeast-1b", "ap-southeast-1c"] を使用します。
    3
    VPC の CIDR ブロックを入力します。
    4
    VPC 用に作成する各サブネットを入力します。
  5. 次のコマンドを実行して、このプランファイルを適用して VPC を構築します。

    $ terraform apply rosa-zero-egress.tfplan
    Copy to Clipboard Toggle word wrap
サブネットへのタグ付け

VPC を使用して Red Hat OpenShift Service on AWS クラスターを作成する前に、VPC サブネットにタグを付ける必要があります。自動化されたサービス事前チェックにより、これらのリソースが正しくタグ付けされているかどうかが検証されます。次の表は、リソースにタグを付ける方法を示しています。

Expand
リソースキー

パブリックサブネット

kubernetes.io/role/elb

1 または値なし

プライベートサブネット

kubernetes.io/role/internal-elb

1 または値なし

注記

該当する場合は、少なくとも 1 つのプライベートサブネットと 1 つのパブリックサブネットにタグを付ける必要があります。

  1. ターミナルでリソースにタグを付けます。

    1. パブリックサブネットの場合は、次のコマンドを実行します。

      $ aws ec2 create-tags --resources <public_subnet_id> --region <aws_region> --tags Key=kubernetes.io/role/elb,Value=1
      Copy to Clipboard Toggle word wrap
    2. プライベートサブネットの場合は、次のコマンドを実行します。

      $ aws ec2 create-tags --resources <private_subnet_id> --region <aws_region> --tags Key=kubernetes.io/role/internal-elb,Value=1
      Copy to Clipboard Toggle word wrap

検証

  • 次のコマンドを実行して、タグが正しいことを確認します。

    $ aws ec2 describe-tags --filters "Name=resource-id,Values=<subnet_id>"
    Copy to Clipboard Toggle word wrap

    出力例

    TAGS    Name                    <subnet_id>        subnet  <prefix>-subnet-public1-us-east-1a
    TAGS    kubernetes.io/role/elb  <subnet_id>        subnet  1
    Copy to Clipboard Toggle word wrap

7.2.3. AWS CLI を使用した VPC の作成

AWS CLI を使用して VPC を作成できます。この CLI の使用方法は、AWS create-vpc のドキュメント を参照してください。

7.2.4. AWS Virtual Private Cloud の手動作成

Terraform を使用する代わりに、AWS Virtual Private Cloud (VPC) を手動で作成することを選択した場合は、AWS コンソールの VPC ページ に移動します。

VPC は、次の表に示す要件を満たしている必要があります。

Expand
表7.3 VPC の要件
要件詳細

VPC 名

クラスターを作成するときは、特定の VPC 名と ID が必要です。

CIDR 範囲

VPC CIDR 範囲はマシンの CIDR と一致する必要があります。

アベイラビリティーゾーン

単一ゾーンの場合は 1 つの可用性ゾーンが必要で、複数ゾーンの場合は 3 つの可用性ゾーンが必要です。

パブリックサブネット

パブリッククラスターには、NAT ゲートウェイを備えたパブリックサブネットが 1 つ必要です。プライベートクラスターにはパブリックサブネットは必要ありません。

DNS ホスト名と解決

DNS ホスト名と解決が有効になっていることを確認する必要があります。

サブネットへのタグ付け

VPC を使用して Red Hat OpenShift Service on AWS クラスターを作成する前に、VPC サブネットにタグを付ける必要があります。自動化されたサービス事前チェックにより、これらのリソースが正しくタグ付けされているかどうかが検証されます。次の表は、リソースにタグを付ける方法を示しています。

Expand
リソースキー

パブリックサブネット

kubernetes.io/role/elb

1 または値なし

プライベートサブネット

kubernetes.io/role/internal-elb

1 または値なし

注記

該当する場合は、少なくとも 1 つのプライベートサブネットと 1 つのパブリックサブネットにタグを付ける必要があります。

  1. ターミナルでリソースにタグを付けます。

    1. パブリックサブネットの場合は、次のコマンドを実行します。

      $ aws ec2 create-tags --resources <public_subnet_id> --region <aws_region> --tags Key=kubernetes.io/role/elb,Value=1
      Copy to Clipboard Toggle word wrap
    2. プライベートサブネットの場合は、次のコマンドを実行します。

      $ aws ec2 create-tags --resources <private_subnet_id> --region <aws_region> --tags Key=kubernetes.io/role/internal-elb,Value=1
      Copy to Clipboard Toggle word wrap

検証

  • 次のコマンドを実行して、タグが正しいことを確認します。

    $ aws ec2 describe-tags --filters "Name=resource-id,Values=<subnet_id>"
    Copy to Clipboard Toggle word wrap

    出力例

    TAGS    Name                    <subnet_id>        subnet  <prefix>-subnet-public1-us-east-1a
    TAGS    kubernetes.io/role/elb  <subnet_id>        subnet  1
    Copy to Clipboard Toggle word wrap

7.2.5. トラブルシューティング

クラスターのインストールに失敗した場合は、次の一般的な問題のトラブルシューティングを実行してください。

  • DHCP オプションセット にドメイン名が含まれていることを確認し、ドメイン名にスペースや大文字が含まれていないことを確認します。
  • VPC でカスタム DNS リゾルバーが使用されている場合 (DHCP オプションセットの ドメインネームサーバー フィールドが AmazonProvideDNS ではない)、Route53 で設定されているプライベートホストゾーンを適切に解決できることを確認します。

Red Hat OpenShift Service on AWS クラスターのインストールのトラブルシューティングの詳細は、Red Hat OpenShift Service on AWS クラスターのインストールのトラブルシューティングを 参照してください。

サポートの利用

追加の サポート が必要な場合は、Red Hat カスタマーポータルにアクセスして、ナレッジベースの記事の確認、サポートケースの作成、追加の製品ドキュメントおよびリソースの確認を行ってください。

7.3. アカウント全体の STS ロールおよびポリシーの作成

Red Hat OpenShift Service on AWS クラスターを作成する前に、必要なアカウント全体のロールとポリシーを作成する必要があります。

注記

Red Hat OpenShift Service on AWS の特定の AWS 管理ポリシーを各ロールに添付する必要があります。これらの必要なアカウントロールには、顧客管理のポリシーを使用しないでください。Red Hat OpenShift Service on AWS クラスターの AWS 管理ポリシーの詳細は、ROSA の AWS 管理ポリシーを 参照してください。

前提条件

  • Red Hat OpenShift Service on AWS の AWS 前提条件を完了している。
  • 利用可能な AWS サービスクォータがある。
  • AWS コンソールで Red Hat OpenShift Service on AWS を有効にしました。
  • インストールホストに最新の ROSA CLI (rosa) をインストールして設定した。
  • ROSA CLI を使用して Red Hat アカウントにログインしている。

手順

  1. AWS アカウントに存在しない場合は、次のコマンドを実行して、必要なアカウント全体の STS ロールを作成し、ポリシーをアタッチします。

    $ rosa create account-roles --hosted-cp
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを実行して、ワーカーロールに正しい AWS ポリシーがあることを確認します。

    $ aws iam attach-role-policy \
    --role-name ManagedOpenShift-HCP-ROSA-Worker-Role \ 
    1
    
    --policy-arn "arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"
    Copy to Clipboard Toggle word wrap
    1
    このロールに、前のステップで作成された接頭辞が含まれている必要があります。
  3. オプション: 次のコマンドを実行して、接頭辞を環境変数として設定します。

    $ export ACCOUNT_ROLES_PREFIX=<account_role_prefix>
    Copy to Clipboard Toggle word wrap
    • 次のコマンドを実行して、変数の値を表示します。

      $ echo $ACCOUNT_ROLES_PREFIX
      Copy to Clipboard Toggle word wrap

      出力例

      ManagedOpenShift
      Copy to Clipboard Toggle word wrap

Red Hat OpenShift Service on AWS の AWS 管理 IAM ポリシーの詳細は、ROSA の AWS 管理 IAM ポリシー を参照してください。

7.4. OpenID Connect 設定の作成

Red Hat OpenShift Service on AWS クラスターを作成するときに、クラスターを作成する前に OpenID Connect (OIDC) 設定を作成できます。この設定は、OpenShift Cluster Manager で使用するために登録されています。

前提条件

  • Red Hat OpenShift Service on AWS の AWS 前提条件を完了している。
  • インストールホストに最新の ROSA CLI rosa をインストールして設定した。

手順

  1. AWS リソースと一緒に OIDC 設定を作成するには、次のコマンドを実行します。

    $ rosa create oidc-config --mode=auto --yes
    Copy to Clipboard Toggle word wrap

    このコマンドは次の情報を返します。

    出力例

    ? Would you like to create a Managed (Red Hat hosted) OIDC Configuration Yes
    I: Setting up managed OIDC configuration
    I: To create Operator Roles for this OIDC Configuration, run the following command and remember to replace <user-defined> with a prefix of your choice:
    	rosa create operator-roles --prefix <user-defined> --oidc-config-id 13cdr6b
    If you are going to create a Hosted Control Plane cluster please include '--hosted-cp'
    I: Creating OIDC provider using 'arn:aws:iam::4540112244:user/userName'
    ? Create the OIDC provider? Yes
    I: Created OIDC provider with ARN 'arn:aws:iam::4540112244:oidc-provider/dvbwgdztaeq9o.cloudfront.net/13cdr6b'
    Copy to Clipboard Toggle word wrap

    クラスターを作成するときは、OIDC 設定 ID を指定する必要があります。CLI 出力では、--mode auto のこの値が提供されます。それ以外の場合は、--mode manualaws CLI 出力に基づいてこれらの値を決定する必要があります。

  2. オプション: OIDC 設定 ID を変数として保存して、後で使用できます。次のコマンドを実行して変数を保存します。

    $ export OIDC_ID=<oidc_config_id>
    1
    Copy to Clipboard Toggle word wrap
    1
    上記の出力例では、OIDC 設定 ID は 13cdr6b です。
    • 次のコマンドを実行して、変数の値を表示します。

      $ echo $OIDC_ID
      Copy to Clipboard Toggle word wrap

      出力例

      13cdr6b
      Copy to Clipboard Toggle word wrap

検証

  • ユーザー組織に関連付けられているクラスターで使用できる可能な OIDC 設定をリストできます。以下のコマンドを実行します。

    $ rosa list oidc-config
    Copy to Clipboard Toggle word wrap

    出力例

    ID                                MANAGED  ISSUER URL                                                             SECRET ARN
    2330dbs0n8m3chkkr25gkkcd8pnj3lk2  true     https://dvbwgdztaeq9o.cloudfront.net/2330dbs0n8m3chkkr25gkkcd8pnj3lk2
    233hvnrjoqu14jltk6lhbhf2tj11f8un  false    https://oidc-r7u1.s3.us-east-1.amazonaws.com                           aws:secretsmanager:us-east-1:242819244:secret:rosa-private-key-oidc-r7u1-tM3MDN
    Copy to Clipboard Toggle word wrap

7.5. Operator のロールとポリシーの作成

Red Hat OpenShift Service on AWS クラスターをデプロイするときは、Operator IAM ロールを作成する必要があります。クラスター Operator は、Operator のロールとポリシーを使用して、バックエンドストレージの管理やクラスターへの外部アクセスなどのクラスター操作を実行するために必要な一時的な権限を取得します。

前提条件

  • Red Hat OpenShift Service on AWS の AWS 前提条件を完了している。
  • インストールホストに最新の ROSA CLI (rosa) をインストールして設定した。
  • アカウント全体の AWS ロールを作成した。

手順

  1. Operator ロールを作成するには、次のコマンドを実行します。

    $ rosa create operator-roles --hosted-cp --prefix=$OPERATOR_ROLES_PREFIX --oidc-config-id=$OIDC_ID --installer-role-arn arn:aws:iam::$AWS_ACCOUNT_ID:role/${ACCOUNT_ROLES_PREFIX}-HCP-ROSA-Installer-Role
    Copy to Clipboard Toggle word wrap

    次の内訳は、Operator ロール作成のオプションを示しています。

    $ rosa create operator-roles --hosted-cp
    	--prefix=$OPERATOR_ROLES_PREFIX 
    1
    
    	--oidc-config-id=$OIDC_ID 
    2
    
    	--installer-role-arn arn:aws:iam::$AWS_ACCOUNT_ID:role/$ACCOUNT_ROLES_PREFIX-HCP-ROSA-Installer-Role 
    3
    Copy to Clipboard Toggle word wrap
    1
    これらの Operator ロールを作成するときは、接頭辞を指定する必要があります。そうしないとエラーが発生します。演算子接頭辞は、このセクションの関連情報を参照してください。
    2
    この値は、Red Hat OpenShift Service on AWS クラスター用に作成した OIDC 設定 ID です。
    3
    この値は、Red Hat OpenShift Service on AWS アカウントロールを作成したときに作成したインストーラーロール ARN です。

    Red Hat OpenShift Service on AWS クラスターに正しいロールを作成するには、--hosted-cp パラメーターを含める必要があります。このコマンドは次の情報を返します。

    出力例

    ? Role creation mode: auto
    ? Operator roles prefix: <pre-filled_prefix> 
    1
    
    ? OIDC Configuration ID: 23soa2bgvpek9kmes9s7os0a39i13qm4 | https://dvbwgdztaeq9o.cloudfront.net/23soa2bgvpek9kmes9s7os0a39i13qm4 
    2
    
    ? Create hosted control plane operator roles: Yes
    W: More than one Installer role found
    ? Installer role ARN: arn:aws:iam::4540112244:role/<prefix>-HCP-ROSA-Installer-Role
    ? Permissions boundary ARN (optional):
    I: Reusable OIDC Configuration detected. Validating trusted relationships to operator roles:
    I: Creating roles using 'arn:aws:iam::4540112244:user/<userName>'
    I: Created role '<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials'
    I: Created role '<prefix>-openshift-cloud-network-config-controller-cloud-credenti' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-cloud-network-config-controller-cloud-credenti'
    I: Created role '<prefix>-kube-system-kube-controller-manager' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-kube-controller-manager'
    I: Created role '<prefix>-kube-system-capa-controller-manager' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-capa-controller-manager'
    I: Created role '<prefix>-kube-system-control-plane-operator' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-control-plane-operator'
    I: Created role '<prefix>-kube-system-kms-provider' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-kms-provider'
    I: Created role '<prefix>-openshift-image-registry-installer-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-image-registry-installer-cloud-credentials'
    I: Created role '<prefix>-openshift-ingress-operator-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-ingress-operator-cloud-credentials'
    I: To create a cluster with these roles, run the following command:
    	rosa create cluster --sts --oidc-config-id 23soa2bgvpek9kmes9s7os0a39i13qm4 --operator-roles-prefix <prefix> --hosted-cp
    Copy to Clipboard Toggle word wrap

    1
    このフィールドには、最初の作成コマンドで設定した接頭辞が事前に入力されます。
    2
    このフィールドでは、Red Hat OpenShift Service on AWS クラスター用に作成した OIDC 設定を選択する必要があります。

    Operator ロールが作成され、Red Hat OpenShift Service on AWS クラスターの作成に使用する準備が整いました。

検証

  • Red Hat OpenShift Service on AWS に関連付けられている Operator ロールをリスト表示できます。以下のコマンドを実行します。

    $ rosa list operator-roles
    Copy to Clipboard Toggle word wrap

    出力例

    I: Fetching operator roles
    ROLE PREFIX  AMOUNT IN BUNDLE
    <prefix>      8
    ? Would you like to detail a specific prefix Yes 
    1
    
    ? Operator Role Prefix: <prefix>
    ROLE NAME                                                         ROLE ARN                                                                                         VERSION  MANAGED
    <prefix>-kube-system-capa-controller-manager                       arn:aws:iam::4540112244:role/<prefix>-kube-system-capa-controller-manager                       4.13     No
    <prefix>-kube-system-control-plane-operator                        arn:aws:iam::4540112244:role/<prefix>-kube-system-control-plane-operator                        4.13     No
    <prefix>-kube-system-kms-provider                                  arn:aws:iam::4540112244:role/<prefix>-kube-system-kms-provider                                  4.13     No
    <prefix>-kube-system-kube-controller-manager                       arn:aws:iam::4540112244:role/<prefix>-kube-system-kube-controller-manager                       4.13     No
    <prefix>-openshift-cloud-network-config-controller-cloud-credenti  arn:aws:iam::4540112244:role/<prefix>-openshift-cloud-network-config-controller-cloud-credenti  4.13     No
    <prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials       arn:aws:iam::4540112244:role/<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials       4.13     No
    <prefix>-openshift-image-registry-installer-cloud-credentials      arn:aws:iam::4540112244:role/<prefix>-openshift-image-registry-installer-cloud-credentials      4.13     No
    <prefix>-openshift-ingress-operator-cloud-credentials              arn:aws:iam::4540112244:role/<prefix>-openshift-ingress-operator-cloud-credentials              4.13     No
    Copy to Clipboard Toggle word wrap

    1
    コマンドを実行すると、AWS アカウントに関連付けられているすべての接頭辞が表示され、この接頭辞に関連付けられているロールの数が記録されます。これらのロールとその詳細をすべて表示する必要がある場合は、詳細プロンプトで "Yes" と入力すると、これらのロールが詳細とともにリストされます。

7.6. CLI を使用して Egress ゼロの Red Hat OpenShift Service on AWS クラスターを作成する

ROSA CLI (rosa) を使用してクラスターを作成する場合、デフォルトのオプションを選択してクラスターをすばやく作成できます。

前提条件

  • Red Hat OpenShift Service on AWS の AWS 前提条件を完了している。
  • 利用可能な AWS サービスクォータがある。
  • AWS コンソールで Red Hat OpenShift Service on AWS を有効にしました。
  • インストールホストに最新の ROSA CLI (rosa) をインストールして設定した。現在インストールされている ROSA CLI のバージョンを確認するには、rosa version を実行します。新しいバージョンが利用可能な場合、CLI はこのアップグレードをダウンロードするためのリンクを提供します。
  • ROSA CLI を使用して Red Hat アカウントにログインしている。
  • OIDC 設定を作成した。
  • AWS Elastic Load Balancing (ELB) サービスロールが AWS アカウントに存在することを確認した。

手順

  1. Red Hat OpenShift Service on AWS クラスターを作成するには、次のいずれかのコマンドを使用します。

    注記

    Red Hat OpenShift Service on AWS クラスターを作成する場合、デフォルトのマシン Classless Inter-Domain Routing (CIDR) は 10.0.0.0/16 です。これが VPC サブネットの CIDR 範囲に対応していない場合は、次のコマンドに --machine-cidr <address_block> を追加します。Red Hat OpenShift Service on AWS のデフォルト CIDR 範囲の詳細は、「CIDR 範囲の定義」を参照してください。

    • 環境変数を設定していない場合は、次のコマンドを実行します。

      $ rosa create cluster --cluster-name=<cluster_name> \ 
      1
      
           --mode=auto --hosted-cp [--private] \
           --operator-roles-prefix <operator-role-prefix> \ 
      2
      
           --oidc-config-id <id-of-oidc-configuration> \
           --subnet-ids=<private-subnet-id> --region <region> \
           --machine-cidr 10.0.0.0/16 --service-cidr 172.30.0.0/16 \
           --pod-cidr 10.128.0.0/14 --host-prefix 23 \
           --billing-account <root-acct-id> \ 
      3
      
           --properties zero_egress:true
      Copy to Clipboard Toggle word wrap
      1
      クラスターの名前を指定します。クラスター名が 15 文字を超える場合、openshiftapps.com でプロビジョニングされたクラスターのサブドメインとして自動生成されたドメイン接頭辞が含まれます。サブドメインをカスタマイズするには、--domain-prefix フラグを使用します。ドメイン接頭辞は 15 文字を超えてはならず、一意である必要があり、クラスターの作成後に変更できません。
      2
      デフォルトでは、クラスター固有の Operator のロール名には、クラスター名とランダムな 4 桁のハッシュが接頭辞として付けられます。オプションで、ロール名の <cluster_name>-<hash> を置き換えるカスタム接頭辞を指定できます。接頭辞は、クラスター固有の Operator IAM ロールを作成するときに適用されます。接頭辞の詳細は、カスタム Operator IAM ロール接頭辞について を参照してください。
      注記

      関連するアカウント全体のロールを作成したときにカスタム ARN パスを指定した場合、カスタムパスは自動的に検出されます。カスタムパスは、後のステップで作成するときに、クラスター固有の Operator ロールに適用されます。

      3
      請求先アカウントがユーザーアカウントと異なる場合は、この引数を追加して、すべての請求を負担する AWS アカウントを指定します。
    • 環境変数を設定する場合、単一の初期マシンプールを持ち、プライベートに利用可能な API および Ingress を使用する Egress ゼロのクラスターを作成するには、次のコマンドを実行します。

      $ rosa create cluster --private --cluster-name=$CLUSTER_NAME \
          --mode=auto --hosted-cp --operator-roles-prefix=$OPERATOR_ROLES_PREFIX \
          --oidc-config-id=$OIDC_ID --subnet-ids=$SUBNET_IDS \
          --region $REGION --machine-cidr 10.0.0.0/16 --service-cidr 172.30.0.0/16 \
          --pod-cidr 10.128.0.0/14 --host-prefix 23 \
          --private --properties zero_egress:true
      Copy to Clipboard Toggle word wrap
  2. 次のコマンドを実行して、クラスターのステータスを確認します。

    $ rosa describe cluster --cluster=<cluster_name>
    Copy to Clipboard Toggle word wrap

    クラスターのインストールが進むにつれて、State フィールドが次のように変わり、出力に表示されます。

    • pending (Preparing account)
    • installing (DNS setup in progress)
    • installing
    • ready

      注記

      インストールが失敗した場合や、State フィールドが 10 分以上 ready に変わらない場合は、インストールのトラブルシューティングのドキュメントで詳細を確認してください。詳細は、インストールのトラブルシューティング を参照してください。Red Hat サポートにサポートを依頼する手順は、Red Hat OpenShift Service on AWS のサポートの利用 を参照してください。

  3. Red Hat OpenShift Service on AWS インストールプログラムのログを監視して、クラスターの作成の進行状況を追跡します。ログを確認するには、次のコマンドを実行します。

    $ rosa logs install --cluster=<cluster_name> --watch \ 
    1
    Copy to Clipboard Toggle word wrap
    1
    オプション: インストールの進行中に新しいログメッセージを監視するには、--watch 引数を使用します。

組み込みの OpenShift OAuth サーバーの代わりに、外部の OpenID Connect (OIDC) アイデンティティープロバイダーを使用して認証用のトークンを発行する Red Hat OpenShift Service on AWS クラスターを作成できます。組み込みの OpenShift OAuth サーバーは、外部 OIDC アイデンティティープロバイダーを含むさまざまなアイデンティティープロバイダーとの統合をサポートしていますが、OAuth サーバー自体の機能に制限されています。CLI などのマシン間ワークフローを容易にし、組み込みの OpenShift OAuth サーバーを使用するときには利用できない追加機能を提供するために、外部の OIDC アイデンティティープロバイダーを Red Hat OpenShift Service on AWS クラスターに直接統合できます。

重要

既存の Red Hat OpenShift Service on AWS (クラシックアーキテクチャー) クラスターを Hosted Control Plane アーキテクチャーにアップグレードまたは変換することはできないため、Red Hat OpenShift Service on AWS 機能を使用するには新しいクラスターを作成する必要があります。また、外部認証プロバイダーを使用するように作成されたクラスターを、内部 OAuth2 サーバーを使用するように変換することもできません。新しいクラスターも作成する必要があります。

注記

Red Hat OpenShift Service on AWS クラスターは、セキュリティートークンサービス (STS) 認証のみをサポートします。

関連資料

関連情報

サポートされている証明書の完全なリストは、「Red Hat OpenShift Service on AWS のプロセスとセキュリティーについて」の コンプライアンス セクションを参照してください。

8.1. Red Hat OpenShift Service on AWS の前提条件

Red Hat OpenShift Service on AWS クラスターを作成するには、次の手順を完了する必要があります。

外部認証サービスを使用するクラスターを作成するには、ROSA CLI で --external-auth-providers-enabled フラグを使用します。

注記

Red Hat OpenShift Service on AWS クラスターを作成する場合、デフォルトのマシン Classless Inter-Domain Routing (CIDR) は 10.0.0.0/16 です。これが VPC サブネットの CIDR 範囲に対応していない場合は、次のコマンドに --machine-cidr <address_block> を追加します。

手順

  • OIDC_IDSUBNET_IDS、および OPERATOR_ROLES_PREFIX 変数を使用して環境を準備した場合は、これらの変数をクラスターの作成時にも引き続き使用できます。たとえば、以下のコマンドを実行します。

    $ rosa create cluster --hosted-cp --subnet-ids=$SUBNET_IDS \
       --oidc-config-id=$OIDC_ID --cluster-name=<cluster_name> \
       --operator-roles-prefix=$OPERATOR_ROLES_PREFIX \
       --external-auth-providers-enabled
    Copy to Clipboard Toggle word wrap
  • 環境変数を設定していない場合は、以下のコマンドを実行します。

    $ rosa create cluster --cluster-name=<cluster_name> --sts --mode=auto \
        --hosted-cp --operator-roles-prefix <operator-role-prefix> \
        --oidc-config-id <ID-of-OIDC-configuration> \
        --external-auth-providers-enabled \
        --subnet-ids=<public-subnet-id>,<private-subnet-id>
    Copy to Clipboard Toggle word wrap

検証

  • 次のコマンドを実行して、クラスターの詳細で外部認証が有効になっていることを確認します。

    $ rosa describe cluster --cluster=<cluster_name>
    Copy to Clipboard Toggle word wrap
    Name:                       rosa-ext-test
    Display Name:               rosa-ext-test
    ID:                         <cluster_id>
    External ID:                <cluster_ext_id>
    Control Plane:              ROSA Service Hosted
    OpenShift Version:          4.19.0
    Channel Group:              stable
    DNS:                        <dns>
    AWS Account:                <AWS_id>
    AWS Billing Account:        <AWS_id>
    API URL:                    <ocm_api>
    Console URL:
    Region:                     us-east-1
    Availability:
     - Control Plane:           MultiAZ
     - Data Plane:              SingleAZ
    
    Nodes:
     - Compute (desired):       2
     - Compute (current):       0
    Network:
     - Type:                    OVNKubernetes
     - Service CIDR:            <service_cidr>
     - Machine CIDR:            <machine_cidr>
     - Pod CIDR:                <pod_cidr>
     - Host Prefix:             /23
     - Subnets:                 <subnet_ids>
    EC2 Metadata Http Tokens:   optional
    Role (STS) ARN:             arn:aws:iam::<AWS_id>:role/<account_roles_prefix>-HCP-ROSA-Installer-Role
    Support Role ARN:           arn:aws:iam::<AWS_id>:role/<account_roles_prefix>-HCP-ROSA-Support-Role
    Instance IAM Roles:
     - Worker:                  arn:aws:iam::<AWS_id>:role/<account_roles_prefix>-HCP-ROSA-Worker-Role
    Operator IAM Roles:
     - arn:aws:iam::<AWS_id>:role/<operator_roles_prefix>-openshift-cloud-network-config-controller-clo
     - arn:aws:iam::<AWS_id>:role/<operator_roles_prefix>-kube-system-capa-controller-manager
     - arn:aws:iam::<AWS_id>:role/<operator_roles_prefix>-kube-system-control-plane-operator
     - arn:aws:iam::<AWS_id>:role/<operator_roles_prefix>-kube-system-kms-provider
     - arn:aws:iam::<AWS_id>:role/<operator_roles_prefix>-kube-system-kube-controller-manager
     - arn:aws:iam::<AWS_id>:role/<operator_roles_prefix>-openshift-image-registry-installer-cloud-cred
     - arn:aws:iam::<AWS_id>:role/<operator_roles_prefix>-openshift-ingress-operator-cloud-credentials
     - arn:aws:iam::<AWS_id>:role/<operator_roles_prefix>-openshift-cluster-csi-drivers-ebs-cloud-crede
    Managed Policies:           Yes
    State:                      ready
    Private:                    No
    Created:                    Mar 29 2024 14:25:52 UTC
    User Workload Monitoring:   Enabled
    Details Page:               https://<url>
    OIDC Endpoint URL:          https://<endpoint> (Managed)
    Audit Log Forwarding:       Disabled
    External Authentication:    Enabled 
    1
    Copy to Clipboard Toggle word wrap
    1
    External Authentication フラグが有効になり、外部認証プロバイダーを作成できるようになりました。

8.3. 外部認証プロバイダーの作成

外部認証プロバイダーのオプションを有効にして Red Hat OpenShift Service on AWS クラスターを作成した後、ROSA CLI を使用してプロバイダーを作成する必要があります。

注記

ROSA CLI の rosa create|delete|list idp[s] コマンドと同様に、rosa create external-auth-provider を使用して作成した既存のアイデンティティープロバイダーを編集できません。代わりに、外部認証プロバイダーを削除して、新しい認証プロバイダーを作成する必要があります。

次の表は、外部認証プロバイダーを作成するときに使用できる CLI フラグを示しています。

Expand
CLI フラグ説明

--cluster

クラスターの名前または ID。

--name

外部認証プロバイダーを参照するために使用される名前。

--console-client-secret

この文字列は、アカウントをアプリケーションに関連付けるために使用されるクライアントシークレット。クライアントシークレットを含めない場合、このコマンドはパブリック OIDC OAuthClient を使用します。

--issuer-audiences

これは、トークンオーディエンスのコンマ区切りリストです。

--issuer-url

トークン発行者の URL。

--claim-mapping-username-claim

クラスターアイデンティティーのユーザー名を構築するために使用されるクレームの名前。

--claim-mapping-groups-claim

クラスターアイデンティティーのグループー名を構築するために使用されるクレームの名前。

手順

  • 対話型コマンドラインインターフェイスを使用するには、次のコマンドを実行します。

    入力の例

    $ rosa create external-auth-provider -c <cluster_name>
    Copy to Clipboard Toggle word wrap

    I: Enabling interactive mode
    ? Name: 
    1
    
    ? Issuer audiences: 
    2
    
    ? The serving url of the token issuer: 
    3
    
    ? CA file path (optional): 
    4
    
    ? Claim mapping username: 
    5
    
    ? Claim mapping groups: 
    6
    
    ? Claim validation rule (optional): 
    7
    
    ? Console client id (optional): 
    8
    Copy to Clipboard Toggle word wrap
    1
    外部認証プロバイダーの名前。この名前は、数字とダッシュが含まれる小文字である必要があります。
    2
    この認証プロバイダーがトークンを発行するオーディエンス ID。
    3
    トークンを提供する発行者の URL。
    4
    オプション: リクエストを行うときに使用する証明書ファイル。
    5
    メール の使用など、クラスターアイデンティティーのユーザー名を構築するために使用されるクレームの名前。
    6
    グループ の使用など、ID トークンをクラスターアイデンティティーに変換する方法。
    7
    オプション: ユーザーを認証するトークンクレームを検証するのに役立つルール。このフィールドは、:<required_value> の形式にする必要があります。
    8
    オプション: アプリ登録でコンソールに使用するアプリケーションまたはクライアント ID。
  • 次のコマンドを使用して、外部認証プロバイダーを作成するために必要な ID を含めることができます。

    rosa create external-auth-provider --cluster=<cluster_id> \
        --name=<provider_name> --issuer-url=<issuing_url> \
        --issuer-audiences=<audience_id> \
        --claim-mapping-username-claim=email \
        --claim-mapping-groups-claim=groups \
        --console-client-id=<client_id_for_app_registration> \
        --console-client-secret=<client_secret>
    Copy to Clipboard Toggle word wrap

    出力例

    I: Successfully created an external authentication provider for cluster 'ext-auth-test'
    Copy to Clipboard Toggle word wrap

8.3.1. 外部認証プロバイダーの例

次のいずれかの外部認証プロバイダー設定例を使用して、独自の設定を指定できます。

Microsoft Entra ID の設定例

Microsoft Entra ID を外部プロバイダーとして使用できます。外部プロバイダーとして使用する前に、Microsoft Entra ID サーバーをあらかじめ設定しておく必要があります。詳細は、Microsoft Entra ID のドキュメント を参照してください。

次の例は、設定された Microsoft Entra ID 外部認証プロバイダーを示しています。

手順

  1. 次のコマンドを実行して、Microsoft Entra ID を使用する外部認証プロバイダーを作成します。

    注記

    お使いの Microsoft Entra ID サーバー固有の値を使用して独自の環境変数を設定する必要があります。

    入力の例

    $ rosa create external-auth-provider -c $CLUSTER_NAME \
        --claim-mapping-groups-claim groups \
        --claim-mapping-username-claim <authorized_user_name> \
        --console-client-id $CONSOLE_CLIENT_ID \
        --console-client-secret $CONSOLE_CLIENT_SECRET_VALUE \
        --issuer-audiences "$AUDIENCE_1" \
        --issuer-ca-file ca-bundle.crt --issuer-url $ISSUER_URL \
        --name m-entra-id
    Copy to Clipboard Toggle word wrap

    出力例

    I: Successfully created an external authentication provider for cluster 'ext-auth-test'. It can take a few minutes for the creation of an external authentication provider to become fully effective.
    Copy to Clipboard Toggle word wrap

  2. クラスターの外部認証プロバイダーをリスト表示して発行者 URL を確認するか、rosa describe コマンドを使用して、この外部認証プロバイダーに関連するすべての詳細を確認します。

    1. 次のコマンドを実行して、指定したクラスターの外部認証設定をリスト表示します。

      入力の例

      $ rosa list external-auth-provider -c <cluster_name> \ 
      1
      Copy to Clipboard Toggle word wrap

      1
      表示する外部認証プロバイダーのクラスターの名前を指定します。

      出力例

      NAME        ISSUER URL
      m-entra-id  https://login.microsoftonline.com/<group_id>/v2.0
      Copy to Clipboard Toggle word wrap

    2. 次のコマンドを実行して、指定したクラスターの外部認証設定を表示します。

      入力の例

      $ rosa describe external-auth-provider \
          -c <cluster_name> --name <name_of_external_authentication> \ 
      1
       
      2
      Copy to Clipboard Toggle word wrap

      1
      詳細を表示する外部認証プロバイダーがあるクラスターの名前を指定します。
      2
      詳細を表示する認証プロバイダーの名前を入力します。

      出力例

      ID:                          ms-entra-id
      Cluster ID:                  <cluster_id>
      Issuer audiences:
                                   - <audience_id>
      Issuer Url:                  https://login.microsoftonline.com/<group_id>/v2.0
      Claim mappings group:        groups
      Claim mappings username:     email
      Copy to Clipboard Toggle word wrap

Keycloak の設定例

Keycloak を外部プロバイダーとして使用できます。外部プロバイダーとして使用する前に、Keycloak サーバーをあらかじめ設定しておく必要があります。詳細は、Keycloak のドキュメント を参照してください。

手順

  1. 次のコマンドを実行して、Keycloak を使用する外部認証プロバイダーを作成します。

    注記

    お使いの Keycloak サーバー固有の値を使用して独自の環境変数を設定する必要があります。

    入力の例

    $ rosa create external-auth-provider -c $CLUSTER_NAME \
    --claim-mapping-groups-claim groups \
        --claim-mapping-username-claim <authorized_user_name> \
        --console-client-id $CONSOLE_CLIENT_ID \
        --console-client-secret $CONSOLE_CLIENT_SECRET_VALUE \
        --issuer-audiences "$AUDIENCE_1,$AUDIENCE_2" \
        --issuer-ca-file ca-bundle.crt --issuer-url $ISSUER_URL --name keycloak
    Copy to Clipboard Toggle word wrap

    出力例

    I: Successfully created an external authentication provider for cluster 'ext-auth-test'. It can take a few minutes for the creation of an external authentication provider to become fully effective.
    Copy to Clipboard Toggle word wrap

  2. クラスターの外部認証プロバイダーをリスト表示して発行者 URL を確認するか、rosa describe コマンドを使用して、この外部認証プロバイダーに関連するすべての詳細を確認します。

    1. 次のコマンドを実行して、指定したクラスターの外部認証設定をリスト表示します。

      入力の例

      $ rosa list external-auth-provider -c <cluster_name>
      Copy to Clipboard Toggle word wrap

      出力例

      NAME      ISSUER URL
      keycloak  https://keycloak-keycloak.apps.<keycloak_id>.openshift.org/realms/master
      Copy to Clipboard Toggle word wrap

    2. 次のコマンドを実行して、指定したクラスターの外部認証設定を表示します。

      入力の例

      $ rosa describe external-auth-provider \
          -c <cluster_name> --name <name_of_external_authentication>
      Copy to Clipboard Toggle word wrap

      出力例

      ID:                                    keycloak
      Cluster ID:                            <cluster_id>
      Issuer audiences:
                                             - <audience_id_1>
                                             - <audience_id_2>
      Issuer Url:                            https://keycloak-keycloak.apps.<keycloak_id>.openshift.org/realms/master
      Claim mappings group:                  groups
      Claim mappings username:               <authorized_user_name>
      Console client id:                     console-test
      Copy to Clipboard Toggle word wrap

8.4. Red Hat OpenShift Service on AWS クラスターの Break Glass 認証情報を作成する

Red Hat OpenShift Service on AWS クラスターの所有者は、ブレークグラス認証情報を使用して一時的な管理クライアント認証情報を作成し、カスタム OpenID Connect (OIDC) トークン発行者が設定されたクラスターにアクセスできます。Break Glass 認証情報を作成すると、新しい cluster-admin kubeconfig ファイルが生成されます。kubeconfig ファイルには、CLI がクライアントを正しいクラスターと API サーバーに接続するために使用するクラスターに関する情報が含まれています。新しく生成された kubeconfig ファイルを使用して、Red Hat OpenShift Service on AWS クラスターへのアクセスを許可できます。

前提条件

  • 外部認証を有効にした Red Hat OpenShift Service on AWS クラスターを作成しました。詳細は、外部認証プロバイダーを使用する HCP クラスターを使用した Red Hat OpenShift Service on AWS の作成を 参照してください。
  • 外部認証プロバイダーが作成されている。詳細は、外部認証プロバイダーの作成 を参照してください。
  • cluster admin 権限が割り当てられたアカウントがある。

手順

  1. 次のいずれかのコマンドを使用して、Break Glass 認証情報を作成します。

    • 対話型コマンドインターフェイスを使用してカスタム設定を対話的に指定し、ブレークグラス認証情報を作成するには、次のコマンドを実行します。

      $ rosa create break-glass-credential -c <cluster_name> -i 
      1
      Copy to Clipboard Toggle word wrap
      1
      <cluster_name> は、クラスターの名前に置き換えます。

      このコマンドは、対話型 CLI プロセスを開始します。

      出力例

      I: Enabling interactive mode
      ? Username (optional): 
      1
      
      ? Expiration duration (optional): 
      2
      
      I: Successfully created a break glass credential for cluster 'ac-hcp-test'.
      Copy to Clipboard Toggle word wrap

      1
      空白のままにすると、username の値は無作為に生成されたユーザー名の値になります。
      2
      break glass 認証情報の最小有効期間は 10 分、最大有効期間は 24 時間です。空白のままにすると、有効期限の値はデフォルトで 24 時間になります。
    • 指定された値を使用して、mycluster というクラスターの Break Glass 認証情報を作成するには以下を実行します。

      $ rosa create break-glass-credential -c mycluster --username test-username --expiration 1h
      Copy to Clipboard Toggle word wrap
  2. 次のコマンドを実行して、mycluster というクラスターで使用可能な Break Glass 認証情報 ID、ステータス、および関連ユーザーをリスト表示します。

    $ rosa list break-glass-credential -c mycluster
    Copy to Clipboard Toggle word wrap

    出力例

    ID                                USERNAME    STATUS
    2a7jli9n4phe6c02ul7ti91djtv2o51d  test-user   issued
    Copy to Clipboard Toggle word wrap

    注記

    コマンドに -o json 引数を追加することで、JSON 出力で認証情報を表示することもできます。

  3. break glass 認証情報のステータスを表示するには、<break_glass_credential_id> をブレークグラス認証情報 ID に置き換えて、次のコマンドを実行します。

    $ rosa describe break-glass-credential <break_glass_credential_id> -c <cluster_name>
    Copy to Clipboard Toggle word wrap

    出力例

    ID:                                    2a7jli9n4phe6c02ul7ti91djtv2o51d
    Username:                              test-user
    Expire at:                             Dec 28 2026 10:23:05 EDT
    Status:                                issued
    Copy to Clipboard Toggle word wrap

    Status フィールドで使用可能な値のリストは次のとおりです。

    • issued break glass 認証情報が発行され、使用できる状態になりました。
    • expired ブレークグラス認証情報の有効期限が切れているため、使用できなくなりました。
    • failed ブレークグラス認証情報の作成に失敗しました。この場合、失敗の詳細を示すサービスログが送信されます。サービスログの詳細は、Red Hat OpenShift Service on AWS クラスターのサービスログへのアクセス を参照してください。Red Hat サポートに問い合わせる手順は、サポート を参照してください。
    • awaiting_revocation break glass 認証情報は現在取り消されているため、使用できません。
    • revoked break glass 認証情報は取り消されており、使用できなくなりました。
  4. kubeconfig を取得するには、次のコマンドを実行します。

    • kubeconfigs ディレクトリーを作成します。

      $ mkdir ~/kubeconfigs
      Copy to Clipboard Toggle word wrap
    • 新しく生成された kubeconfig ファイルをエクスポートします。<cluster_name> はクラスターの名前に置き換えます。

      $ export CLUSTER_NAME=<cluster_name> && export KUBECONFIG=~/kubeconfigs/break-glass-${CLUSTER_NAME}.kubeconfig
      Copy to Clipboard Toggle word wrap
    • kubeconfig を表示します。

      $ rosa describe break-glass-credential <break_glass_credential_id> -c mycluster --kubeconfig
      Copy to Clipboard Toggle word wrap

      出力例

      apiVersion: v1
      clusters:
      - cluster:
          server: <server_url>
        name: cluster
      contexts:
      - context:
          cluster: cluster
          namespace: default
          user: test-username
        name: admin
      current-context: admin
      kind: Config
      preferences: {}
      users:
      - name: test-user
        user:
          client-certificate-data: <client-certificate-data> 
      1
      
          client-key-data: <client-key-data> 
      2
      Copy to Clipboard Toggle word wrap

      1
      クライアント証明書には、Kubernetes 証明局 (CA) によって署名されたユーザーの証明書が含まれています。
      2
      client-key には、クライアント証明書に署名したキーが含まれます。
  5. オプション: kubeconfig を保存するには、次のコマンドを実行します。

    $ rosa describe break-glass-credential <break_glass_credential_id> -c mycluster --kubeconfig > $KUBECONFIG
    Copy to Clipboard Toggle word wrap

8.5. ブレークグラス認証情報を使用して Red Hat OpenShift Service on AWS クラスターにアクセスする

ブレークグラス認証情報から新しい kubeconfig を使用して、Red Hat OpenShift Service on AWS クラスターへの一時的な管理者アクセス権を取得します。

前提条件

  • 外部認証が有効になっている Red Hat OpenShift Service on AWS クラスターにアクセスできます。詳細は、外部 OIDC アイデンティティープロバイダーによる直接認証を使用する Red Hat OpenShift Service on AWS クラスターの作成を 参照してください。
  • oc および kubectl CLI がインストールされている。
  • 新しい kubeconfig が設定されている。詳細は、Red Hat OpenShift Service on AWS クラスターの Break Glass 認証情報の作成を 参照してください。

手順

  1. クラスターの詳細にアクセスします。

    $ rosa describe break-glass-credential <break_glass_credential_id> -c <cluster_name>  --kubeconfig > $KUBECONFIG
    Copy to Clipboard Toggle word wrap
  2. クラスターからノードを一覧表示します。

    $ oc get nodes
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                        STATUS   ROLES   AGE   VERSION
    ip-10-0-0-27.ec2.internal   Ready    worker  8m    v1.28.7+f1b5f6c
    ip-10-0-0-67.ec2.internal   Ready    worker  9m    v1.28.7+f1b5f6c
    Copy to Clipboard Toggle word wrap

  3. 適切な認証情報があることを確認します。

    $ kubectl auth whoami
    Copy to Clipboard Toggle word wrap

    出力例

    ATTRIBUTE    VALUE
    Username     system:customer-break-glass:test-user
    Groups       [system:masters system:authenticated]
    Copy to Clipboard Toggle word wrap

  4. 外部 OIDC プロバイダーで定義されたグループに ClusterRoleBinding を適用します。ClusterRoleBinding は、Microsoft Entra ID で作成された rosa-hcp-admins グループを Red Hat OpenShift Service on AWS クラスター内のグループにマップします。

    $ oc apply -f - <<EOF
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: rosa-hcp-admins
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: cluster-admin
    subjects:
    - apiGroup: rbac.authorization.k8s.io
      kind: Group
      name: f715c264-ab90-45d5-8a29-2e91a609a895
    EOF
    Copy to Clipboard Toggle word wrap

    出力例

    clusterrolebinding.rbac.authorization.k8s.io/rosa-hcp-admins created
    Copy to Clipboard Toggle word wrap

    注記

    ClusterRoleBinding が適用されると、Red Hat OpenShift Service on AWS クラスターが設定され、rosa CLI と Red Hat Hybrid Cloud Console が 外部の OpenID Connect (OIDC) プロバイダーを通じて認証されます。ロールの割り当てとクラスターでのアプリケーションのデプロイを開始できるようになりました。

8.6. Red Hat OpenShift Service on AWS クラスターの Break Glass 認証情報の取り消し

revoke break-glass-credentials コマンドを使用すると、プロビジョニングした Break Glass 認証情報へのアクセスをいつでも取り消すことができます。

前提条件

  • break glass 認証情報が作成されている。
  • クラスターの所有者である。

手順

  • 次のコマンドを実行して、Red Hat OpenShift Service on AWS クラスターの Break Glass 認証情報を取り消します。

    重要

    このコマンドを実行すると、クラスターに関連するすべての Break Glass 認証情報へのアクセスが取り消されます。

    $ rosa revoke break-glass-credentials -c <cluster_name> 
    1
    Copy to Clipboard Toggle word wrap
    1
    <cluster_name> は、クラスターの名前に置き換えます。

    出力例

    ? Are you sure you want to revoke all the break glass credentials on cluster 'my-cluster'?: Yes
    I: Successfully requested revocation for all break glass credentials from cluster 'my-cluster'
    Copy to Clipboard Toggle word wrap

検証

  • 失効処理には数分かかる場合があります。次のいずれかのコマンドを実行すると、クラスターの Break Glass 認証情報が取り消されたことを確認できます。

    • すべての Break Glass 認証情報をリスト表示し、それぞれのステータスを確認します。

      $ rosa list break-glass-credential -c <cluster_name>
      Copy to Clipboard Toggle word wrap

      出力例

      ID                                USERNAME    STATUS
      2330dbs0n8m3chkkr25gkkcd8pnj3lk2  test-user   awaiting_revocation
      Copy to Clipboard Toggle word wrap

    • 個々の認証情報をチェックしてステータスを確認することもできます。

      $ rosa describe break-glass-credential <break_glass_credential_id> -c <cluster_name>
      Copy to Clipboard Toggle word wrap

      出力例

      ID:                                    2330dbs0n8m3chkkr25gkkcd8pnj3lk2
      Username:                              test-user
      Expire at:                             Dec 28 2026 10:23:05 EDT
      Status:                                issued
      Revoked at:                            Dec 27 2026 15:30:33 EDT
      Copy to Clipboard Toggle word wrap

8.7. 外部認証プロバイダーの削除

ROSA CLI を使用して外部認証プロバイダーを削除します。

手順

  1. 次のコマンドを実行して、クラスター上の外部認証プロバイダーを表示します。

    $ rosa list external-auth-provider -c <cluster_name>
    Copy to Clipboard Toggle word wrap

    出力例

    NAME        ISSUER URL
    entra-test  https://login.microsoftonline.com/<group_id>/v2.0
    Copy to Clipboard Toggle word wrap

  2. 次のコマンドを実行して、外部認証プロバイダーを削除します。

    $ rosa delete external-auth-provider <name_of_provider> -c <cluster_name>
    Copy to Clipboard Toggle word wrap

    出力例

    ? Are you sure you want to delete external authentication provider entra-test on cluster rosa-ext-test? Yes
    I: Successfully deleted external authentication provider 'entra-test' from cluster 'rosa-ext-test'
    Copy to Clipboard Toggle word wrap

検証

  1. 次のコマンドを実行して、クラスター上の外部認証プロバイダーを照会します。

    $ rosa list external-auth-provider -c <cluster_name>
    Copy to Clipboard Toggle word wrap

    出力例

    E: there are no external authentication providers for this cluster
    Copy to Clipboard Toggle word wrap

第9章 CNI プラグインなしの Red Hat OpenShift Service on AWS クラスター

Red Hat OpenShift Service on AWS クラスターを作成するときに、独自の Container Network Interface (CNI) プラグインを使用できます。CNI なしで Red Hat OpenShift Service on AWS クラスターを作成し、クラスターの作成後に独自の CNI プラグインをインストールすることができます。

重要

独自の CNI を使用する場合、CNI プラグインのサポートの責任は、選択した CNI ベンダーとの連携のもと、お客様が負うことになります。

Red Hat OpenShift Service on AWS のデフォルトプラグインは、OVN-Kubernetes ネットワークプラグインです。このプラグインは、Red Hat OpenShift Service on AWS で Red Hat がサポートする唯一の CNI プラグインです。

Red Hat OpenShift Service on AWS クラスターに独自の CNI を使用することを選択した場合は、クラスターを作成する前にプラグインベンダーから商用サポートを受けることを強く推奨します。Red Hat サポートは、独自の CNI を使用することを選択したお客様に、Pod 間トラフィックなどの CNI 関連の問題に関するサポートを提供できません。CNI 以外のすべての問題は、Red Hat は引き続きサポートを提供します。Red Hat からの CNI 関連のサポートが必要な場合は、デフォルトの OVN-Kubernetes ネットワークプラグインを使用してクラスターをインストールする必要があります。詳細は、責任マトリックス を参照してください。

9.1. CNI プラグインなしで Red Hat OpenShift Service on AWS クラスターを作成する

9.1.1. 前提条件

9.1.2. アカウント全体の STS ロールおよびポリシーの作成

Red Hat OpenShift Service on AWS クラスターを作成する前に、必要なアカウント全体のロールとポリシーを作成する必要があります。

注記

Red Hat OpenShift Service on AWS の特定の AWS 管理ポリシーを各ロールに添付する必要があります。これらの必要なアカウントロールには、顧客管理のポリシーを使用しないでください。Red Hat OpenShift Service on AWS クラスターの AWS 管理ポリシーの詳細は、ROSA の AWS 管理ポリシーを 参照してください。

前提条件

  • Red Hat OpenShift Service on AWS の AWS 前提条件を完了している。
  • 利用可能な AWS サービスクォータがある。
  • AWS コンソールで Red Hat OpenShift Service on AWS を有効にしました。
  • インストールホストに最新の ROSA CLI (rosa) をインストールして設定した。
  • ROSA CLI を使用して Red Hat アカウントにログインしている。

手順

  1. AWS アカウントに存在しない場合は、次のコマンドを実行して、必要なアカウント全体の STS ロールを作成し、ポリシーをアタッチします。

    $ rosa create account-roles --hosted-cp
    Copy to Clipboard Toggle word wrap
  2. オプション: 次のコマンドを実行して、接頭辞を環境変数として設定します。

    $ export ACCOUNT_ROLES_PREFIX=<account_role_prefix>
    Copy to Clipboard Toggle word wrap
    • 次のコマンドを実行して、変数の値を表示します。

      $ echo $ACCOUNT_ROLES_PREFIX
      Copy to Clipboard Toggle word wrap

      出力例

      ManagedOpenShift
      Copy to Clipboard Toggle word wrap

Red Hat OpenShift Service on AWS の AWS 管理 IAM ポリシーの詳細は、ROSA の AWS 管理 IAM ポリシー を参照してください。

9.1.3. OpenID Connect 設定の作成

Red Hat OpenShift Service on AWS クラスターを作成するときに、クラスターを作成する前に OpenID Connect (OIDC) 設定を作成できます。この設定は、OpenShift Cluster Manager で使用するために登録されています。

前提条件

  • Red Hat OpenShift Service on AWS の AWS 前提条件を完了している。
  • インストールホストに最新の ROSA CLI rosa をインストールして設定した。

手順

  1. AWS リソースと一緒に OIDC 設定を作成するには、次のコマンドを実行します。

    $ rosa create oidc-config --mode=auto --yes
    Copy to Clipboard Toggle word wrap

    このコマンドは次の情報を返します。

    出力例

    ? Would you like to create a Managed (Red Hat hosted) OIDC Configuration Yes
    I: Setting up managed OIDC configuration
    I: To create Operator Roles for this OIDC Configuration, run the following command and remember to replace <user-defined> with a prefix of your choice:
    	rosa create operator-roles --prefix <user-defined> --oidc-config-id 13cdr6b
    If you are going to create a Hosted Control Plane cluster please include '--hosted-cp'
    I: Creating OIDC provider using 'arn:aws:iam::4540112244:user/userName'
    ? Create the OIDC provider? Yes
    I: Created OIDC provider with ARN 'arn:aws:iam::4540112244:oidc-provider/dvbwgdztaeq9o.cloudfront.net/13cdr6b'
    Copy to Clipboard Toggle word wrap

    クラスターを作成するときは、OIDC 設定 ID を指定する必要があります。CLI 出力では、--mode auto のこの値が提供されます。それ以外の場合は、--mode manualaws CLI 出力に基づいてこれらの値を決定する必要があります。

  2. オプション: OIDC 設定 ID を変数として保存して、後で使用できます。次のコマンドを実行して変数を保存します。

    $ export OIDC_ID=<oidc_config_id>
    1
    Copy to Clipboard Toggle word wrap
    1
    上記の出力例では、OIDC 設定 ID は 13cdr6b です。
    • 次のコマンドを実行して、変数の値を表示します。

      $ echo $OIDC_ID
      Copy to Clipboard Toggle word wrap

      出力例

      13cdr6b
      Copy to Clipboard Toggle word wrap

検証

  • ユーザー組織に関連付けられているクラスターで使用できる可能な OIDC 設定をリストできます。以下のコマンドを実行します。

    $ rosa list oidc-config
    Copy to Clipboard Toggle word wrap

    出力例

    ID                                MANAGED  ISSUER URL                                                             SECRET ARN
    2330dbs0n8m3chkkr25gkkcd8pnj3lk2  true     https://dvbwgdztaeq9o.cloudfront.net/2330dbs0n8m3chkkr25gkkcd8pnj3lk2
    233hvnrjoqu14jltk6lhbhf2tj11f8un  false    https://oidc-r7u1.s3.us-east-1.amazonaws.com                           aws:secretsmanager:us-east-1:242819244:secret:rosa-private-key-oidc-r7u1-tM3MDN
    Copy to Clipboard Toggle word wrap

9.1.4. Operator のロールとポリシーの作成

Red Hat OpenShift Service on AWS クラスターをデプロイするときは、Operator IAM ロールを作成する必要があります。クラスター Operator は、Operator のロールとポリシーを使用して、バックエンドストレージの管理やクラスターへの外部アクセスなどのクラスター操作を実行するために必要な一時的な権限を取得します。

前提条件

  • Red Hat OpenShift Service on AWS の AWS 前提条件を完了している。
  • インストールホストに最新の ROSA CLI (rosa) をインストールして設定した。
  • アカウント全体の AWS ロールを作成した。

手順

  1. Operator ロールを作成するには、次のコマンドを実行します。

    $ rosa create operator-roles --hosted-cp --prefix=$OPERATOR_ROLES_PREFIX --oidc-config-id=$OIDC_ID --installer-role-arn arn:aws:iam::$AWS_ACCOUNT_ID:role/${ACCOUNT_ROLES_PREFIX}-HCP-ROSA-Installer-Role
    Copy to Clipboard Toggle word wrap

    次の内訳は、Operator ロール作成のオプションを示しています。

    $ rosa create operator-roles --hosted-cp
    	--prefix=$OPERATOR_ROLES_PREFIX 
    1
    
    	--oidc-config-id=$OIDC_ID 
    2
    
    	--installer-role-arn arn:aws:iam::$AWS_ACCOUNT_ID:role/$ACCOUNT_ROLES_PREFIX-HCP-ROSA-Installer-Role 
    3
    Copy to Clipboard Toggle word wrap
    1
    これらの Operator ロールを作成するときは、接頭辞を指定する必要があります。そうしないとエラーが発生します。演算子接頭辞は、このセクションの関連情報を参照してください。
    2
    この値は、Red Hat OpenShift Service on AWS クラスター用に作成した OIDC 設定 ID です。
    3
    この値は、Red Hat OpenShift Service on AWS アカウントロールを作成したときに作成したインストーラーロール ARN です。

    Red Hat OpenShift Service on AWS クラスターに正しいロールを作成するには、--hosted-cp パラメーターを含める必要があります。このコマンドは次の情報を返します。

    出力例

    ? Role creation mode: auto
    ? Operator roles prefix: <pre-filled_prefix> 
    1
    
    ? OIDC Configuration ID: 23soa2bgvpek9kmes9s7os0a39i13qm4 | https://dvbwgdztaeq9o.cloudfront.net/23soa2bgvpek9kmes9s7os0a39i13qm4 
    2
    
    ? Create hosted control plane operator roles: Yes
    W: More than one Installer role found
    ? Installer role ARN: arn:aws:iam::4540112244:role/<prefix>-HCP-ROSA-Installer-Role
    ? Permissions boundary ARN (optional):
    I: Reusable OIDC Configuration detected. Validating trusted relationships to operator roles:
    I: Creating roles using 'arn:aws:iam::4540112244:user/<userName>'
    I: Created role '<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials'
    I: Created role '<prefix>-openshift-cloud-network-config-controller-cloud-credenti' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-cloud-network-config-controller-cloud-credenti'
    I: Created role '<prefix>-kube-system-kube-controller-manager' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-kube-controller-manager'
    I: Created role '<prefix>-kube-system-capa-controller-manager' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-capa-controller-manager'
    I: Created role '<prefix>-kube-system-control-plane-operator' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-control-plane-operator'
    I: Created role '<prefix>-kube-system-kms-provider' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-kms-provider'
    I: Created role '<prefix>-openshift-image-registry-installer-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-image-registry-installer-cloud-credentials'
    I: Created role '<prefix>-openshift-ingress-operator-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-ingress-operator-cloud-credentials'
    I: To create a cluster with these roles, run the following command:
    	rosa create cluster --sts --oidc-config-id 23soa2bgvpek9kmes9s7os0a39i13qm4 --operator-roles-prefix <prefix> --hosted-cp
    Copy to Clipboard Toggle word wrap

    1
    このフィールドには、最初の作成コマンドで設定した接頭辞が事前に入力されます。
    2
    このフィールドでは、Red Hat OpenShift Service on AWS クラスター用に作成した OIDC 設定を選択する必要があります。

    Operator ロールが作成され、Red Hat OpenShift Service on AWS クラスターの作成に使用する準備が整いました。

検証

  • Red Hat OpenShift Service on AWS に関連付けられている Operator ロールをリスト表示できます。以下のコマンドを実行します。

    $ rosa list operator-roles
    Copy to Clipboard Toggle word wrap

    出力例

    I: Fetching operator roles
    ROLE PREFIX  AMOUNT IN BUNDLE
    <prefix>      8
    ? Would you like to detail a specific prefix Yes 
    1
    
    ? Operator Role Prefix: <prefix>
    ROLE NAME                                                         ROLE ARN                                                                                         VERSION  MANAGED
    <prefix>-kube-system-capa-controller-manager                       arn:aws:iam::4540112244:role/<prefix>-kube-system-capa-controller-manager                       4.13     No
    <prefix>-kube-system-control-plane-operator                        arn:aws:iam::4540112244:role/<prefix>-kube-system-control-plane-operator                        4.13     No
    <prefix>-kube-system-kms-provider                                  arn:aws:iam::4540112244:role/<prefix>-kube-system-kms-provider                                  4.13     No
    <prefix>-kube-system-kube-controller-manager                       arn:aws:iam::4540112244:role/<prefix>-kube-system-kube-controller-manager                       4.13     No
    <prefix>-openshift-cloud-network-config-controller-cloud-credenti  arn:aws:iam::4540112244:role/<prefix>-openshift-cloud-network-config-controller-cloud-credenti  4.13     No
    <prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials       arn:aws:iam::4540112244:role/<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials       4.13     No
    <prefix>-openshift-image-registry-installer-cloud-credentials      arn:aws:iam::4540112244:role/<prefix>-openshift-image-registry-installer-cloud-credentials      4.13     No
    <prefix>-openshift-ingress-operator-cloud-credentials              arn:aws:iam::4540112244:role/<prefix>-openshift-ingress-operator-cloud-credentials              4.13     No
    Copy to Clipboard Toggle word wrap

    1
    コマンドを実行すると、AWS アカウントに関連付けられているすべての接頭辞が表示され、この接頭辞に関連付けられているロールの数が記録されます。これらのロールとその詳細をすべて表示する必要がある場合は、詳細プロンプトで "Yes" と入力すると、これらのロールが詳細とともにリストされます。

9.2. クラスターの作成

ROSA コマンドラインインターフェイス (CLI) rosa を使用してクラスターを作成する場合、オプションのフラグ --no-cni を追加して、CNI プラグインなしでクラスターを作成できます。

前提条件

  • Red Hat OpenShift Service on AWS の AWS 前提条件を完了している。
  • 利用可能な AWS サービスクォータがある。
  • AWS コンソールで Red Hat OpenShift Service on AWS を有効にしました。
  • インストールホストに最新の ROSA CLI (rosa) をインストールして設定した。現在インストールされている ROSA CLI のバージョンを確認するには、rosa version を実行します。新しいバージョンが利用可能な場合、CLI はこのアップグレードをダウンロードするためのリンクを提供します。
  • ROSA CLI を使用して Red Hat アカウントにログインしている。
  • OIDC 設定を作成した。
  • AWS Elastic Load Balancing (ELB) サービスロールが AWS アカウントに存在することを確認した。

手順

  1. 次のいずれかのコマンドを使用して Red Hat OpenShift Service on AWS クラスターを作成できます。

    注記

    Red Hat OpenShift Service on AWS クラスターを作成する場合、デフォルトのマシン Classless Inter-Domain Routing (CIDR) は 10.0.0.0/16 です。これが VPC サブネットの CIDR 範囲に対応していない場合は、次のコマンドに --machine-cidr <address_block> を追加します。

    • 単一の初期マシンプール、パブリックに利用可能な API、およびパブリックに利用可能な Ingress を備え、CNI プラグインのないクラスターを作成するには、次のコマンドを実行します。

      $ rosa create cluster --cluster-name=<cluster_name> \
          --sts --mode=auto --hosted-cp --operator-roles-prefix <operator-role-prefix> \
          --oidc-config-id <ID-of-OIDC-configuration> --subnet-ids=<public-subnet-id>,<private-subnet-id> --no-cni
      Copy to Clipboard Toggle word wrap
    • 単一の初期マシンプール、プライベートに利用可能な API、およびプライベートに利用可能な Ingress を備え、CNI プラグインのないクラスターを作成するには、次のコマンドを実行します。

      $ rosa create cluster --private --cluster-name=<cluster_name> \
          --sts --mode=auto --hosted-cp --subnet-ids=<private-subnet-id> --no-cni
      Copy to Clipboard Toggle word wrap
    • OIDC_IDSUBNET_IDS、および OPERATOR_ROLES_PREFIX 変数を使用して環境を準備した場合は、CNI プラグインなしでクラスターを作成するときに、それらの変数を引き続き使用できます。たとえば、以下のコマンドを実行します。

      $ rosa create cluster --hosted-cp --subnet-ids=$SUBNET_IDS --oidc-config-id=$OIDC_ID --cluster-name=<cluster_name> --operator-roles-prefix=$OPERATOR_ROLES_PREFIX --no-cni
      Copy to Clipboard Toggle word wrap
  2. 次のコマンドを実行して、クラスターのステータスを確認します。

    $ rosa describe cluster --cluster=<cluster_name>
    Copy to Clipboard Toggle word wrap
    重要

    クラスターが ready 状態に達してから初めてログインする場合、独自の CNI プラグインをインストールするまで、ノードは not ready 状態のままです。CNI のインストール後、ノードは ready に変わります。

    以下の State フィールドの変更は、クラスターインストールの進捗として出力に表示されます。

    • pending (Preparing account)
    • installing (DNS setup in progress)
    • installing
    • ready

      注記

      インストールが失敗した場合や、State フィールドが 10 分以上 ready に変わらない場合は、インストールのトラブルシューティングのドキュメントで詳細を確認してください。詳細は、インストールのトラブルシューティング を参照してください。Red Hat サポートにサポートを依頼する手順は、Red Hat OpenShift Service on AWS のサポートの利用 を参照してください。

  3. Red Hat OpenShift Service on AWS インストールプログラムのログを監視して、クラスター作成の進行状況を追跡します。ログを確認するには、次のコマンドを実行します。

    $ rosa logs install --cluster=<cluster_name> --watch 
    1
    Copy to Clipboard Toggle word wrap
    1
    オプション: インストールの進行中に新しいログメッセージを監視するには、--watch 引数を使用します。

9.2.1. CNI プラグインがないクラスターの予想される動作

Red Hat OpenShift Service on AWS クラスターのインストールは完了していますが、CNI プラグインがないとクラスターは動作しません。ノードが準備ができていないため、ワークロードをデプロイできません。たとえば、Red Hat OpenShift Service on AWS クラスターの Web コンソールを利用できないため、クラスターにログインするには OpenShift CLI (oc) を使用する必要があります。さらに、HAProxy ベースの Ingress Controller、イメージレジストリー、Prometheus ベースのモニタリングスタックなど、その他の OpenShift コンポーネントが実行されていません。これは、CNI プロバイダーをインストールするまでの予想される動作です。

9.3. 次のステップ

  • CNI プラグインをインストールします。その後、ノードが not ready 状態から ready 状態に変わります。

第10章 Red Hat OpenShift Service on AWS クラスターの削除

Red Hat OpenShift Service on AWS クラスターを削除する場合は、Red Hat OpenShift Cluster Manager または ROSA コマンドラインインターフェイス (CLI) (rosa) のいずれかを使用できます。クラスターを削除した後、クラスターで使用されている AWS Identity and Access Management (IAM) リソースを削除することもできます。

10.1. Red Hat OpenShift Service on AWS クラスターとクラスター固有の IAM リソースを削除する

ROSA CLI または Red Hat OpenShift Cluster Manager を使用して、Red Hat OpenShift Service on AWS クラスターを削除できます。

クラスターを削除した後、ROSA CLI を使用して、AWS アカウント内のクラスター固有のアイデンティティーおよびアクセス管理 (IAM) リソースを消去できます。クラスター固有のリソースには、Operator ロールと OpenID Connect (OIDC) プロバイダーが含まれます。

注記

IAM リソースは、クラスターの削除およびクリーンアップのプロセスで使用されるため、クラスターの削除は、IAM リソースを削除する前に完了する必要があります。

アドオンがインストールされている場合、クラスターの削除前にアドオンをアンインストールするため、削除により多くの時間がかかります。所要時間は、アドオンの数とサイズによって異なります。

前提条件

  • Red Hat OpenShift Service on AWS クラスターをインストールしました。
  • インストールホストに、最新の ROSA CLI をインストールして設定している。

手順

  1. 次のコマンドを実行して、クラスター ID、クラスター固有の Operator ロールの Amazon リソース名 (ARN)、および OIDC プロバイダーのエンドポイント URL を取得します。

    $ rosa describe cluster --cluster=<cluster_name>
    Copy to Clipboard Toggle word wrap

    出力例

    Name:                       test_cluster
    Domain Prefix:              test_cluster
    Display Name:               test_cluster
    ID:                         <cluster_id> 
    1
    
    External ID:                <external_id>
    Control Plane:              ROSA Service Hosted
    OpenShift Version:          4.19.0
    Channel Group:              stable
    DNS:                        test_cluster.l3cn.p3.openshiftapps.com
    AWS Account:                <AWS_id>
    AWS Billing Account:        <AWS_id>
    API URL:                    https://api.test_cluster.l3cn.p3.openshiftapps.com:443
    Console URL:
    Region:                     us-east-1
    Availability:
     - Control Plane:           MultiAZ
     - Data Plane:              SingleAZ
    
    Nodes:
     - Compute (desired):       2
     - Compute (current):       0
    Network:
     - Type:                    OVNKubernetes
     - Service CIDR:            172.30.0.0/16
     - Machine CIDR:            10.0.0.0/16
     - Pod CIDR:                10.128.0.0/14
     - Host Prefix:             /23
     - Subnets:                 <subnet_ids>
    EC2 Metadata Http Tokens:   optional
    Role (STS) ARN:             arn:aws:iam::<AWS_id>:role/test_cluster-HCP-ROSA-Installer-Role
    Support Role ARN:           arn:aws:iam::<AWS_id>:role/test_cluster-HCP-ROSA-Support-Role
    Instance IAM Roles:
     - Worker:                  arn:aws:iam::<AWS_id>:role/test_cluster-HCP-ROSA-Worker-Role
    Operator IAM Roles: 
    2
    
     - arn:aws:iam::<AWS_id>:role/test_cluster-openshift-cloud-network-config-controller-cloud-crede
     - arn:aws:iam::<AWS_id>:role/test_cluster-openshift-image-registry-installer-cloud-credentials
     - arn:aws:iam::<AWS_id>:role/test_cluster-openshift-ingress-operator-cloud-credentials
     - arn:aws:iam::<AWS_id>:role/test_cluster-kube-system-kube-controller-manager
     - arn:aws:iam::<AWS_id>:role/test_cluster-kube-system-capa-controller-manager
     - arn:aws:iam::<AWS_id>:role/test_cluster-kube-system-control-plane-operator
     - arn:aws:iam::<AWS_id>:role/hcpcluster-kube-system-kms-provider
     - arn:aws:iam::<AWS_id>:role/test_cluster-openshift-cluster-csi-drivers-ebs-cloud-credentials
    Managed Policies:           Yes
    State:                      ready
    Private:                    No
    Created:                    Apr 16 2024 20:32:06 UTC
    User Workload Monitoring:   Enabled
    Details Page:               https://console.redhat.com/openshift/details/s/<cluster_id>
    OIDC Endpoint URL:          https://oidc.op1.openshiftapps.com/<cluster_id> (Managed) 
    3
    
    Audit Log Forwarding:       Disabled
    External Authentication:    Disabled
    Copy to Clipboard Toggle word wrap

    1
    クラスター ID をリスト表示します。
    2
    クラスター固有の Operator ロールの ARN を指定します。たとえば、サンプル出力では、Machine Config Operator に必要なロールの ARN は arn:aws:iam::<aws_account_id>:role/mycluster-x4q9-openshift-machine-api-aws-cloud-credentials です。
    3
    クラスター固有の OIDC プロバイダーのエンドポイント URL が表示されます。
    重要

    クラスターを削除した後、ROSA CLI を使用してクラスター固有の STS リソースを削除するには、クラスター ID が必要になります。

  2. OpenShift Cluster Manager または ROSA CLI を使用してクラスターを削除します。

    • OpenShift Cluster Manager を使用してクラスターを削除するには、以下を実行します。

      1. OpenShift Cluster Manager に移動します。
      2. クラスターの横にあるオプションメニュー kebab をクリックし、Delete cluster を選択します。
      3. プロンプトにクラスターの名前を入力し、Delete をクリックします。
    • ROSA CLI を使用してクラスターを削除するには:

      1. 次のコマンドを実行します。<cluster_name> は、クラスターの名前または ID に置き換えます。

        $ rosa delete cluster --cluster=<cluster_name> --watch
        Copy to Clipboard Toggle word wrap
        重要

        Operator ロールと OIDC プロバイダーを削除する前に、クラスターの削除が完了するまで待つ必要があります。

  3. 次のいずれかのコマンドを実行して、クラスター固有の Operator IAM ロールを削除します。

    • 共有 Virtual Private Cloud (VPC) のないクラスターの場合:

      $ rosa delete operator-roles --prefix <operator_role_prefix>
      Copy to Clipboard Toggle word wrap
    • 共有 VPC を持つクラスターの場合:

      $ rosa delete operator-roles --prefix <operator_role_prefix> --delete-hosted-shared-vpc-policies
      Copy to Clipboard Toggle word wrap
  4. 次のコマンドを実行して OIDC プロバイダーを削除します。

    $ rosa delete oidc-provider --oidc-config-id <oidc_config_id>
    Copy to Clipboard Toggle word wrap

トラブルシューティング

  • Hybrid Cloud Console で保留中のクラスターのアドオンがないことを確認します。
  • Amazon Web Console で、すべての AWS リソースと依存関係が削除されていることを確認します。

10.2. アカウント全体の IAM リソースの削除

アカウント全体の AWS Identity and Access Management (IAM) リソースに依存するすべての Red Hat OpenShift Service on AWS クラスターを削除したら、アカウント全体のリソースを削除できます。

Red Hat OpenShift Cluster Manager を使用して Red Hat OpenShift Service on AWS クラスターをインストールする必要がなくなった場合は、OpenShift Cluster Manager とユーザーの IAM ロールを削除することもできます。

重要

アカウント全体の IAM ロールとポリシーは、同じ AWS アカウント内の他の Red Hat OpenShift Service on AWS クラスターで使用される可能性があります。他のクラスターで必要でない場合にのみリソースを削除します。

OpenShift Cluster Manager を使用して同じ AWS アカウント内の他の Red Hat OpenShift Service on AWS クラスターをインストール、管理、および削除する場合は、OpenShift Cluster Manager とユーザーの IAM ロールが必要です。OpenShift Cluster Manager を使用してアカウントに Red Hat OpenShift Service on AWS クラスターをインストールする必要がなくなった場合にのみ、ロールを削除してください。削除前にこれらのロールが削除された場合にクラスターを修復する方法は、クラスターのデプロイメントのトラブルシューティング の「削除できないクラスターの修復」を参照してください。

10.2.1. アカウント全体の IAM ロールとポリシーの削除

このセクションでは、Red Hat OpenShift Service on AWS デプロイメント用に作成したアカウント全体の IAM ロールとポリシー、およびアカウント全体のオペレーターポリシーを削除する手順について説明します。アカウント全体の AWS Identity and Access Management (IAM) ロールとポリシーは、それらに依存するすべての Red Hat OpenShift Service on AWS クラスターを削除した後にのみ削除できます。

重要

アカウント全体の IAM ロールとポリシーは、同じ AWS アカウント内の他の Red Hat OpenShift Service on AWS クラスターで使用される可能性があります。他のクラスターで必要とされていない場合に限り、ロールだけを削除します。

前提条件

  • 削除するアカウント全体の IAM ロールがある。
  • インストールホストに最新の ROSA CLI (rosa) をインストールして設定した。

手順

  1. アカウント全体のロールを削除します。

    1. ROSA CLI (rosa) を使用して、AWS アカウントのアカウント全体のロールをリスト表示します。

      $ rosa list account-roles
      Copy to Clipboard Toggle word wrap

      出力例

      I: Fetching account roles
      ROLE NAME                                 ROLE TYPE      ROLE ARN                                                                 OPENSHIFT VERSION  AWS Managed
      ManagedOpenShift-HCP-ROSA-Installer-Role  Installer      arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-HCP-ROSA-Installer-Role  4.19               Yes
      ManagedOpenShift-HCP-ROSA-Support-Role    Support        arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-HCP-ROSA-Support-Role    4.19               Yes
      ManagedOpenShift-HCP-ROSA-Worker-Role     Worker         arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-HCP-ROSA-Worker-Role     4.19               Yes
      Copy to Clipboard Toggle word wrap

    2. 次のいずれかのコマンドを実行して、アカウント全体のロールを削除します。

      • 共有 Virtual Private Cloud (VPC) のないクラスターの場合:

        $ rosa delete account-roles --prefix <prefix> --mode auto 
        1
        Copy to Clipboard Toggle word wrap
        1
        その際、--<prefix> 引数を含める必要があります。<prefix> を削除するアカウント全体のロールの接頭辞に置き換えてください。アカウント全体のロールを作成したときにカスタム接頭辞を指定しなかった場合は、デフォルトの接頭辞である ManagedOpenShift を指定します。
      • 共有 VPC を持つクラスターの場合:

        $ rosa delete account-roles --prefix <prefix> --delete-hosted-shared-vpc-policies --mode auto 
        1
        Copy to Clipboard Toggle word wrap
        1
        その際、--<prefix> 引数を含める必要があります。<prefix> を削除するアカウント全体のロールの接頭辞に置き換えてください。アカウント全体のロールを作成したときにカスタム接頭辞を指定しなかった場合は、デフォルトの接頭辞である ManagedOpenShift を指定します。
        重要

        アカウント全体の IAM ロールは、同じ AWS アカウント内の他の Red Hat OpenShift Service on AWS クラスターで使用される場合があります。他のクラスターで必要とされていない場合に限り、ロールだけを削除します。

        出力例

        W: There are no classic account roles to be deleted
        I: Deleting hosted CP account roles
        ? Delete the account role 'delete-rosa-HCP-ROSA-Installer-Role'? Yes
        I: Deleting account role 'delete-rosa-HCP-ROSA-Installer-Role'
        ? Delete the account role 'delete-rosa-HCP-ROSA-Support-Role'? Yes
        I: Deleting account role 'delete-rosa-HCP-ROSA-Support-Role'
        ? Delete the account role 'delete-rosa-HCP-ROSA-Worker-Role'? Yes
        I: Deleting account role 'delete-rosa-HCP-ROSA-Worker-Role'
        I: Successfully deleted the hosted CP account roles
        Copy to Clipboard Toggle word wrap

  2. アカウント全体のインラインポリシーと Operator ポリシーを削除します。

    1. AWS IAM ConsolePolicies ページで、アカウント全体のロールとポリシーを作成したときに指定した接頭辞でポリシーのリストをフィルタリングします。

      注記

      アカウント全体のロールを作成したときにカスタム接頭辞を指定しなかった場合は、デフォルトの接頭辞である ManagedOpenShift を検索します。

    2. AWS IAM コンソール を使用して、アカウント全体のポリシーと Operator ポリシーを削除します。AWS IAM コンソールを使用して IAM ポリシーを削除する方法の詳細は、AWS ドキュメントの IAM ポリシーの削除 を参照してください。

      重要

      アカウント全体の IAM ポリシーと Operator IAM ポリシーは、同じ AWS アカウント内の他の Red Hat OpenShift Service on AWS クラスターで使用される場合があります。他のクラスターで必要とされていない場合に限り、ロールだけを削除します。

10.2.2. OpenShift Cluster Manager およびユーザー IAM ロールのリンク解除と削除

Red Hat OpenShift Cluster Manager を使用して Red Hat OpenShift Service on AWS クラスターをインストールすると、OpenShift Cluster Manager と、Red Hat 組織にリンクするユーザーアイデンティティーおよびアクセス管理 (IAM) ロールも作成されます。クラスターを削除した後、ROSA CLI (rosa) を使用して、ロールのリンクを解除して削除できます。

重要

OpenShift Cluster Manager を使用して同じ AWS アカウント内の他の Red Hat OpenShift Service on AWS クラスターをインストールおよび管理する場合は、OpenShift Cluster Manager とユーザーの IAM ロールが必要です。OpenShift Cluster Manager を使用して Red Hat OpenShift Service on AWS クラスターをインストールする必要がなくなった場合にのみ、ロールを削除してください。

前提条件

  • OpenShift Cluster Manager とユーザー IAM ロールを作成し、それらを Red Hat 組織にリンクした。
  • インストールホストに最新の ROSA CLI (rosa) をインストールして設定した。
  • Red Hat 組織で組織管理者権限がある。

手順

  1. Red Hat 組織から OpenShift Cluster Manager IAM ロールのリンクを解除し、ロールを削除します。

    1. AWS アカウントで OpenShift Cluster Manager IAM ロールをリスト表示します。

      $ rosa list ocm-roles
      Copy to Clipboard Toggle word wrap

      出力例

      I: Fetching ocm roles
      ROLE NAME                                                     ROLE ARN                                                                                         LINKED  ADMIN  AWS Managed
      ManagedOpenShift-OCM-Role-<red_hat_organization_external_id>  arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-OCM-Role-<red_hat_organization_external_id>  Yes      Yes     Yes
      Copy to Clipboard Toggle word wrap

    2. 上記のコマンドの出力で OpenShift Cluster Manager IAM ロールがリンク済みとしてリストされている場合は、次のコマンドを実行して、Red Hat 組織からロールのリンクを解除します。

      $ rosa unlink ocm-role --role-arn <arn> 
      1
      Copy to Clipboard Toggle word wrap
      1
      <arn> を OpenShift Cluster Manager IAM ロールの Amazon Resource Name (ARN) に置き換えます。ARN は、前のコマンドの出力で指定されます。上記の例では、ARN の形式は arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-OCM-Role-<red_hat_organization_external_id> です。

      出力例

      I: Unlinking OCM role
      ? Unlink the 'arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-OCM-Role-<red_hat_organization_external_id>' role from organization '<red_hat_organization_id>'? Yes
      I: Successfully unlinked role-arn 'arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-OCM-Role-<red_hat_organization_external_id>' from organization account '<red_hat_organization_id>'
      Copy to Clipboard Toggle word wrap

    3. OpenShift Cluster Manager IAM のロールとポリシーを削除します。

      $ rosa delete ocm-role --role-arn <arn>
      Copy to Clipboard Toggle word wrap

      出力例

      I: Deleting OCM role
      ? OCM Role ARN: arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-OCM-Role-<red_hat_organization_external_id>
      ? Delete 'arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-OCM-Role-<red_hat_organization_external_id>' ocm role? Yes
      ? OCM role deletion mode: auto 
      1
      
      I: Successfully deleted the OCM role
      Copy to Clipboard Toggle word wrap

      1
      削除モードを指定します。auto モードを使用して、OpenShift Cluster Manager IAM ロールとポリシーを自動的に削除できます。manual モードでは、ROSA CLI はロールとポリシーを削除するために必要な aws コマンドを生成します。manual モードでは、aws コマンドを手動で実行する前に詳細を確認することができます。
  2. Red Hat 組織からユーザー IAM ロールのリンクを解除し、ロールを削除します。

    1. AWS アカウントのユーザー IAM ロールをリスト表示します。

      $ rosa list user-roles
      Copy to Clipboard Toggle word wrap

      出力例

      I: Fetching user roles
      ROLE NAME                                  ROLE ARN                                                                  LINKED
      ManagedOpenShift-User-<ocm_user_name>-Role  arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-User-<ocm_user_name>-Role  Yes
      Copy to Clipboard Toggle word wrap

    2. 上記のコマンドの出力にユーザー IAM ロールがリンクされていると表示されている場合は、Red Hat 組織からロールのリンクを解除します。

      $ rosa unlink user-role --role-arn <arn> 
      1
      Copy to Clipboard Toggle word wrap
      1
      <arn> をユーザー IAM ロールの Amazon Resource Name (ARN) に置き換えます。ARN は、前のコマンドの出力で指定されます。前の例では、ARN の形式は arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-User-<ocm_user_name>-Role です。

      出力例

      I: Unlinking user role
      ? Unlink the 'arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-User-<ocm_user_name>-Role' role from the current account '<ocm_user_account_id>'? Yes
      I: Successfully unlinked role ARN 'arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-User-<ocm_user_name>-Role' from account '<ocm_user_account_id>'
      Copy to Clipboard Toggle word wrap

    3. ユーザー IAM ロールを削除します。

      $ rosa delete user-role --role-arn <arn>
      Copy to Clipboard Toggle word wrap

      出力例

      I: Deleting user role
      ? User Role ARN: arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-User-<ocm_user_name>-Role
      ? Delete the 'arn:aws:iam::<aws_account_id>:role/ManagedOpenShift-User-<ocm_user_name>-Role' role from the AWS account? Yes
      ? User role deletion mode: auto 
      1
      
      I: Successfully deleted the user role
      Copy to Clipboard Toggle word wrap

      1
      削除モードを指定します。auto モードを使用して、ユーザー IAM ロールを自動的に削除できます。manual モードでは、ROSA CLI はロールを削除するために必要な aws コマンドを生成します。manual モードでは、aws コマンドを手動で実行する前に詳細を確認できます。

Legal Notice

Copyright © 2025 Red Hat

OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).

Modified versions must remove all Red Hat trademarks.

Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.

Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.

Linux® is the registered trademark of Linus Torvalds in the United States and other countries.

Java® is a registered trademark of Oracle and/or its affiliates.

XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.

MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.

Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.

The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.

All other trademarks are the property of their respective owners.

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat