2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Turbonomic ARMをIBM Cloud Internet Service(CIS)経由で動かす

Last updated at Posted at 2021-12-19

#はじめに
Turbonomic ARMはIBMが提供しているアプリケーションリソース管理ソフトウェアです。
(ソフトウェアの機能は本稿では割愛します。こちらの記事がおすすめです。)

Openshift環境にソフトウェアを導入する標準の手順と、
カスタムドメイン、証明書を用いてCIS経由でアクセスする前提での導入手順について記載します。
管理系ソフトウェアなので、インターネット経由でアクセスすることはあまりないとは思いますが、何かの参考になれば幸いです。

#環境情報

  • IBM CloudのOpenshift環境(ROKS)
  • OCPバージョン 4.8
  • Turbonomicのバージョンは8.3.3(検証時のバージョン)
    • Log4jの脆弱性の問題で現在は8.4.1以降を推奨
  • クライアント端末からoc loginができること

本手順の流れ

  1. 環境設定
  2. Turbonomic Platform Operatorのインストール
  3. Turbonomicインスタンスの作成
  4. 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.pemcert.keyには有効な署名済み証明書と鍵を指定します。CIS側での設定は割愛しますが、これでCIS経由でのアクセスが可能となります。

おわりに

本手順はCLI中心でなるべくコピペでいけるようにしました。
ドキュメントの情報は色々と散在しているので最初は導入に苦労しがちですが、さっと導入して、ぜひソフトウェアの中身を知る時間を増やしてもらえたらと思います。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?