#はじめに
Turbonomic ARMはIBMが提供しているアプリケーションリソース管理ソフトウェアです。
(ソフトウェアの機能は本稿では割愛します。こちらの記事がおすすめです。)
Openshift環境にソフトウェアを導入する標準の手順と、
カスタムドメイン、証明書を用いてCIS経由でアクセスする前提での導入手順について記載します。
管理系ソフトウェアなので、インターネット経由でアクセスすることはあまりないとは思いますが、何かの参考になれば幸いです。
#環境情報
- IBM CloudのOpenshift環境(ROKS)
- OCPバージョン
4.8
- Turbonomicのバージョンは
8.3.3
(検証時のバージョン)- Log4jの脆弱性の問題で現在は
8.4.1
以降を推奨
- Log4jの脆弱性の問題で現在は
- クライアント端末から
oc login
ができること
本手順の流れ
- 環境設定
- Turbonomic Platform Operatorのインストール
- Turbonomicインスタンスの作成
- Routeの作成
1. 環境設定
まずネームスペースを作成します。
#Turbonomic用Namespace
oc new-project turbonomic
次にクラスタロールとクラスタロールバインディングを作成します。
oc create -f https://raw.githubusercontent.com/turbonomic/t8c-install/master/operator/deploy/cluster_role.yaml
oc create -f https://raw.githubusercontent.com/turbonomic/t8c-install/master/operator/deploy/cluster_role_binding.yaml
SCC (Security Context Constraints)の設定を行います。
oc adm policy add-scc-to-group anyuid system:serviceaccounts:turbonomic
こちらを参考にsa.scc.uid-range
の値を確認します。
oc describe project turbonomic
2. Turbonomic Platform Operatorのインストール
OpenshiftコンソールのOperatorHubからTurbonomic Platform Operatorをインストールします。
もしくは、以下のコマンドを実行します。
cat << EOF | oc apply -f -
apiVersion: operators.coreos.com/v1
kind: OperatorGroup
metadata:
name: turbonomic-og
namespace: turbonomic
spec:
targetNamespaces:
- turbonomic
---
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
name: t8c-certified
namespace: turbonomic
spec:
channel: stable
installPlanApproval: Automatic
name: t8c-certified
source: certified-operators
sourceNamespace: openshift-marketplace
startingCSV: t8c-operator.v42.4.0
EOF
startingCSVは省略しても大丈夫だと思いますが、最新のOperatorのバージョンは以下で確認できます。
3. Turbonomicインスタンスの作成
OpenshiftコンソールのインストールされたOperatorからTurbonomic Platform Operatorのインスタンス(Xl-release)を作成します。
もしくは、以下のコマンドを実行します。
※必要な機能を含めるためにコンソールのフォームビューで機能確認後、
YAMLビューでパラメータを確認することをお勧めします。
cat << EOF | oc apply -f -
apiVersion: charts.helm.k8s.io/v1
kind: Xl
metadata:
namespace: turbonomic
name: xl-release
spec:
global:
storageClassName: ibmc-vpc-block-metro-10iops-tier #1
repository: registry.connect.redhat.com/turbonomic
securityContext:
fsGroup: 1000690000 #2
externalArangoDBName: arangodb
tag: 8.3.3 #3
customImageNames: false
actionscript:
enabled: true
aws:
enabled: true
instana:
enabled: true
kubeturbo:
enabled: true
nginx:
httpsRedirect: false #4
nginxIsPrimaryIngress: false
nginxingress:
enabled: true
openshiftingress:
enabled: false #5
EOF
#1 ストレージクラスはRWOのみでOK。ただし、Workerノードが複数のAZにまたがる場合は、volumeBindingMode: WaitForFirstConsumer
が設定されたストレージクラスを使用する必要があります。
#2 事前に確認したsa.scc.uid-range
の値を設定します。
#3 tag
でインストールするTurbonomicのバージョンを指定します。冒頭で記載した通り、現状では8.4.1
以降を推奨します。
#4 デフォルトはtrue
になっており、httpはhttpsにリダイレクトされます。独自の証明書を使用するなど、前段でHTTPSを終端する場合はfalse
に設定する。設定しない場合、リダイレクトループが発生してしまいます。
#5 こちらのWikiによると、今回の環境では、openshiftingress: enabled: true
となるが、CIS経由での通信がうまくいかなかったため、false
としました。
4. Routeの作成
Turbonomicをインストールするとデフォルトでnginxという名前のサービスが作成されます。openshiftingress: enabled: true
の場合はそこへパススルーするRouteも自動的に生成されますが、今回の設定では自動生成されないため、手動で作成します。
oc create route edge nginx \
--service=nginx \
--hostname='turbonomic-url.example.com' \
--port='http-nginx' \
--cert='cert.pem' \
--key='cert.key' \
--insecure-policy='Redirect'
hostname
には独自ドメインのTurbonomicのURLを指定し、cert.pem
とcert.key
には有効な署名済み証明書と鍵を指定します。CIS側での設定は割愛しますが、これでCIS経由でのアクセスが可能となります。
おわりに
本手順はCLI中心でなるべくコピペでいけるようにしました。
ドキュメントの情報は色々と散在しているので最初は導入に苦労しがちですが、さっと導入して、ぜひソフトウェアの中身を知る時間を増やしてもらえたらと思います。