第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 が削除され、アップグレード中にメトリクスおよびイベントを配信できなくなります。

手順

  1. Operator をアップグレードする前にこのパラメーターを削除する必要があるため、現在の ServiceTelemetry オブジェクトを取得して clouds パラメーターなどの内容をメモします。

    $ oc get stf default -oyaml
  2. ServiceTelemetry オブジェクトを変更して、clouds パラメーターを消去し、空の一覧に設定します。cloudsRemoveOnMissingtrue に設定して、すべての Smart Gateways を削除します。

    警告

    このコマンドは、アップグレードが完了して clouds オブジェクトが再定義されるまで、すべての監視機能を停止します。デフォルトの clouds 設定を使用した場合、Service Telemetry オブジェクトには定義されません。

    $ oc patch stf default --patch $'spec:\n  clouds: []\n  cloudsRemoveOnMissing: true' --type=merge
  3. 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
    ...
  4. 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
  5. 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
  6. Smart Gateway Operator ClusterServiceVersion を取得します。

    $ oc get csv -o name | grep -E 'smart-gateway'
    
    clusterserviceversion.operators.coreos.com/smart-gateway-operator.v2.2.1623675667
  7. 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
  8. Smart Gateway Custom Resource Definition を削除します。

    $ oc delete crd smartgateways.smartgateway.infra.watch
    
    customresourcedefinition.apiextensions.k8s.io "smartgateways.smartgateway.infra.watch" deleted
  9. 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
  10. 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
  11. 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
  12. ServiceTelemetry オブジェクトを編集し、先ほどメモした clouds パラメーターの内容を挿入します。デフォルトの Smart Gateway インスタンスを使用しているため、clouds パラメーターが定義されていない場合は、clouds: [] パラメーターを削除します。

    $ oc edit stf default
  13. 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