IBM TechXchange AIOps Group Japan

AIOps Group Japan

当ユーザーグループは、AIOps製品(Instana, Turbonomic, Cloud Pak for Watson AIOps, IBM SevOne NPM, Flexera One with IBM Observability, IBM Workload Scheduler等)

 View Only

IBM Turbonomic | Kubernetes管理の為のkubeturbo導入手順(YAML展開版)

By Yohei Nakajima posted Sun November 09, 2025 11:45 PM

  
本記事は以下Qiitaの記事を転載しております。

https://qiita.com/YoHey/items/7a826e1f200a98820f78

はじめに

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

Try it outをクリックします
image.png

マニュアルに記載の通り、以下をBodyへコピペし、Executeを押下

{
  "clientName": "turbo",
  "grantTypes": [
    "client_credentials"
  ],
  "clientAuthenticationMethods": [
    "client_secret_post"
  ],
  "scopes": [
    "role:PROBE_ADMIN"
  ],
  "tokenSettings": {
    "accessToken": {
      "ttlSeconds": 600
    }
  }
}

image.png

ここで返されたclientIdとclientSecretを記録下さい。
image.png

取得したクレデンシャルを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が自動的にターゲット構成に追加された事を確認下さい。

image.png

以上です、お疲れ様でした!

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

0 comments
1 view

Permalink