OpenStackを中心にCloud製品を担当しているソリューションアーキテクトの輿水です。
Red Hat OpenShift on IBM Cloudの無料で使えるHands on Lab環境を使った後に、通常(有料)の環境を構築してみました。既にライト・アカウントで登録している場合は、住所やカード情報を入れることでアカウントがアップグレードされます。※2021年1月末まで200ドル分を利用できる模様です
早速、用意されているRed Hat OpenShift on IBM Cloud 概説に従って環境を作ってみます。
Red Hat OpenShift on IBM Cloud 概説
IBM Cloud アカウントでログインするとダッシュボードが表示されるので、上部の「カタログ」をクリックします。
使用できるプロダクトの一覧から「Red Hat OpenShift on IBM Cloud」を選択します。Recommended for youで「Red Hat OpenShift on IBM Cloud」が表示される場合もありますが、表示されてない場合は「OpenShift」で検索してください。
クラスターの構成を決める画面が表示されるます。
作成できるクラスターには「クラシック OpenShift クラスター」と「VPC クラスター」の2種類があります。クラシックは通常のPublic Cloud、VPCはPrivate CloudのセキュリティーとPublic Cloudのスケーラビリティーを兼ね備えた仮想プライベート・クラウドとのことなので、今回は通常の「クラシック OpenShift クラスター」を選択しました。OCPのバージョンはこのドキュメントでは (OpenShift 4.3.35) とありますが、選択画面ではいくつかのバージョンがあるので、選べる中で最新版(4.5.18)を選んでみました。次にノードをどのように配置するかを決めます。ドキュメントの中では「高可用性のためのクラスターの計画」に詳細が記載されています。
- 単一ゾーンクラスター
- 1箇所のリージョン内の、1つのゾーンに worker nodeを配置します。
- マルチゾーンクラスター
- 1箇所のリージョン内の複数のゾーンに worker nodeを配置します。ゾーンの障害に対して耐障害性を持たせることができます。
- グローバル・ロドバランサーを持つ複数クラスター
- 複数のゾーンまたはリージョンをまたいでセットアップされ、グローバル・ロード・バランサーを介して接続された複数クラスターにworker nodeを配置できます。
- 「Geography」Asia Pacific / Europe / North America / South America
- 「Availability」Single Zone / Multi Zone
- 「Worker zone」
- 「Availability」でSingle Zone を選んだ場合は「Worker zone」では1箇所のzoneを選択
- 「Availability」でMulti Zoneを選んだ場合は「Metoro」を指定して単一または複数の「Worker zone」を選択
そのWorker zoneを初めて使う場合はネットワーク用のサブネット(VLAN)が作成されてないので、自動的に作成されます(←自動でなくて作成する必要があるかも)。複数zoneの場合は、zone毎に異なるサブネットを割り当ててルーティングするか、VLANをzone間にまたがるようにすることができます。デフォルトでは各zoneに異なるVLANが割り当てられ、自動的にMulti zone load balancerが作成されます。
各zoneに作成するWokerの数とflavorを選択(または作成)します。標準では3台、4vCPU 16Gです。なお、右側に時間あたりと月間の場合にトータルコストの見積もりが表示されます。個人で試す場合は、そこを気にしつつ環境作成しましょう。
左下のCreateボタンをクリックして次の画面が表示されれば、クラスターの作成が始まっています。これ以外のポップアップのアラートが表示された場合は、アラートの内容を確認して、構成の指定に漏れがないか等を確認してください。
表示された画面の左側「Overview」をクリックするとクラスターのprovisioningの進捗状況が確認できます。途中で右側の「worker node」の進捗状況がPendingやCriticalになったりしますが、最終的にNormalになればクラスターの作成が完了です。クラスター規模(zoneやworker nodeの数)が大きいほどクラスター作成までの時間がかかります。3 zone × 3 worker nodesの場合は相当待ちます。クラスター作成が完了して各種サービスが稼働すれば右上にあるOpenShift web console にアクセスが可能になります。ドキュメントの注記によれば「Normalになった後、約10分程度」とのことですので、しばし待ちます。
クラスターの作成が完了するまで、しばらく時間がかかる可能性があります。 クラスターの状態が Normal になってから、クラスター・ネットワークおよびロード・バランシング・コンポーネントで、OpenShift Web コンソールおよびその他の経路に使用するクラスター・ドメインがデプロイされて更新されるまでに約 10 分かかります。Ingress サブドメインが <cluster_name>.<globally_unique_account_HASH>-0001.
.containers.appdomain.cloud のパターンに従っていることを確認して、クラスターの準備が整うまで待機してから、次の手順に進んでください。
Red Hat OpenShift on IBM Cloudはフルマネージドサービスであり、worker nodeの指定は可能なのですが、masterの指定はできません。クラスターの中のノードを確認すると「master,worker」と表示されておりましたが、「ワーカー・ノードのセットアップ計画」の中で以下の記載があり、master nodeのプロセスが稼働している訳ではない模様です。
- ワーカー・ノードの役割が master になるのはなぜですか?
oc get nodes または oc describe node <worker_node> を実行すると、ワーカー・ノードの役割に「 master,worker」と表示されることがあります。 OpenShift クラスターでは、オペレーターがワーカー・ノードに正常にデプロイできるように、オペレーターは nodeSelector として master 役割を使用します。 ワーカー・ノードでマスター・ノードのプロセスが実行されているわけではありません。
masterの可用性については「高可用性のためのクラスターの計画」の中で言及されており、単一ゾーン・クラスターの場合も可用性が担保されています。
- 単一ゾーン・クラスターのマスターの可用性は高いのでしょうか?
クラスターを単一ゾーンの都市に作成する場合、クラシック・クラスターの Kubernetes マスターは高可用性です。マスター更新時などの停止を防ぐために、マスターの API サーバー、etcd、スケジューラー、およびコントローラー・マネージャーのレプリカが別の物理ホスト上に配置されます。 クラスターが複数ゾーンの大都市ロケーションのいずれかにある場合は、自動的に、レプリカを 3 つ備えたマスターがデプロイされ、その大都市のゾーン間に分散されます。
- OpenShift マスターはどのようにセットアップされますか?
複数ゾーンの大都市ロケーションにクラスターを作成すると、可用性の高いマスターが自動的にデプロイされ、3 つのレプリカがその都市のゾーン間に分散されます。 例えば、dal10、dal12、または dal13 ゾーンにクラスターが存在する場合は、複数ゾーン大都市であるダラスの各ゾーンにマスターのレプリカが分散されます。
作成したクラスター一覧はIBM CloudのダッシュボードからOpenShiftを選択すると確認でき、そのクラスターを選択してDeleteを選べば削除できます。お正月の間に試してみて削除し忘れなどにお気をつけください。
Public Cloud上で稼働するフルマネージドなOpenShiftサービスには AOR(Azure Red Hat OpenShift )やROSA(Red Hat OpenShift Service on Amazon)もありますので、今後は比較など行ってゆく予定です。