第6章 Service Telemetry Framework のバージョン 1.3 へのアップグレード
Service Telemetry Framework (STF) 1.2 から STF 1.3 に移行するには、Red Hat OpenShift Container Platform 環境の service-telemetry
名前空間の ClusterServiceVersion
および Subscription
オブジェクトを置き換える必要があります。
前提条件
- Red Hat OpenShift Container Platform 環境を 4.7 にアップグレードしている。STF 1.3 は、Red Hat OpenShift Container Platform 4.5 以前で実行されません。STF 1.2 は、Red Hat OpenShift Container Platform 4.7 以降では実行されません。
-
環境をアップグレードする前にデータのバックアップを作成している。STF 1.2 を 1.3 にアップグレードすると、Smart Gateway のアップグレード中に短時間停止が生じます。さらに、Operator の置き換え中には、
ServiceTelemetry
およびSmartGateway
オブジェクトへの変更は加えられません。
STF 1.2 から 1.3 にアップグレードするには、以下の手順を実行します。
6.1. Service Telemetry Framework 1.2 Operator の削除
STF 1.2、Smart Gateway Operator、および Service Telemetry Operator から Operator を削除します。
API インターフェイスに変更が加えられたため、clouds
パラメーターを一時的に削除する必要があります。これにより、アップグレードの完了後にすべての Smart Gateway が削除され、アップグレード中にメトリクスおよびイベントを配信できなくなります。
手順
Operator をアップグレードする前にこのパラメーターを削除する必要があるため、現在の
ServiceTelemetry
オブジェクトを取得してclouds
パラメーターなどの内容をメモします。$ oc get stf default -oyaml
ServiceTelemetry オブジェクトを変更して、
clouds
パラメーターを消去し、空の一覧に設定します。cloudsRemoveOnMissing
をtrue
に設定して、すべての Smart Gateways を削除します。警告このコマンドは、アップグレードが完了して
clouds
オブジェクトが再定義されるまで、すべての監視機能を停止します。デフォルトの clouds 設定を使用した場合、Service Telemetry オブジェクトには定義されません。$ oc patch stf default --patch $'spec:\n clouds: []\n cloudsRemoveOnMissing: true' --type=merge
Smart Gateway Pod が完全に終了して削除されるまで監視します。
$ oc get pods --selector app=smart-gateway --watch NAME READY STATUS RESTARTS AGE default-cloud1-ceil-meter-smartgateway-58cc854f4-hgk92 1/1 Running 0 2m42s default-cloud1-coll-meter-smartgateway-6c76f9786d-crn9b 2/2 Running 0 2m55s default-cloud1-coll-meter-smartgateway-6c76f9786d-crn9b 2/2 Terminating 0 3m12s default-cloud1-ceil-meter-smartgateway-58cc854f4-hgk92 1/1 Terminating 0 3m ...
Smart Gateway Operator の
Subscription
名を取得します。$ oc get sub smart-gateway-operator-stable-1.2-redhat-operators-openshift-marketplace NAME PACKAGE SOURCE CHANNEL smart-gateway-operator-stable-1.2-redhat-operators-openshift-marketplace smart-gateway-operator redhat-operators stable-1.2
Smart Gateway Operator サブスクリプションを削除します。
$ oc delete sub smart-gateway-operator-stable-1.2-redhat-operators-openshift-marketplace subscription.operators.coreos.com "smart-gateway-operator-stable-1.2-redhat-operators-openshift-marketplace" deleted
Smart Gateway Operator ClusterServiceVersion を取得します。
$ oc get csv -o name | grep -E 'smart-gateway' clusterserviceversion.operators.coreos.com/smart-gateway-operator.v2.2.1623675667
Smart Gateway Operator ClusterServiceVersion を削除します。
$ oc delete clusterserviceversion.operators.coreos.com/smart-gateway-operator.v2.2.1623675667 clusterserviceversion.operators.coreos.com "smart-gateway-operator.v2.2.1623675667" deleted
Smart Gateway Custom Resource Definition を削除します。
$ oc delete crd smartgateways.smartgateway.infra.watch customresourcedefinition.apiextensions.k8s.io "smartgateways.smartgateway.infra.watch" deleted
stable-1.3 チャネルを使用するように Service Telemetry Operator Subscription をパッチします。
$ oc patch sub service-telemetry-operator --patch $'spec:\n channel: stable-1.3' --type=merge subscription.operators.coreos.com/service-telemetry-operator patched
Smart Gateway Operator がインストールされ、Service Telemetry Operator がバージョン 1.2 および 1.3 の
Pending
になるまでoc get csv
コマンドの出力を監視します。$ oc get csv NAME DISPLAY VERSION REPLACES PHASE amq7-cert-manager.v1.0.0 Red Hat Integration - AMQ Certificate Manager 1.0.0 Succeeded amq7-interconnect-operator.v1.2.4 Red Hat Integration - AMQ Interconnect 1.2.4 amq7-interconnect-operator.v1.2.3 Succeeded elastic-cloud-eck.v1.6.0 Elasticsearch (ECK) Operator 1.6.0 elastic-cloud-eck.v1.5.0 Succeeded prometheusoperator.0.47.0 Prometheus Operator 0.47.0 prometheusoperator.0.37.0 Succeeded service-telemetry-operator.v1.2.1623675667 Service Telemetry Operator 1.2.1623675667 Pending service-telemetry-operator.v1.3.1622734200 Service Telemetry Operator 1.3.1622734200 service-telemetry-operator.v1.2.1623675667 Pending smart-gateway-operator.v3.0.1622734308 Smart Gateway Operator 3.0.1622734308 Succeeded
Service Telemetry Operator v1.2 ClusterServiceVersion を削除します。
$ oc delete csv service-telemetry-operator.v1.2.1623675667 clusterserviceversion.operators.coreos.com "service-telemetry-operator.v1.2.1623675667" deleted
ServiceTelemetry オブジェクトを編集し、先ほどメモした
clouds
パラメーターの内容を挿入します。デフォルトの Smart Gateway インスタンスを使用しているため、clouds
パラメーターが定義されていない場合は、clouds: []
パラメーターを削除します。$ oc edit stf default
Smart Gateway が復元されていることを確認します。
$ oc get pods --selector app=smart-gateway NAME READY STATUS RESTARTS AGE default-cloud1-ceil-meter-smartgateway-6484b98b68-sl7mb 2/2 Running 0 5m56s default-cloud1-coll-meter-smartgateway-799f687658-nfzr6 2/2 Running 0 6m6s