はじめに
Turbonomicでkubeturboを導入するにはいくつかの方法がありますが、本資料では最も汎用的なYAMLファイルからの導入手順について紹介します。
Kubernetesクラスタへの接続
- ユーザーインターフェースによるKubeturboのデプロイ
- YAMLによるKubeturboのデプロイ ### 本資料のご紹介手順
- Helm チャートリポジトリの Helm チャートによる Kubeturbo のデプロイ
- GitHub リポジトリの Helm チャートによる Kubeturbo のデプロイ
- オペレータを介したKubeturboのデプロイ
YAMLによるKubeturboのデプロイ
Turbonomic側の認証情報を準備する
まずkubeturboがTurbonomicに接続する際の資格情報を準備します。
マニュアルは以下部分をご参照下さい。
https://www.ibm.com/docs/ja/tarm/8.17.0?topic=requirements-turbonomic-instance-credentials-kubeturbo
以下Step by stepで実際の手順をご紹介します。
まずお手元のTurbonomicの以下URLへアクセスします
https://{your_instance_address}/swagger/#/Authorization/createClient
例:https://192.168.30.21/swagger/#/Authorization/createClient
マニュアルに記載の通り、以下をBodyへコピペし、Executeを押下
{
"clientName": "turbo",
"grantTypes": [
"client_credentials"
],
"clientAuthenticationMethods": [
"client_secret_post"
],
"scopes": [
"role:PROBE_ADMIN"
],
"tokenSettings": {
"accessToken": {
"ttlSeconds": 600
}
}
}
ここで返されたclientIdとclientSecretを記録下さい。

取得したクレデンシャルをBase64へエンコードします。(任意のLinux端末などをご利用下さい)
エンコードされたそれぞれの文字列を記録下さい。
$ echo dacfef8d-8307-4d12-9605-b19a4476962a | base64
ZGFjZmVmOGQtODMwNy00ZDEyLTk2MDUtYjE5YTQ0NzY5NjJhCg==
$
$
$ echo aSKpqw1ZH8By7Od5gQxy3JT9khKIZWrXXJIEt4ol02fzynzZ8AZlQx1qcXfoVX5Y | base64
YVNLcHF3MVpIOEJ5N09kNWdReHkzSlQ5a2hLSVpXclhYSklFdDRvbDAyZnp5bnpaOEFabFF4MXFj
WGZvVlg1WQo=
$
管理対象KubernetesクラスタへkubeturboのYAMLをデプロイする
Kubeturbo をデプロイするには、以下のタスクを実行します。
Kubeturbo 役割の YAML リソースをダウンロードします。
一般的には以下の2つの権限が利用可能です。
①turbo-cluster-admin カスタム役割
このカスタム・ロールは、Kubeturboがワークロードを監視し、ワークロードを最適化するためにTurbonomicが生成したアクションを実行するために必要な最小限の権限を指定します。
②turbo-cluster-reader カスタム役割
このカスタム役割は、最も特権が低い役割です。 Kubeturbo がワークロードをモニターするために必要な最小限の権限を指定します。 これらのワークロードを最適化するために Turbonomic が生成したアクションは、Turbonomic の外部 (たとえば、クラスタ内) でのみ実行できます。
この例では①turbo-cluster-admin カスタム役割をダウンロードします。
$ curl -O https://raw.githubusercontent.com/IBM/turbonomic-container-platform/master/kubeturbo/yamls/kubeturbo_least_admin_full.yaml
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 13890 100 13890 0 0 32529 0 --:--:-- --:--:-- --:--:-- 32453
$
YAML リソースを最小限の必須パラメーターで更新します。
ダウンロードした YAML リソースを更新します。 例えば、VS Code または viで YAML リソースを更新できます。 このタスクを実行する前に、必ず Turbonomic インスタンスの 資格情報 をセットアップして記録してください。
重要:
ダウンロードした YAML リソースには、以下のデフォルト値が指定されています。
名前空間- turbo
シークレット- turbonomic-credentials
Kubeturboとそのすべてのリソースを専用のネームスペース(デフォルトのネームスペースは turbo )にデプロイすることをお勧めします。
それぞれ以下の項目を編集します。
turboServer パラメータを更新する。TurbonomicのIPアドレスやFQDNを記載下さい。
"turboServer": "https://192.168.30.21"
targetName パラメータを更新する。こちらはTurbonomic上で表示されるk8sのクラスタ名となります。任意の名前で構いません。
"targetName":"k8s_local_01"
image パラメータを更新する。このバージョンの表記は、Turbonomic側のバージョンに併せて記載下さい。
image: icr.io/cpopen/turbonomic/kubeturbo:8.14.6
Turbonomic接続用の認証情報として、先に取得したBase64 clientId と clientSecret を指定します。
なお、base64でエンコードした際、改行が入っている可能性がありますが、その際は改行を削除し、1行で全ての文字列を繋げて記載します。
clientid: ZGFjZmVmOGQtODMwNy00ZDEyLTk2MDUtYjE5YTQ0NzY5NjJhCg==
clientsecret: YVNLcHF3MVpIOEJ5N09kNWdReHkzSlQ5a2hLSVpXclhYSklFdDRvbDAyZnp5bnpaOEFabFF4MXFjWGZvVlg1WQo=
YAML リソースをクラスターにデプロイします。
このタスクを実行すると、Kubeturbo がクラスターにデプロイされ、Kubeturbo ポッドが開始されます。
$ kubectl apply -f kubeturbo_least_admin_full.yaml
namespace/turbo created
serviceaccount/turbo-user created
secret/turbonomic-credentials created
clusterrole.rbac.authorization.k8s.io/turbo-cluster-admin created
clusterrolebinding.rbac.authorization.k8s.io/turbo-all-binding-kubeturbo-turbo created
configmap/turbo-config created
deployment.apps/kubeturbo created
$
デプロイメントを検証します。
名前空間:turboでkubeturboが起動したことを確認します。
$ kubectl get pods -n turbo
NAME READY STATUS RESTARTS AGE
kubeturbo-67564c466f-zl6kw 1/1 Running 0 67s
$
ログの末尾を確認し、初期Discoveryが正常終了している事を確認します。
$ kubectl logs kubeturbo-67564c466f-zl6kw -n turbo | tail -3
I1024 14:39:42.547968 1 k8s_discovery_client.go:321] Skip processing action policies for non-OpenShift cluster
I1024 14:39:42.547992 1 k8s_discovery_client.go:331] Successfully discovered kubernetes cluster in 27.356 seconds
I1024 14:39:42.556690 1 remote_mediation_client.go:384] Discovery has finished for 148:FULL
$
TurbonomicのUIへログインし、追加したkubeturboが自動的にターゲット構成に追加された事を確認下さい。
以上です、お疲れ様でした!
FAQ
Q.Turbonomicのバージョンを上げたらkubeturboのバージョンはどうなる?
A.Turbonomicのバージョンアップが完了した後、kubeturboのバージョンもアップグレードが必要になります。その際は、YAMLファイルで記載したTurbonomicのバージョンの箇所を更新し、再apply頂く事になります。
image: icr.io/cpopen/turbonomic/kubeturbo:8.14.6
2025/11/4 追記:
10月末リリースの最新版8.17.6以降では自動アップグレードがサポートされました!
詳しくは以下ブログをご参照下さい :)
https://community.ibm.com/community/user/blogs/murtuza-mukadam/2025/10/28/one-click-updates-kubeturbo-prometurbo
Q.Kubernetes環境がインターネット接続出来ないので、プライベートレポジトリを使用したい。
A.以下マニュアルの箇所をご参照下さい。
https://www.ibm.com/docs/ja/tarm/8.17.0?topic=yaml-importing-kubeturbo-container-images-private-repository


