TimesTenオペレータのアップグレード

TimesTenオペレータを新しいリリースにアップグレードできます。ネームスペース内にデプロイ済のTimesTenClassicまたはTimesTenScaleoutオブジェクトがある場合は、アップグレードを実行できます。

ネームスペースのTimesTenオペレータをアップグレードするには、新しいリリースのttoperatorチャートを使用します。

この例では、TimesTenリリース22.1.1.19.0から22.1.1.20.0にアップグレードします。TimesTenリリースの詳細は、『Oracle TimesTen In-Memory Databaseインストレーション、移行およびアップグレード・ガイド』リリース番号の概要を参照してください。

以前にnew_kube_filesディレクトリを作成し、TimesTenオペレータ・ディストリビューションの新しいリリースをこのディレクトリに解凍したとします。

ttoperatorチャートには、ネームスペース内のTimesTenオペレータをアップグレードするために必要なすべての情報が含まれます。チャートには、TimesTenオペレータの新しいリリースをデプロイするためのデフォルト構成が含まれています。また、デフォルトのコンテナ・イメージがアップグレード先のイメージでない場合は、ttoperatorのチャートのデフォルトのimage変数を変更して、新しいコンテナ・イメージを参照できます。たとえば、新しいリリースのデフォルトのコンテナ・イメージがcontainer-registry.oracle.com/timesten/timesten/22.1.1.20.0で、かわりに新しく構築されたphx.ocir.io/youraccount/tt2211200image:2コンテナ・イメージを使用する場合は、image変数を次のように変更します。
image: 
  repository: phx.ocir.io/youraccount/tt2211200image
  tag: "2"

TimesTenオペレータを新しいリリースにアップグレードする方法を示す例を順を追って説明します。この例では、phx.ocir.io/youraccount/tt2211200image:2コンテナ・イメージを使用することを前提としています。

この例では、カスタマイズされたYAMLファイルを使用して、新しいリリースを含むコンテナ・イメージを定義します。カスタマイズしたYAMLファイルのnew_kube_files/helm/customyamlディレクトリを以前に作成したとします。

  1. ネームスペースにデプロイされているTimesTenオペレータによって必要なイメージが実行されていることを確認します。

    ポッドを確認します。

    kubectl get pods                            NAME                                  READY   STATUS    RESTARTS   AGE
    samplettc-0                           3/3     Running   0          14h
    samplettc-1                           3/3     Running   0          14h
    timesten-operator-65ddf9cfbb-jkqbn    1/1     Running   0          15h
    

    TimesTenオペレータが想定したイメージを実行していることを確認します。

    kubectl get pod timesten-operator-65ddf9cfbb-jkqbn -o yaml | grep image

    出力。

        image: phx.ocir.io/youraccount/tt2211190image:1
        imagePullPolicy: Always
    ...

    TimesTenオペレータは必要なイメージを実行しています。「TimesTenオペレータのインストール」を参照してください。

  2. 開発ホストで、新しいリリースのhelmディレクトリに変更します。
    cd new_kube_files/helm

    このディレクトリには、チャートの新しいリリースが含まれます。helmディレクトリの詳細は、「環境の設定」を参照してください。

  3. 新しいコンテナ・イメージを参照するYAMLファイルを作成します。
    vi customyaml/upgradeoperator.yaml
    
    image:
      repository: phx.ocir.io/youraccount/tt2211200image
      tag: "2"
    imagePullSecrets:
      - name: sekret
    カスタマイズは次のとおりです。
    • 構築してアップグレードに使用するコンテナ・イメージはphx.ocir.io/youraccount/tt2211200image:2であるため、repository変数の値はphx.ocir.io/youraccount/tt2211200imageで、tag変数の値は2です。

    • イメージ・プル・シークレットはsekretです。

  4. TimesTenオペレータ・リリースの名前を確認します。
    helm list
    出力。
    NAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                   APP VERSION
    samplettc       mynamespace     1               2023-10-23 23:18:03.740512897 +0000 UTC deployed        ttclassic-2211190.1.0   22.1.1.19.0
    samplettop      mynamespace     1               2023-10-23 23:04:40.492890589 +0000 UTC deployed        ttoperator-2211190.1.0  22.1.1.19.0
    ttcrd           mynamespace     2               2023-10-24 16:00:21.530832896 +0000 UTC deployed        ttcrd-2211200.1.0       22.1.1.20.0

    helm listコマンドは、samplettopリリースが存在し、ネームスペースにインストールされていることを示します。TimesTenオペレータのインストールの詳細は、「TimesTenオペレータのインストール」を参照してください。

  5. TimesTenオペレータを新しいリリースにアップグレードします。TimesTenオペレータをアップグレードするには、新しいリリースのttoperatorチャートを使用し、新しいイメージを参照するカスタマイズされたYAMLファイルを使用します。
    helm get values samplettop --all > prev-values-ttop.yaml && helm upgrade -f prev-values-ttop.yaml -f customyaml/upgradeoperator.yaml  samplettop ./ttoperator 
    次のhelm upgradeコマンドを見てみましょう。
    • get values samplettop Helmコマンドは、既存のカスタマイズを含む現在のリリースの値を取得します。このコマンドの結果は、prev-values-ttop.yamlファイルにパイプされます。このファイルには任意の名前を選択できます。

    • helm upgradeコマンドは、カスタマイズされたupgradeoperator.yamlファイルとともにprev-values-ttop.yamlファイルを使用してアップグレードを実行します。

    ノート:

    この構文をお薦めします。これにより、既存のカスタマイズが保持されます。

    helm upgradeコマンドの出力を見てみましょう。

    Release "samplettop" has been upgraded. Happy Helming!
    NAME: samplettop
    LAST DEPLOYED: Tue Oct 24 16:15:21 2023
    NAMESPACE: mynamespace
    STATUS: deployed
    REVISION: 2
    NOTES:
    Version 2211200.1.0 of the ttoperator chart has been installed.
    
    This release is named "samplettop".
    
    To learn more about the release, try:
    
      $ helm status samplettop
      $ helm get all samplettop
      $ helm history samplettop
    
    To rollback to a previous version of the chart, run:
    
      $ helm rollback samplettop <REVISION>
        - run 'helm history samplettop' for a list of revisions.
    
    To test the operator, run:
    
      $ helm test samplettop
    次の点に注目してください。
    • samplettopリリースはアップグレードされます。リリース・リビジョンは2です。

    • リリースのステータスはdeployedです。

    • ttoperatorチャートのversionは、22.1.1.20.0 TimesTenリリースに対応する2211200.1.0です。

  6. ネームスペースでTimesTenオペレータが実行されていることを確認します。
    kubectl get pods
    NAME                                  READY   STATUS    RESTARTS   AGE
    samplettc-0                           3/3     Running   0          17h
    samplettc-1                           3/3     Running   0          17h
    timesten-operator-767b8f9477-l297n    1/1     Running   0          2m53s
  7. TimesTenオペレータが新しいイメージを実行していることを確認します。
     kubectl get pod timesten-operator-767b8f9477-l297n -o yaml | grep image
    

    出力。

        image: phx.ocir.io/youraccount/tt2211200image:2
        imagePullPolicy: Always
    ...

    TimesTenオペレータは新しいイメージを実行しています。

  8. (オプション): ttoperatorリリースをテストします。
     helm test samplettop

    出力。

    NAME: samplettop
    LAST DEPLOYED: Tue Oct 24 16:15:21 2023
    NAMESPACE: mynamespace
    STATUS: deployed
    REVISION: 2
    TEST SUITE:     samplettop-ttoperator-test
    Last Started:   Tue Oct 24 16:32:15 2023
    Last Completed: Tue Oct 24 16:32:18 2023
    Phase:          Succeeded
    NOTES:
    Version 2211200.1.0 of the ttoperator chart has been installed.
    
    This release is named "samplettop".
    
    To learn more about the release, try:
    
      $ helm status samplettop
      $ helm get all samplettop
      $ helm history samplettop
    
    To rollback to a previous version of the chart, run:
    
      $ helm rollback samplettop <REVISION>
        - run 'helm history samplettop' for a list of revisions.
    
    To test the operator, run:
    
      $ helm test samplettop

    テストに成功しました。

おめでとうございます。ttoperatorチャートが正常にアップグレードされました。ネームスペースで実行されているTimesTenオペレータは、新しいイメージを使用しています。