はじめに
本投稿を閲覧していただいている皆様はOpenshift Container Platformという製品について、耳にしたことはありますでしょうか?
Kubernetesがリリースされた2014年から2021年5月現在、約6年の歳月の間にKubernetesをベースにした様々な製品が世に登場しました。
その中でも、Kuberneteをベースにした企業向けコンテナプラットフォームとして、現行のデファクトスタンダードとなりつつあるのが、Redhat社が開発・販売しているOpenshift Container Platformとなります。
本投稿では現在最新バージョンであるOCP4.7をAWS上に構築する手順を複数回に分け紹介し、どのように構築するのかについて紹介していきたいと思います。
なお、本投稿は2021年5月時点にて検証した内容となるため、閲覧タイミングによっては情報が異なる可能性があることをご了承ください。
概要
簡単にOCPの概要、およびAWSでの構築概要について解説したいと思います。
あくまで簡素的な紹介となるため、より詳しく詳細については以下のRed Hat公式より確認してください。
https://www.redhat.com/ja/technologies/cloud-computing/openshift
Openshift Container Platform(OCP)とは?
Openshift Container PlatformとはRed Hat社が提供しているエンタープライズ対応コンテナプラットフォームです。
Dockerとkubenretesをベースに開発されたCaaS(Containers-as-a-Service)であり、通常のKubernetesに比べ、Red Hatによるサポートデスクや専用のGUI、Openshiftを構築するだけでCI/CD環境やカタログデプロイが利用できる等、よりパワーアップしたコンテナプラットフォームを利用することが可能となります。
Openshift製品
Openshiftにはいくつか製品が存在しますが、Openshiftの中核製品としてはコンテナプラットフォーム製品のContainer Platformとなっています。
Openshift製品としては以下のような製品が存在します。
- OpenShift Container Platform(OCP)
上記で説明している通り、Red Hat社が提供しているエンタープライズ対応コンテナプラットフォームです。
旧称はOpenShift EnterpriseでOpenshift製品としての中核的存在であり、一般的にOpenshiftと呼ばれる際はこのOpenShift Container Platformを指します。 - OKD
Redhatが提供しているKubernetesにDevOps関連の機能などを追加拡張したコンテナプラットフォームのコミュニティディストリビューションです。
過去にはOpenshiftのコミュニティ版としてOpenshiftOriginと呼ばれていましたが、近年のアップデートにてOKD(Origin Community Distribution)と名称が変更されてました。
OCPが商用サポートのダウンストリーム版であるのに対して、OKDはOSSとしてのアップストリーム版という位置づけとなります。 - Red Hat OpenShift Online(RHOO)
AWSやIBM Cloud上で動作するRed Hatのパブリッククラウドアプリケーション開発・ホスティングサービスです。
Red Hat OpenShiftにオンデマンドでアクセスし、Red Hatが運営・サポートするスケーラブルなコンテナ型アプリケーションを構築・展開・管理することが可能となります。 - OpenShift Dedicated
RHELを基盤としAWS,GCP.Azure上にてDockerによるアプリケーションコンテナとKubernetesによるオーケストレーションと管理を提供する、Red Hatのマネージドプライベートクラスター製品です。 - OpenShift Data Foundation
クラウド、オンプレミス、ハイブリッド/マルチクラウド環境において、OpenShift Container platformで実行されるアプリケーションに、クラウドネイティブなストレージ、データ管理、データ保護を提供するストレージサービスです。
対応プラットフォーム
OCPを導入できる環境はクラウド、オンプレミス含めて以下のように様々存在し、要件に合わせた導入を実施することが出来ます。
- AWS
- Azure
- GCP
- RHOSP
- RHV
- VMware vSphere
- VMware Cloud on AWS
- Bare metal
- IBM Z or LinuxONE
- IBM Power Systems
AWSでの構築
今回紹介します手順ではAWS上にOCPクラスタを構築する方法を紹介したいと思います。
AWS上への構築方法や必要なツール等が複数存在するため、本項目にて解説し、本手順にて使用する内容を説明したいと思います。
構築方法
Openshiftのクラスタ構築では、以下二つのインストール方法が存在します。
今回紹介する手順ではインストーラーツールによる自動構築を実施するIPIインストールにて実行します。
- IPI(Installer Provisioned Infrastructure)
上記で説明している通り、RedHatより提供される構築用ツールにて自動構築を行う方法です。
ツールの取得、および必要アカウント情報必須の認証情報等が用意できれば、ネットワーク設定やストレージ設定が行われた完全な形でのOCPクラスタを自動構築することが出来ます。 - UPI(User Provisioned Infrastructure)
UPIインストールはユーザ自身が事前にインフラ環境を構築して、そこにOpenShiftをインストールするという方法です。
この方法では、事前にEC2やVPCの構築が必要となりますが、IPIに比べ柔軟性の高いインストールを実施することが可能となります。
その分、OpenshiftとAWSに関する深い知識が必要となるため、ハードルの高い構築方法でもあります。
必要ツール
AWS環境へのIPIインストールを実施するのに必要なツールは以下の三つとなります。
以下のツールの取得手順等については後日、事前準備編として解説するため、本項目では紹介レベルにしたいと思います。
- openshift-install
Redhatから提供されているOpenshiftインストーラーツールです。
本ツールは様々なクラウドベンダ等のプラットフォームを選択することができ、様々な環境へのIPIインストールを実行することが出来ます。 - AWS CLI
AWSのコマンドラインツールです。
openshift-installが指定したAWSアカウントに対して構築を行う際に、アカウントの連携等をAWS CLIにて実施するため、AWS CLIの導入が必要となります。 - Openshift CLI(OC)
Openshiftのコマンドラインツールです。
OCPクラスタ構築後、導入確認等をコマンドでも実施するため、本コマンドラインツールが必要となります。
ローカル環境の構築
Openshift CLIやAWS CLI、openshift-installを導入し実行する環境を用意する必要があります。
EC2等で作成しても問題ありませんが、本手順ではローカル環境上にvirtualBoxをインストールし、virtualBox上にてCentOS8.2環境を構築し各ツールの導入と実行を行いたいと思います。
本手順ではvirtualBoxはバージョン6.1を使用しています。
virtualBox上でのCentOS8.2導入手順については、本手順から乖離する内容となるため、割愛したいと思います。
※CentOS8.2である理由
2021年5月現在、CentOSの最新版は8.3となりますが、virtualBox6.1上にCentOS8.3を構築した場合、インストールに失敗する事象が発生するため、今回紹介する手順ではCentOS8.2上でツールの導入・実行を行っています。
マイナーバージョンの差異はツールの導入・実行に影響を与えないため、本項目については踏襲せず、各環境に合った内容で対応してください。
AWSクラスタ構成概要図
openshift-installによりIPIインストールを行った場合の構築概要図が以下となります。
以下の概要図は設定値の変更を行わないデフォルト構築での構成図となります。
今回紹介します構築手順では、以下の構成でのクラスタ構築を目標としています。
より詳しい詳細については以下のURLより確認してください。
https://access.redhat.com/documentation/en-us/openshift_container_platform/4.7/html/installing/installing-on-aws
Red Hat OpenShift Service on AWS (ROSA)についての詳細は以下のURLより確認してください。
https://www.redhat.com/en/technologies/cloud-computing/openshift/aws
構築情報
本手順にて構成されるOCPクラスタの各情報を解説したいと思います。
今回はカスタムインストールは行わないため、以下に記載する内容は全てIPIインストールにより構築を行った場合のデフォルト設定値となります。
事前準備アカウント/リソース
ツールによるインストールを実施するにあたり、以下のアカウントやAWSリソースを用意する必要があります。
以下が準備出来ないとopenshift-installによるIPIインストールを実施することが出来ないため、事前に準備をお願いします。
- AWSアカウント
支払先情報が登録されたAWSアカウントが必要となります。
実際にEC2やVPCが稼働するアカウントとなるため、まだ取得されていない場合は以下のAWS公式にて紹介されているAWSアカウント取得の流れを確認してください。
https://aws.amazon.com/jp/register-flow/
- Redhatアカウント
Openshiftはエンタープライズ向けコンテナプラットフォームとなるため、Openshiftのライセンスや認証情報、openshift-installの取得や連携にRedhatアカウントが必要となります。
アカウント登録はRedhatのポータルログイン上のリンクから遷移可能です。
ポータルへのリンクはサイオスの以下FAQに記載されているため、以下を確認してください。
https://sios.jp/products/oss/redhat/faq/s-14.html
- Route53でのドメイン取得
openshift-installによるIPIインストール時にRoute53にて作成されたドメインの入力が求められます。
ドメインは必須情報となるため、事前に作成しておく必要があります。
作成方法については以下のAWS公式ドキュメントを確認してください。
https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/registrar.html
クラスタ構成情報
本手順に構築されるOCPクラスタの構成は以下の表の内容となります。
今回はカスタム構築を行わないため、デフォルトでの構成内容となります。
AWS環境情報
紹介します手順にて使用するAWSリージョンとアベイラビリティゾーンは以下の表の内容となります。
各バージョン情報
紹介します手順にて導入するOCPやツール類のバージョンは以下の表の内容となります。
以下に記載しているバージョンは2021年5月現在、最新バージョンとなります。
ローカル環境情報
紹介します手順にて導入しているローカル環境情報は以下の表の通りです。
あとがき
今回はOpenshift Container Platform構築手順紹介の第一回目としまして、OCPやAWS構築の概要と本構築手順の事前準備情報、構築するクラスタの各種情報について紹介しました!
今後の投稿にて、各ツールの導入手順や実際にopenshift-installを使用したIPIインストール手順について、紹介していきたいと思います。
次回更新もお楽しみしていただければ幸いです!
ここまでお読みいただき、ありがとうございました!