Red Hat OpenShift Platform 4 ハンズオンワークショップ紹介 〜オプション編〜

OpenStackを中心にCloud製品を担当しているソリューションアーキテクトの輿水です。

「Red Hat OpenShift 4 Ops基礎編」「Red Hat OpenShift Container Storage編」をざっくり紹介しましたが、更に理解を深めたい方のためにオプションの演習が用意されています。OpenShiftの環境を運用管理する際に必要と考えられる項目です。

演習で実施する項目(選択制)

  • OpenShiftクラスタのインストールの検証
  • アプリケーション管理の基礎
  • MachineSets・Machines・Nodesについて
  • OpenShift infra node
  • OpenShift ログ集約
  • OpenShift Monitoring
  • クラスタのメータリング
  • プロジェクトのクォータ
  • OpenShift の Network Policy ベースの SDN
  • Taint と Toleration

OpenShiftクラスタのインストールの検証

演習ではOpenShift環境が既にInstaller-provisioned infrastructure (IPI)でインストールされているので、新たなインストールは実施しません。インストール完了後に生成されているファイルや情報についてocツールやWebコンソールを用いて確認します。

f:id:mkoshimizu:20201223230019p:plain

アプリケーション管理の基礎

ocツールを使用してサンプルアプリケーションをデプロイし、OpenShift Container Platform上でのコアコンポーネントやオブジェクト、アプリケーション管理の基本について学習します。「Ops基礎編」と重複する部分もありますが、PodやServiceの関連やyamlファイル内の記載に関する内容について詳しく説明しています。

  • アプリケーションのデプロイ方法
  • PodやServiceについての説明
  • PodやServiceのyamlファイルの詳細情報の見方
  • ReplicationControllersについて
  • DeploymentConfigurationについて
  • ReplicatonControllerとDeploymentConfigの関連性
  • アプリケーションのスケーリング
  • アプリケーションのセルフヒーリング
  • Routeについて

MachineSets・Machines・Nodesについて

nodeはコンテナがオーケストレーションされ実行される場所です。OpenShift 4においてnodeの作成と削除を含め、クラスターサイズをメンテナンスするために利用されるMachineSetとMachineについて学びます。「Storage編」の中でもこれらを利用してOCS用のnodeを追加しています。この演習ではクラスタのスケールアップとスケールダウンを行います。

f:id:mkoshimizu:20201224102145p:plain replicas数を2にしてMachineSetをスケーリング f:id:mkoshimizu:20201224102207p:plain Machineがプロビジョニングされnodeが使用可能な状態になる f:id:mkoshimizu:20201224102238p:plain スケールアップしたMachineSetのreplicas数を2から1にスケールダウン f:id:mkoshimizu:20201224102310p:plain MachineSetが消去されnodeも削除される f:id:mkoshimizu:20201224102400p:plain

OpenShift infra node

クラスターの運用管理に必要なコンポーネントが稼働するmaster nodeとユーザーのアプリケーションが稼働するworker nodeがあります。OpenShiftでは運用管理コンポーネントのいくつかを稼働させるinfra nodeという役割があります。演習ではOpenShiftのinfra nodeを追加し、routerやregistryなどの運用管理コンポーネントを通常のworker nodeからinfra nodeの役割を持つnodeに移動する操作を行います。それまで稼働していたPodが終了し、新しいPodが起動してくる状況を確認できます。

OpenShiftの運用管理コンポーネント

  • kubernetesとOpenShiftのcontrol plane services ("masters")
  • router
  • container image registry
  • cluster metrics collection ("monitoring")
  • cluster aggregated logging
  • service brokers

routerがinfra nodeで稼働するよう指示するnodeSelector設定を適用することでrouterがinfra nodeで稼働する f:id:mkoshimizu:20201224110359p:plain

OpenShift ログ集約

OpenShift機能の一つに、実行中の環境とアプリケーションからログを収集して集約する機能があり、Elasticsearch、Fluentd、Kibana(EFK)によるログ集約のソリューションが含まれています。デフォルトではインストールされていないため、先述のinfra nodeにCluster Logging インスタンスを作成し構成する演習を行います。※infra nodeを作っておく必要があります

  • 独自のネームスペースopenshift-loggingを作成する
  • Elasticsearch と Cluster Logging Operator をクラスターにインストールする
  • Logging CustomResource (CR) インスタンスを作成する
  • Logging インストールを確認する
    • Kibana にアクセスする
    • Kibana を使ってクエリを行う

インストールされたElasticsearch と Cluster Logging Operator f:id:mkoshimizu:20201224103421p:plain

EFKに関連するPodやPVC f:id:mkoshimizu:20201224104625p:plain

OpenShift Monitoring

OpenShift Monitoring 機能について学びます。

  • Alertingの構成の確認
  • Metrics UIでPromQL (Prometheuses Query Language) クエリの実行
  • Dashboards UI (Grafana)のアクセスとリソースの表示

f:id:mkoshimizu:20201224111642p:plain

クラスタのメータリング

Operator Meteringは、クラスタ全体でリソースがどのように使用されたかを提供するチャージバックおよびReportのツールです。WebコンソールからMetering Operatorをデプロイして、スケジュールに従ったレポート作成やワンタイムのレポート作成を行います。

  • OperatorHubからMetering Operatorのデプロイ
  • Meteringインスタンスをインストール
  • インストールの確認
  • Reportの作成

f:id:mkoshimizu:20201224113023p:plainf:id:mkoshimizu:20201224113103p:plainf:id:mkoshimizu:20201224113129p:plainf:id:mkoshimizu:20201224113146p:plain

プロジェクトのクォータ

デフォルトではプロジェクト内で使用できるオブジェクトの数やリソース(CPU、メモリなど)を制限しません。ResourceQuota と LimitRangeを利用してプロジェクトにクォータを適用する方法を学びます。

クラスタリソースのクォータ

プロジェクト単位ではなく、クラスターにクォータを設定する方法を学びます。

  • ユーザーごとのクォータの設定
  • Labelによるクォータ

OpenShift の Network Policy ベースの SDN

OpenShiftはOpen vSwitch をベースにしたSDNを持っています。Network Policy ベースのアクセス制御を理解するために、NetworkPolicy カスタムリソース (CR) を利用することで異なるプロジェクト間でのアクセスを制限を行います。

Taint と Toleration

infra nodeを利用した際にnodeSelector を使用してワークロードを配置する場所を制御しました。これに対して、特定のnodeにワークロードを配置しないといった要求に対して、Taintと Tolerationを使用してワークロードを制御する方法を実施します。


ざっくりと項目を並べましたが、node追加などでは処理されるまでの待ち時間もあるため、Ops基礎編・Storage編で2〜3時間程度、オプションも実施すると1日がかりになるくらいのボリュームがあります。ワークショップ環境は1日ご利用いただく前提で提供しています。

* 各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。