TurbonomicによるOpenShiftの管理（kubeturbo導入手順例）

今回はOpenShiftをTurbonomic管理対象に追加する手順についてご紹介します。

### 手順例
マニュアルについては[こちら](https://www.ibm.com/docs/ja/tarm/8.15.x?topic=targets-connecting-red-hat-openshift-clusters)を参照下さい。

:::note info
kubeturboの導入方法としては、①Turbonomicのユーザーインターフェースを起点とする方法と、②OCP側のOperatorHubを起点とする方法が記載されていますが、本資料では①Turbonomicのユーザーインターフェースを起点とする方法をご紹介しています。（①の場合、各種パラメータの指定が自動化されており、作業内容としても簡単でお勧めです）
:::
設定 -> ターゲットの追加よりOpenShiftを選択し、画面の指示に従って進めます。



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3082344/db36a616-f659-4bc3-9180-451c44d3ea55.png)

任意のクラスタ名を追加し、次へ。（ここのクラスタ名は、あくまでTurbonomicの管理上の名称であり、任意の名前で差し支えありません）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3082344/181b8251-c3ad-45fd-88a2-24b640c88020.png)

次に、Turbonomicが管理する際の権限を指定。**オプティマイズ**を選択する事で、推奨アクションを生成し、さらに実行まで可能となります。
単にモニタリング（推奨アクションの提示）までに留めたい場合は、**モニター**も選択可能です。

:::note info
自動化の恩恵を受ける為にも可能な限りオプティマイズを推奨します。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3082344/3048a436-3488-4bab-a286-a92d6a6aecad.png)

次に **プライベート・コンテナ・イメージレポジトリ**、及び**プロキシー**については環境に応じて設定。（特に指定が無ければ空白でOKです）
最終的に**スクリプトをダウンロードして実行する**の画面で、kubeturbo導入のスクリプトがダウンロード可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3082344/369407b3-579b-464b-8128-6de1d5569d7a.png)

ダウンロードしたスクリプトを管理対象となるOCP環境へのアクセスが可能（ocコマンドが実行可能）なLinux環境へコピーの上、実行権を付与して実行。

```
[user@rhel-1-206 work]$ oc project turbo  ### "turbo"プロジェクトへ移動
Now using project "turbo" on server "https://api.ocp.home.lab:6443".
[user@rhel-1-206 work]$ 
[user@rhel-1-206 work]$ ./ocp-cluster.sh  ### ダウンロードしたスクリプトを実行
Here is the summary for the current installation:


---------            ---------           
Parameter            Value               
---------            ---------           
Mode                 Create/Update       
Kubeconfig           /home/user/work/auth/kubeconfig
Host                 https://192.168.30.5
Namespace            turbo               
Target Name          ocp-cluster         
Target Subtype       RedHatOpenShift     
Role                 turbo-cluster-admin 
Version              8.15.6              
Auto-Update          false               
Auto-Logging         false               
Proxy Server         false               
Private Registry     false               


Please confirm the above settings [Y/n]:    ### Yで進める
Y
Info: Your current Kubernetes context is set to the following:
NAME                                          CLUSTER                    AUTHINFO                                NAMESPACE 
turbo/api-ocp-home-lab:6443/system:admin      api-ocp-home-lab:6443      system:admin/api-ocp-home-lab:6443      turbo     
Please confirm if the script should work in the above cluster [Y/n]:    ### Yで進める
Y
:
＜中略＞
:
Successfully apply Kubeturbo in turbo namespace!
NAME                        SECRETS   AGE
serviceaccount/turbo-user   1         27s

NAME                                     READY   STATUS    RESTARTS   AGE
pod/kubeturbo-release-5c6b9f568c-r2dsq   1/1     Running   0          27s

NAME                                READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/kubeturbo-release   1/1     1            1           27s

NAME                                       DATA   AGE
configmap/turbo-config-kubeturbo-release   2      27s
Done!   ### 正常に完了した事を確認
[user@rhel-1-206 work]$ 
```

正常にスクリプトが完了し、OpenShiftがターゲットに登録された事を確認。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3082344/89fcdbba-762b-40bd-bc5c-f2c63ac0ab16.png)

OpenShift側にもインストール済みのOperatorとしてKubeturboが登録されている事を確認。

:::note info
スクリプトからの登録であっても、実体はOperatorを操作し、Turbonomicとの接続に必要なパラメータを自動的に付与しています。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3082344/bd5e3650-1a84-486a-965a-4e2eef8d04a5.png)



以上、Kubeturboの導入が完了し、OpenShiftの各種リソースの管理が可能となりました。


### OCP環境の確認例：

標準ダッシュボードでも確認可能ですが、特にOCP環境のみを抽出したい場合は、検索機能で**コンテナプラットフォーム**を表示させ、対象環境を選択の上、**範囲**をクリックする事で、関連リソースのみの表示が可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3082344/00ce67b1-fe29-4d1e-93c4-af27252b48b5.png)

#### 特定のOCP環境のみを表示した状態：
この例では、OCP環境を構築するインフラとしてVMwareを利用しており、そちらもTurbonomicの監視対象に含まれている為、OCPの環境配下に、ホストとして物理ESXサーバが存在し、仮想マシンとして3台のワーカーノード（実体はESXサーバ上の仮想マシン）まで自動的にマッピングされている事が確認出来ます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3082344/0dc0c104-fe1d-47c3-964e-82c338ae13d5.png)

#### OpenShift Virtualizationの仮想マシンのみを抽出したい場合：
8.15.6以降でサポートされたOCP Virtの仮想マシンを抽出する際は、
検索 -> コンテナーポッド -> フィルター -> タグ | Equal | IsVirtualMachineInstance | true を選択頂く事で、OCP Virtの仮想マシンのみを抽出する事も可能です。

:::note info
OCP環境の仮想マシンは、Turbonomicの抽象化によって、広義ではpodの一部の様な扱いとなりますが、実体は仮想マシンとなる為、**IsVirtualMachineInstance**というタグで判別するものとなります。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3082344/511d3287-66e8-41e4-8bde-1e85a16026e2.png)

仮想マシンのみが抽出された例：

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3082344/f8deb874-6fb0-4525-bdf5-49fcde6f1ed8.png)


### まとめ
今回はOpenShift環境へのkubeturboの導入手順などをご紹介させて頂きました。

従来、kubeturboの導入に際しては、helmチャートやyamlでの個別導入、Openshiftに限ってはOperatorの操作による導入手順など、いくつかパターンがありましたが、現在は他の管理対象と同様に、TurbonomicのUIの指示に沿うことでシンプルな導入が可能になった事がお分かり頂けたのではないかと思います。
（スクリプトを走らせる必要はありますが、以前は複数の設定ファイルにそれぞれ異なるパラメータを手動で入力する必要がありましたので、それに比べればかなり簡単な手順でご利用可能になったのでは？と思います）

もしこれまでKubernetes/OpenShiftの管理にハードルを感じていた様であれば、是非お試し頂ければと思います。