6.3 Kubernetesクラスタの最新Enterprise Editionへのアップグレード

Oracle Databaseを使用して前のリリースにトランザクション・ログを格納する場合にのみ、次のステップを実行して、Transaction Manager for Microservices Enterprise Editionの最新リリースにアップグレードします。Kubernetesクラスタで次のステップを実行します。

MicroTxコーディネータは、メイン・コンテナで実行されます。アップグレード・プロセスの一環として、MicroTxはKubernetes初期化コンテナを作成します。Kubernetes初期化コンテナは、ポッドで実行される特殊なコンテナです。Kubernetes初期化コンテナが起動し、アップグレードの前提条件ステップを完了し、MicroTxコーディネータをアップグレードします。その後、アップグレードが終了すると終了します。メイン・コンテナでも使用されるMicroTxイメージが使用されます。https://kubernetes.io/docs/concepts/workloads/pods/init-containers/を参照してください。

前提条件

次のシナリオでは、この項の手順を使用しないでください:

  • 必要な権限をデータベース・ユーザーに付与できない場合、または初期化プロセスを実行できない場合。このようなシナリオでは、データベース管理者はSQLスクリプトを実行してデータベースをアップグレードする必要があります。「SQLスクリプトを使用した最新Enterprise Editionへのアップグレード」を参照してください。
  • トランザクション・ログを以前のリリースのTransaction Manager for Microservices Enterprise Editionに格納するためにetcdまたは内部メモリーを使用した場合。
  • MicroTx Freeの最新リリースにアップグレードする場合。
  • DockerまたはDocker SwarmでMicroTxをアップグレードする場合。Dockerは、Kubernetesクラスタでのみ使用可能な初期化コンテナ機能をサポートしていません。Docker環境でアップグレードするには、独立したコンテナで初期化プロセスを実行する必要があります。「Dockerの最新Enterprise Editionへのアップグレード」または「Docker Swarmの最新Enterprise Editionへのアップグレード」を参照してください。
Transaction Manager for Microservices Enterprise Editionの最新リリースにアップグレードするには:
  1. 開始する前に、MicroTxトランザクション・コーディネータをメンテナンス・モードで実行して、キャッシュされたデータをバックアップします。「キャッシュされたメンテナンス・データのバックアップ」を参照してください。
  2. ストアド・プロシージャを作成して実行する権限をデータ・ストア・ユーザーに付与します。このタスクは、Oracle Databaseをデータ・ストアとして使用する場合にのみ実行します。「ストアド・プロシージャを実行するための権限の付与」を参照してください。
  3. データベース管理者でない場合は、このタスクを実行するために必要な次の権限があることを確認してください。
    • EXECUTE
    • INSERT
    • SELECT
    • UPDATE
    • DELETE
    • CREATE
    • ALTER

    MicroTxは、これらの権限を使用してアップグレードを処理します。

  4. ファイルをダウンロードして、MicroTxの最新リリースをインストールします。「インストール・バンドルのダウンロード」を参照してください。

    MicroTxの以前のバージョンのインストーラ・ファイルは上書きしないでください。

    トランザクション・コーディネータの最新イメージは、installation_directory/otmm-24.4/otmm/image/tmm-24.4.tgzにあります。次のステップでは、このファイルを使用して、既存のトランザクション・コーディネータ・イメージを更新します。

  5. トランザクション・コーディネータ・イメージをローカル・リポジトリにロードし、イメージにタグ付けしてからイメージをプッシュします。「リモートDockerリポジトリへのイメージのプッシュ」を参照してください。
  6. values.yamlファイルのコピーを作成し、values1.yamlという名前を付けます。values1.yamlファイルを、リポジトリ内の最新のトランザクション・コーディネータ・イメージの名前で更新します。最新の機能を使用する場合は、これらの機能を使用するために必要なタスクを完了し、プロパティ値でYAMLファイルを更新します。「values.yamlファイルの構成」を参照してください。
  7. installation_directory/otmm-24.4/otmm/image/tcs.yamlにあるtcs.yamlファイルのKubernetes初期化コンテナのプロパティ値を更新します。独自のHelmチャートを作成してMicroTxをアップグレードする場合は、このファイルを参照として使用します。次のコード・スニペットは、サンプル値を示しています。ご自身の環境に基づいて値を指定してください。
    {{- if .Values.tmmConfiguration.storage.db }}
          {{- if eq .Values.tmmConfiguration.storage.type "db" }}
          initContainers:
            - name : {{ printf "init-%s" .Values.tmmConfiguration.tmmAppName }}
              image: {{ .Values.tmmImage.image }}
              securityContext:
                runAsUser: 1337
              volumeMounts:
                - name: config-volume
                  mountPath: /etc/config
                {{- if .Values.tmmConfiguration.storage.db.walletConfigMap.configMapName }}
                - name: wallet-volume
                  mountPath: /etc/config/dbwallet
                {{- end }}
              env:
                - name: CONFIG_MAP_PATH
                  value: /etc/config
                - name: INIT_CONTAINER_ENABLED
                  value: "True"
                {{- if .Values.tmmConfiguration.storage.db.credentialSecretName }}
                - name: STORAGE_DB_CREDENTIAL
                  valueFrom:
                    secretKeyRef:
                      key: secret
                      name: {{ .Values.tmmConfiguration.storage.db.credentialSecretName }}
                {{- end }}
          {{- end }}
          {{- end }}
    パラメータ 説明
    securityContext:
                runAsUser: 1337
    Istioサービス・メッシュでKubernetes初期化コンテナを使用する場合、Istioではサポートされていないため、Kubernetes初期化コンテナは送信ネットワーク・コールを送信できません。Kubernetes初期化コンテナが送信ネットワーク・コールを送信できるようにするには、セキュリティ・コンテキストを指定する必要があります。https://istio.io/latest/docs/setup/additional-setup/cni/#compatibility-with-application-init-containersを参照してください。
    INIT_CONTAINER_ENABLED Kubernetes初期化コンテナの作成を有効にするには、これをTrueに設定します。
  8. 次のコマンドを実行して、アップグレードを完了します。

    構文

    helm upgrade <release name> --namespace <namespace> <chart directory> --values <path_to_updated_values.yaml>

    次のサンプル・コマンドは、otmmネームスペースのtmm-appという名前のMicroTxアプリケーションをアップグレードします。

    helm upgrade tmm-app --namespace otmm tmm/ --values tmm/ee/values1.yaml

    説明

    • tmm-appは、MicroTxアプリケーションの名前です。
    • otmmは、MicroTxをインストールしたKubernetesクラスタ内のネームスペースです。
    • installation_directory/otmm-24.4/otmm/helmcharts/tmmは、MicroTxchart.yamlファイルを含むフォルダです。
    • installation_directory/otmm-24.4/otmm/helmcharts/tmm/ee/values1.yamlは、ローカル・マシン内のvalues1.yamlファイル(アプリケーションの更新されたマニフェスト・ファイル)の場所です。このファイルには、MicroTxの更新されたデプロイメント構成の詳細が含まれています。

初期化プロセスが失敗した場合は、Docker Swarmコンテナのログを確認してから、SQLスクリプトを実行してOracle Databaseをアップグレードします。「SQLスクリプトを使用した最新Enterprise Editionへのアップグレード」を参照してください。