OSD on Google Cloud (GCP) の Trial を試して見る

現時点で日本では Red Hat と年間契約しないと使えない OSD(OpenShift Dedicated) on GCP がどういうものか Trial を使って記録に残しておきます。

現時点で GCP 上で使用できる OpenShift の Managed Service は、OSD(OpenShift Dedicated) だけです。

CCS (Customer Cloud Subscription)であれば、60日間のトライアルができます。

・CCS = ユーザーが既に持っている GCP Account を使う方法
・non-CCS = Red Hat が持ってる GCP Account を使う方法。GCPのインフラも Red Hat経由で購入するので、契約がRed Hat に一本化される。

Trial は CCS なので無償になるのは、OpenShift の Subscription の部分だけで、GCP のインフラの費用は自分持ちになります。

:::note info
2024/08/16 追記：
現在では、Red Hat と年間契約を結ぶタイプの他に、Pay As You Go (使用した期間だけ課金される)型式の OSD も Google Cloud Marketplace で購入可能になっています。Pay As You Go タイプの購入自体は、[console.redhat.com](https://console.redhat.com/openshift/create) 経由で行われ、このドキュメントで書かれている Billing Model の選択時に Google Cloud の Marketplace を選択するだけで、手順は同じです。
:::

# 1. Billing Model を選択

[console.redhat.com](https://console.redhat.com/openshift/create) の OpenShift Cluster の作成画面より OSD の Trial を選択して Cluster を作成します。

Trial なので「Free Trial」しか選択できません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/6ee456ef-d103-4a25-451b-22c0d26a0e39.png)


# 2. Cluster Settings

AWS の OSD なのか GCP の OSD なのかを選択します。
下のボックスに「Service account JSON」を入力する必要があります。G oogle Cloud の Console 側に行って作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/40d88495-0566-7e65-d549-679ac5a65bd5.png)

# 3. GCP側でサービス・アカウントを作成する。

Project を作成した後、サービス・アカウントを作成します。サービス・アカウントの要件は、[ドキュメント](https://docs.openshift.com/dedicated/osd_install_access_delete_cluster/creating-a-gcp-cluster.html#osd-create-gcp-cluster-ccs_osd-creating-a-cluster-on-gcp)にあります。

サービス・アカウント名は「osd-ccs-admin」である必要があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/a83667a3-e541-b86d-3d58-c38411d40365.png)

サービス・アカウントに[ドキュメント](https://docs.openshift.com/dedicated/osd_install_access_delete_cluster/creating-a-gcp-cluster.html#osd-create-gcp-cluster-ccs_osd-creating-a-cluster-on-gcp)に記載されているロールを付ける。ロールがたくさんあるので検索を使って上手く見つけます。地味に大変な作業です。

![project-access.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/f3291197-0e97-cb53-3536-efb3f9807561.gif)

これはこのままでOKです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/f33d807a-3c93-f3db-ee37-76e3b8df53d4.png)

できたら、鍵をJSONで作成します。「操作」->「鍵を管理」->「鍵を追加」から新規の鍵が作成できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/78ae10f0-8e87-62a8-fa46-ef2c8d620e31.png)

JSONを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/c0e06a2f-13e6-ee30-39e8-a05fd7114397.png)

ダウンロードして保管しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/b57a01d0-1f6d-4362-f231-f078cff24fa3.png)

# 4. GCP の Project の API を有効にする

ドキュメントの [Required customer procedure](https://docs.openshift.com/dedicated/osd_planning/gcp-ccs.html#ccs-gcp-customer-procedure_gcp-ccs)にある APIを有効にしておきます。

ドキュメントに貼られているリンクをクリックして、Project 名を確認しながら有効になっていなければ、一つ一つ有効にしていきます。


# 5. OCM の画面に鍵を貼り付ける/ Worker Node のサイズと本数を選ぶ

GCPの画面で先ほど作ったサービス・アカウントのJSONを貼り付けます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/3785b2d2-b684-5370-c8c2-4926a3b05efa.png)

バージョンや Region を選択します。1週間前にGAされた 4.13が既に選べるようになっていました。また、Single AZ 構成にするのか、Multi AZ 構成にするのかも、ここで選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/72500ad9-1ab7-2e96-2fef-b4fed07c71f5.png)

Compute Node のサイズと数を選びます。
Compute Node の数は、AZ毎の数を指定します。0 が指定できるようになっていますが、[ドキュメント](https://docs.openshift.com/dedicated/osd_architecture/osd_policy/osd-service-definition.html#instance-types_osd-service-definition)によると、Single AZ の時は最低 2本、Multi AZ の時は 3本が必要とあります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/293c9910-2e89-a3be-521f-c4e8335d5fd3.png)

:::note info
OSD on GCP では、インストール時に Controlplane Node や Infra Node のサイズや本数をユーザーが選択する事はありません。クラスター作成時に決まったサイズのインスタンスが必要本数デプロイされるようになっています。

クラスター作成時に自動でデプロイされる Controlplane Node と Infra Node のインスタンスサイズについては、[こちら](https://docs.openshift.com/dedicated/osd_planning/osd-limits-scalability.html#node-sizing-during-installation_osd-limits-scalability)に情報があります。また、OSD が運用フェーズ (Day2 Operation)に入ると、これらのインスタンスサイズや本数は、負荷を見ながら SRE によって調整される事があります。
:::

選択できる Compute Node のリスト。 custom-xxxxx と付いています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/9fb7b609-7a93-63b8-e752-7f5870e1a375.png)

# 6. Network 周りの設定

Public か Private か選べるようになってます。Private にしてしまうと、作成したクラスターにインターネットからアクセスできなくなります。既存のVPCへのインストールも選択できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/22302b98-5604-dd56-f19f-17e18d4442a8.png)

デフォルトのネットワーク。自分で入力する事もできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/87558647-75c4-6dfc-6c8a-fa857edc5777.png)

# 7. Cluster 更新の設定

クラスターのアップデートを毎回手動でスケジュールするか、z-stream は新しいのが出た時に自動で適用するかが選べます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/9599e8eb-2994-6db8-b6a4-8fda0b2e793d.png)

# 8. 構成のレビューと作成

これまで設定した内容のレビュー
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/be081c32-0f6d-2757-7f2e-bafdc81dcae8.png)

完成まで待ちます。30-40分程かかります。よく見ると画面の上の方にこのトライアルのクラスターは2ヶ月で削除されると書いています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/45ee6bc2-b546-fd17-245c-b7441f9330ae.png)

これで完成です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/b5d673d2-7750-22b0-dc30-fbea4210d27e.png)

この後も Identity Provider 等の作成もあるが、とりあえずここまで確認できたのでよしとします。時間があったら手順を追記する事にします。

# 9. Identity Provider の追加

Identity Provider を追加してくださいと表示が出ているので、リンクをクリック。
テストで自分だけが管理者と使用できれば良いので `htpasswd` を選択します。

※htpasswd は ROSA/OSD の仕様では、self-managed の OpenShift と違って一人しかユーザーが持てないので管理用途が想定されています。[ドキュメントにも記載](https://docs.openshift.com/dedicated/osd_install_access_delete_cluster/config-identity-providers.html)があるように一般ユーザー用途ではない。
 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/2e710bb3-0c2c-5dd3-b853-399ebec78b44.png)

userid / password はデフォルトを使います。自分で指定もできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/aa8f01b1-0f4d-4a8b-963f-0dbe07bc9f02.png)


作成した User に dedicated-admin 権限を追加しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/7b2363e6-ddd1-e6d6-2e84-f15d03d3e168.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/ab4ae197-8999-7fc2-15bb-ee2975d3ac3a.png)

「Open console」からログインできるか確認します。(この画面が出るまで数分かかると思います）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/77968d59-8ac3-1b41-2e42-1d34824bf7ac.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/cdbc80f6-2805-5c7a-2970-19e4457967fe.png)

無事ログイン完了
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/d0be3d2f-8e90-df4c-ba53-1e2377607076.png)

# 10. [追加構成] Machine pool の追加


OCM 画面から新しい Node を追加できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/a27be911-f6bc-3b3b-4bd8-d4c1c033ab3d.png)

## 10.1 Single AZ の OSD の場合

1本だけ追加してみます。(この環境は Single AZ)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/93b653e4-0502-3bc3-03ba-6079e7077e49.png)

簡単に Node が追加できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/ee1d68a2-ebd1-56f8-33be-98620a12a5e9.png)

## 10.2 Multi AZ の OSD の場合

Machinepool が3つのZone を跨ぐように構成されているので、以下のように一つのZoneに設置する Compute Node の本数を指定するようです。そのため、Machinepool 内の Compute Node は必ず3の倍数単位になるようです。(OpenShift 4.16.6 で確認)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/350bd08a-f8ab-58e6-395b-5c7331ac03ea.png)

Multi AZ クラスターの、この3 の倍数単位の設定は Cluster AutoScaler を有効化した machinepool 内の最小/最大 Node 数を設定する時にも適用されるようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/4ebb80f9-316d-97c0-84a2-4cd786b85d42.png)


# 11. [追加構成] Additional application router の追加

OCM を見ていると、ROSA では既に封印された Additonal router (アプリケーション用の追加の ingress) が追加できそうな事に気付来ました。"Edit cluster ingress" をクリック。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/1e88452e-ab67-b822-cb03-71dc6909de97.png)

"Enable additonal router" をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/d015c655-7c3a-a3cc-ca7b-c7f155320987.png)

追加できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/344fa861-1fab-75fb-f541-8c45b2ddd4a0.png)