Red Hat OpenShift Localを使ってみる

コンテナ技術とKubernetesを基盤としたアプリケーション開発は急速に普及し、その中でもエンタープライズ向けのプラットフォームとしてOpenShiftが注目されていますが、最小構成を構築する場合もそこそこ良いスペックのノードが複数必要となり、気軽に試すには少々ハードルが高いと思います。

そんな方におすすめなのが「Red Hat OpenShift Local」というものです。これは、1台のサーバ上でOpenShiftクラスタを手軽に動作させることができる開発・検証向けの環境であり、OpenShiftの機能や操作感を再現できます。

本記事では、OpenShift Localを実際にセットアップし、基本的な動作確認やWebコンソールへのアクセス方法、OpenShiftクラスタの停止方法を紹介します。これからOpenShiftに触れてみたい方や、検証環境を手軽に構築したい方の参考になれば幸いです。

目次

サーバ要件

OpenShift Localを試すサーバの要件を記載します。本記事ではRHEL 9を使用してOpenShift Localを構築します。

  • OS: Linux, macOS, Windows
  • 最小スペック(プリセットがopenshiftの場合)
    • CPU: 4
    • メモリ: 10.5 GB
    • ディスク: 35 GB

OpenShift Localにおけるプリセットは、クラスタの構成を定義したもので、
– openshift(フル機能のOpenShift)
– okd(OpenShiftのOSS版)
– microshift(軽量版)
の3種類があります。

OpenShift LocalのCLIツールのダウンロード

はじめにRed Hat Customer Portal(https://access.redhat.com)にアクセスし、OpenShift LocalのCLIツール crcを取得します。Red Hatアカウントが無い場合は作成してください。

Customer Portalにログイン後、画面上部にある[Red Hat Console]をクリックします。その後、Red Hat Hybrid Cloud Console上に表示されているRed Hat OpenShiftを選択します。

OpenShiftクラスタの種類を選択する画面で、Red Hat OpenShift Container Platformの[Create cluster]をクリックします。

OpenShift LocalのCLIツールおよびプルシークレットをダウンロードします。プルシークレットとは、コンテナイメージをダウンロードするための認証情報で、CLIツールを用いた後述の作業で必要になります。

OpenShift Localの構築

前章でダウンロードしたCLIツールとプルシークレットを使用して、OpenShift Localを構築します。

CLIツールの準備

CLIツール(本記事ではcrc-linux-amd64.tar.xz)とプルシークレット(pull-secret.txt)をインストール先サーバ(RHEL 9)の任意のディレクトリ(本記事では~/ocp)に格納し、CLIツールを含む圧縮ファイルを解凍します。

OpenShift LocalのCLIツールcrcが展開されるのでPATHを通します。本記事では、crc/usr/local/bin/にコピーすることでPATHを通しています。

crcコマンドが動作するかバージョンを確認してみます。

コンフィグの設定

crcコマンドの準備ができたら、OpenShift Localのコンフィグを一部編集します。

プリセットを設定します。デフォルトがopenshiftのため、okdまたはmicroshiftを選択しない場合は実施不要です。

ネットワークモードを設定します。デフォルトではuser-modeですが、OpenShift Local上のアプリケーションを外部公開(別端末からアクセス)する場合は、system-modeの方が適切です。後ろの章でWebサーバであるNGINXをデプロイし、別端末からのアクセスを試すため、ここではsystem-modeを選択しておきます。

OpenShift Localのコンフィグには、CRC VMに割り当てるリソース(CPU/メモリ)など、他にも環境に合わせて編集できるパラメータがあります。編集できるパラメータはcrc config --helpコマンドで確認できます。

パラメータによっては、次節のcrc setupコマンドを実行する前に設定する必要があります。OpenShiftの構築後に当該パラメータを変更したい場合は、既存のOpenShift環境の削除および再構築が必要になる場合があります。本節で設定したパラメータの場合、プリセットの変更にはOpenShiftの再構築が必要です。ネットワークモードの変更には、OpenShiftの再構築は必須ではありませんが、一部のネットワーク設定に変更が入り、それに応じた更新作業が必要になります。

OpenShift Localの構築・起動

パラメータの編集ができたら、OpenShift Localを構築・起動します。

crc statusコマンドを実行し、ステータスを確認します。

CRC VMとはOpenShiftクラスタが動いている仮想マシンのことです。つまり、crc startコマンドによってRHEL 9の上にCRC VMが作成され、その中でOpenShift Localが動いている状況です。

Webコンソールにアクセス

OpenShiftはWebコンソールを提供しており、crc startコマンドの実行結果に記載されているURLhttps://console-openshift-console.apps-crc.testingにブラウザからアクセスすると、OpenShiftのWebコンソールにログインできます。ログイン情報はcrc startコマンドの実行結果にUsername/Passwordが記載されています。

ただし、本記事を作成するにあたって、OpenShift Localのインストール先サーバとしてRHEL 9(非GUIサーバ)を使用しておりブラウザアクセスができないため、別のWindows端末からアクセスすることにします。アクセスするためには追加設定が必要ですが、ここでは手軽にWindows端末のhostsファイルを編集し名前解決することで対応します。

メモ帳を管理者として実行し、C:\Windows\System32\drivers\etc\hostsを開き、以下の記述を追記します(xxx.yyy.zzz.wwwはRHEL 9のIPアドレス)。

RHEL 9のファイアウォール設定でhttpsが許可されていない場合は許可します。

ocコマンドを使ってみる

ocコマンドは、OCPクラスタの操作やアプリのデプロイ、管理を行うためのCLIツールです。

以下、crc startコマンドの実行結果に記載されている手順を基に、ocコマンドを使う準備をします。

ocコマンドへのパスを通す

crcコマンドと同様、ocコマンドもデフォルトではPATHが通っていないためPATHを通します。

OpenShiftクラスタの認証

oc loginコマンドを実行すると、OpenShiftクラスタへAPIアクセスするための認証トークンを取得します。

現在のユーザを表示すると、認証できていることが確認できます。

アプリケーションのデプロイ

本章では、OpenShift環境にアプリケーションとしてNGINX(OSSのWebサーバ)をデプロイしてみます。

プロジェクトの作成

はじめに、アプリケーションをデプロイするためのプロジェクトを作成します。

作成したプロジェクトは以下のコマンドで確認できます。

コンテナイメージのデプロイ

次に、作成したプロジェクトにNGINXのコンテナイメージ(アプリケーション)をデプロイします。oc new-appコマンドを実行すると、必要なリソースが自動生成され、1コマンドでデプロイが完了します。

なお、oc new-appコマンドの実行時に指定したコンテナイメージは、Red Hat Ecosystem Catalogに登録されているもので、具体的にはRed Hat Hardened Images nginxという名称のイメージです。

oc get allコマンドを実行すると、自動生成されたリソース(Deployment/Service/Pod)などを確認できます。

アプリケーションの外部公開

前節の作業でアプリケーションのデプロイは完了しましたが、外部からはアクセスできない状態です。そのため、外部アクセスできるように設定します。

外部公開ルートの追加

oc exposeコマンドで、デプロイしたアプリケーションへ外部からアクセスできるようにします。

oc get routeコマンドで確認したホスト名に対してcurlコマンドでHTTPリクエストを送信すると、NGINXアプリケーションからの応答を確認できます。

ネットワーク設定の追加

現状の設定では、CRC VMに直接アクセスできるのはホストOS(本記事ではRHEL 9)のみのため、OpenShiftのWebコンソールと同様、別のWindows端末からWebサーバ(NGINX)にアクセスできるようにします。

まずは、ホストOS(RHEL 9)側の設定を行います。

以下のパッケージをインストールします。

パッケージ名概要目的
haproxyリバースプロキシ、ロードバランサなどリバースプロキシとして、ホストOSの80/443/6443番ポートでリッスンし、CRC VMの同ポートに転送
/usr/sbin/semanageSELinux管理ツールHAProxyが6443番ポートでリッスンすることを許可(デフォルトでは非標準ポートのバインドがSELinuxによって制限される)

パッケージのインストールには、以下のコマンドを実行します。

次に、ファイアウォール設定で80/443/6443番ポートの通信を許可します。

SELinuxについて、6443番ポートの通信を許可します。

HAProxyを設定します。

HAProxyを起動します。

以下の作業は、Windows端末で実施します。

メモ帳を管理者として実行し、C:\Windows\System32\drivers\etc\hostsを開き、以下の記述を追記します(xxx.yyy.zzz.wwwはRHEL 9のIPアドレス)。

Windows端末のブラウザにhttp://nginx-nginx-demo.apps-crc.testingと入力すると、以下の画面が表示されます。

OpenShift Localの停止

OpenShift Localを停止させたい場合は、crc stopコマンドを実行します。本コマンドにより、OpenShiftクラスタ、CRC VMの順に停止され、CPU/メモリが解放されます。

crc statusコマンドを実行し、リソースが停止したことを確認します。

再度OpenShift Localを起動したい場合は、crc startコマンドを実行します。

以上、ここまで。

この記事を書いた人

目次