5. ROSA HCP Cluster の作成

1.ROSA HCP Cluster 作成 のための事前準備 #

必要な変数が全てセットされているか再確認します。もしセットされてない場合は、以前の手順に戻ってセットして下さい。

echo $CLUSTER_NAME
echo $REGION
echo $SUBNET_IDS

AWS の Account ID を変数にセットします。

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

内容を確認します。

echo $AWS_ACCOUNT_ID

OIDC Config を作成し、作成された OIDC の ID を環境変数にセットします。(インタラクティブに構成したい場合は -y -m auto を外します)

export OIDC_ID=`rosa create oidc-config --mode=auto --yes | grep -oP "(?<=openshiftapps\.com/)[^']+"`

作成された OIDC Config の ID が変数にセットされているか確認します。

echo $OIDC_ID

必要な IAM Role (Account Role) を作成します。後で判別しやすいように、$CLUSTER_NAME のプリフィックスを使います。

rosa create account-roles --hosted-cp --prefix -$CLUSTER_NAME -m auto -y

必要な IAM Role (Operator Role) を作成します。後で判別しやすいように、$CLUSTER_NAME のプリフィックスを使います。

rosa create operator-roles --hosted-cp --prefix=$CLUSTER_NAME --oidc-config-id=$OIDC_ID --installer-role-arn arn:aws:iam::$AWS_ACCOUNT_ID:role/ManagedOpenShift-HCP-ROSA-Installer-Role -y -m auto
ここで rosa コマンドで必要な IAM Role を作成していますが、これは本来 aws CLI で行う作業を rosa コマンドでラップしているだけで、実際の作業は aws コマンドが行っています。 IAM Role の作成は、ROSA クラスターを作成するための準備作業として必要です。ROSA として、IAM Role を作成する権限は持っていません。

2.ROSA HCP Cluster の 作成 #

Cluster の作成を開始します。いろいろ聞かれますが、全てデフォルトでエンターを叩いて大丈夫です。

rosa create cluster --oidc-config-id $OIDC_ID --operator-roles-prefix $CLUSTER_NAME -c $CLUSTER_NAME  --hosted-cp 

途中で Subent を選択する画面がでてきますが、Public Cluster の場合は、1AZ につき Private Subnet と Publis Subnet をそれぞれ選択する必要があります。

3AZ 構成の場合は、合計で 6つの subnet (Private x 3 + Public x 3) の選択が必要です。

...
? Subnet IDs:  [Use arrows to move, space to select, <right> to all, <left> to none, type to filter, ? for more help]
> [x]  subnet-084a4afc8e965123e ('myhcpcluster-vpc-public-apne1-az1','vpc-02def9c12b89e7123','ap-northeast-1c', Owner ID: '069425419555')
  [x]  subnet-05fdf3d935e7f4560 ('myhcpcluster-vpc-private-apne1-az1','vpc-02def9c12b89e7123','ap-northeast-1c', Owner ID: '069425419555')
...

image

rosa create cluster --oidc-config-id $OIDC_ID --operator-roles-prefix $CLUSTER_NAME -c $CLUSTER_NAME  --hosted-cp --private --default-ingress-private

途中で Subent を選択する画面がでてきますが、Private Cluster の場合は、1AZ につき Private Subnet を1つ選択する必要があります。

...
? Subnet IDs:  [Use arrows to move, space to select, <right> to all, <left> to none, type to filter, ? for more help]
> [x]  subnet-05fdf3d935e7f4560 ('myhcpcluster-vpc-private-apne1-az1','vpc-02def9c12b89e7123','ap-northeast-1c', Owner ID: '069425419555')
...

image

注意: Private Cluster を作成した場合は、インターネットからアクセスできなくなるため、作成した Cluster が存在する AWS 上の Private Network に別途アクセスできる方法が必要になります。

Controlplane 機能を提供する VPC Endpoint の Security Group 設定を変更して oc コマンドを実行する Network からのアクセスを、明示的に許可する必要があります。デフォルトでは Worker Node のある VPC からしか Controplane の VPC Endpoint (Kubnernetes API の End Point) へのアクセスを許可していません。Security Group の設定変更については、こちら を参照下さい。

Egress Lockdown(インターネットにアクセスしない Install) のインストールコマンドは、基本的に Private Cluster と同じですが、--properties zero_egress:true のオプションを付けます。

rosa create cluster --oidc-config-id $OIDC_ID --operator-roles-prefix $CLUSTER_NAME -c $CLUSTER_NAME  --hosted-cp --private --default-ingress-private --properties zero_egress:true

途中で Subent を選択する画面がでてきますが、Private Cluster の場合は、1AZ につき Private Subnet を1つ選択する必要があります。

...
? Subnet IDs:  [Use arrows to move, space to select, <right> to all, <left> to none, type to filter, ? for more help]
  [x]  subnet-089858a83110c214c ('myhcpcluster-vpc-private-ap-northeast-1d','vpc-05dc0573b7a096e9d','ap-northeast-1d', Owner ID: '069425419456')
  [x]  subnet-05d358dce6ebebbb8 ('myhcpcluster-vpc-private-ap-northeast-1a','vpc-05dc0573b7a096e9d','ap-northeast-1a', Owner ID: '069425419456')
> [x]  subnet-0124a9f0c4934eb39 ('myhcpcluster-vpc-private-ap-northeast-1c','vpc-05dc0573b7a096e9d','ap-northeast-1c', Owner ID: '069425419456')
...

image

注意: Private Cluster を作成した場合は、インターネットからアクセスできなくなるため、作成した Cluster が存在する AWS 上の Private Network に別途アクセスできる方法が必要になります。

Controlplane 機能を提供する VPC Endpoint の Security Group 設定を変更して oc コマンドを実行する Network からのアクセスを、明示的に許可する必要があります。デフォルトでは Worker Node のある VPC からしか Controplane の VPC Endpoint (Kubnernetes API の End Point) へのアクセスを許可していません。Security Group の設定変更については、こちら を参照下さい。

以上でインストールが開始されました。 進捗は以下のコマンドで確認できます。

rosa logs install -c $CLUSTER_NAME --watch

インストールが完了したら管理者ユーザーを作成します。 ログインコマンド (oc login) パスワード付きで標準出力に表示されます。これはコマンドが終了してから、数分待つ必要があります。

rosa create admin --cluster=$CLUSTER_NAME

rosa create admin 実行時に出力に以下のようなログイン用のコマンドが出てくるのでメモしておきます。

oc login https://api.my-hpc-cluster.rc4b.p3.openshiftapps.com:443 --username cluster-admin --password abc123-XYZZH-1dNpZ-DBVjg

3.ROSA HCP Cluster へのアクセス確認 #

Private Clusterを作成した場合は、oc コマンドを実行する端末から、ROSA Cluster へのアクセス経路を確保してから行う必要があります。

数分待ってから、rosa create adminの出力で現れた上記のコマンドを使ってログインコマンド(oc login) を実行します。 (準備ができるまで 401 Unauthorized が出ます)

oc login <API_SERVER> --username cluster-admin --password <PASSWORD>

oc get nodes コマンドで compute node ができたか確認します。Worker node が 2本(Single AZ構成) もしくは3本(Multi AZ構成)表示されるはずです。 (まれに node の作成に時間がかかる場合があります。何も node が表示されない場合は、さらに10分程度待ってく見てください)

oc get nodes

4.構成を探って見る #

rosa list machinepool コマンドで、AZ毎に machinepool が出来ている事を確認します。machinepool単位で Node 数を増やす事ができます。

$ rosa list machinepool -c $CLUSTER_NAME

rosa list ingress コマンドで Cluster と一緒に作成された ingress を確認してみます。default の Load Balancer には NLB が使われているはずです。LB-TYPE を確認します。 この ingress 経由で、HTTP/HTTPS アプリケーションが公開されます。

rosa list ingress -c $CLUSTER_NAME

5.GUIにアクセスする #

GUI の URLは以下のコマンドで確認できます。rosa create admin 実行時のログに表示された cluster-admin とそのパスワードでログインできます。

oc whoami --show-console