はじめに
本記事では、こちらの記事を参考に、IBM TurbonomicとRed Hat OpenShiftを連携させる手順を、初心者目線で解説しました。
手順の流れ
- 接続情報確認
- OpenShiftにログイン
- turbo project作成
- スクリプトダウンロード
- スクリプトをBastionに転送
- スクリプト実行
- デプロイ確認
前提知識
Bastionサーバー
[あなたのPC] --SSH接続--> [Bastion Server] --内部アクセス--> [OpenShift Cluster]
↑
直接アクセス不可
Bastionサーバーとは、Openshiftにアクセスするための踏み台サーバーのことです。
プロジェクト(namespace)
OpenShift Cluster
├── turbo Namespace
│ ├── Kubeturbo Pod
│ ├── ServiceAccount
│ └── ConfigMap
├── app1 Namespace
│ └── Application Pods
└── app2 Namespace
└── Application Pods
Openshiftでのプロジェクトは、Kubernetesクラスタ内の論理的な区画であるnamespaceと同じと考えていいです。
接続情報確認
以下の情報を事前に確認しておきます。
| 項目 | 説明 | 例 |
|---|---|---|
| OpenShift API URL | クラスタのAPIエンドポイント | https://api.cluster.example.com:6443 |
| ユーザー名 | OpenShiftのログインユーザー | kubeadmin |
| パスワード | OpenShiftのログインパスワード | xxxxx-xxxxx-xxxxx-xxxxx |
| Bastion SSH | Bastionサーバーへの接続情報 | ssh user@bastion.example.com -p 10022 |
| Bastion パスワード | Bastionサーバーのパスワード | xxxxxxxxxx |
Openshift側での事前準備
Step 1: OpenShiftクラスタにログイン
Bastionサーバーにログイン後、以下のコマンドでOpenShiftクラスタに接続します。
# OpenShiftにログイン
oc login https://api.cluster.example.com:6443 \
-u kubeadmin \
-p your-password \
--insecure-skip-tls-verify
# 接続確認
oc whoami
# 出力: kubeadmin
oc cluster-info
--insecure-skip-tls-verifyは開発環境でのみ使用してください。本番環境では適切な証明書を設定してください。
Step 2: turbo Project(Namespace)の作成
Kubeturboをデプロイするための専用namespaceを作成します。
# turboプロジェクト(namespace)作成
oc new-project turbo --display-name="Turbonomic Integration"
# 確認
oc project
# 出力: Using project "turbo" on server "https://..."
補足
-
oc new-project turbo= namespace(プロジェクト)を作成 - OpenShiftでは
namespaceとprojectは同じ概念 - このコマンドで
turboという名前のnamespaceが作成され、自動的にそこに切り替わります
以上で、Openshift側での事前準備が終了しました。すでにプロジェクトがある方は不要です。
Turbonomicとの連携
Step 3: スクリプトのダウンロード(ローカルPC)
Turbonomicとの連携は、UIベースで進められます。ターゲット構成からOpenshiftを選択し、スクリプトダウンロードまで進めましょう。

任意のクラスタ名と、ステップ2で作成したプロジェクト(namespaceと同意)を指定します。

Turbonomicの自動化を最大限活用するために、Optimizeを選択します。

以前はTurbonomicのバージョンアップに合わせてkubernetesのバージョンアップも必要でしたが、現在はここのバージョン管理が自動でできるようになっています。(もちろん自己管理も可能。)
Turbonomic UIからデプロイ用スクリプトをダウンロードします。
Step 4: スクリプトをBastionサーバーに転送
ローカルPCで、TurbonomicUIからダウンロードしたスクリプトをOpenshiftのBastionサーバーに転送します。
ローカルPCで新しいターミナルを開いて実行します。
# ダウンロードしたスクリプトを転送
scp -P 10022 \
~/Downloads/kubernetes-ocp-cluster.sh \
user@bastion.example.com:~/turbo/
# パスワード入力プロンプトが表示されます

Bastionサーバーで、ファイルが転送されていることが確認できました。
Step 5: スクリプト実行
Bastionサーバーでスクリプトを実行します。
# turboディレクトリに移動
cd ~/turbo
# ファイル確認
ls -la kubernetes-ocp-cluster.sh
# 実行権限付与と実行
chmod +x kubernetes-ocp-cluster.sh && ./kubernetes-ocp-cluster.sh

無事、デプロイされました。
スクリプトを実行することによって、Kubeturbo Podとサービスアカウントやロール、その他監視で必要なリソースが生成される。
そして、Kubetorboがサービスアカウントを使ってクラスタ全体を監視できるようになっています。

Step 6: デプロイ確認
デプロイが正常に完了したか確認します。
# Pod状態確認
oc get pods -n turbo
# 期待される出力:
# NAME READY STATUS RESTARTS AGE
# kubeturbo-xxxxxxxxx-xxxxx 1/1 Running 0 2m
# すべてのリソース確認
oc get all -n turbo
# ログ確認
oc logs -n turbo -l app=kubeturbo --tail=100


実際にnamespaceがturboのpodsが起動していることと、Turbonomic UIでターゲット接続が完了していることが確認できました。
おわりに
今回は、TurbonomicとOpenshiftの連携を行いました。連携自体はUIベースで簡単でした!Openshiftがどういう仕組みで動いているのかの理解に役立ちました。
また、連携をおこなったことでOpenshift上のリソースの管理はできそうですが、実際にUIでどういうふうに見えるのかについてもまた見ていきたいと思います!