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コンソールを用いて確認します。
アプリケーション管理の基礎
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を追加しています。この演習ではクラスタのスケールアップとスケールダウンを行います。
replicas数を2にしてMachineSetをスケーリング Machineがプロビジョニングされnodeが使用可能な状態になる スケールアップしたMachineSetのreplicas数を2から1にスケールダウン MachineSetが消去されnodeも削除される
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で稼働する
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
EFKに関連するPodやPVC
OpenShift Monitoring
OpenShift Monitoring 機能について学びます。
- Alertingの構成の確認
- Metrics UIでPromQL (Prometheuses Query Language) クエリの実行
- Dashboards UI (Grafana)のアクセスとリソースの表示
クラスタのメータリング
Operator Meteringは、クラスタ全体でリソースがどのように使用されたかを提供するチャージバックおよびReportのツールです。WebコンソールからMetering Operatorをデプロイして、スケジュールに従ったレポート作成やワンタイムのレポート作成を行います。
- OperatorHubからMetering Operatorのデプロイ
- Meteringインスタンスをインストール
- インストールの確認
- Reportの作成
プロジェクトのクォータ
デフォルトではプロジェクト内で使用できるオブジェクトの数やリソース(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日ご利用いただく前提で提供しています。