第1章 Fuse Online のアップグレード
Fuse Online のアップグレードプロセスは、Fuse Online が Red Hat OpenShift Online または OpenShift Container Platform (OCP) にインストールされているかによって異なります。
- OpenShift Online - Fuse 7.8 がリリースされると、OpenShift Online 上の Fuse Online インフラストラクチャーが自動的にアップグレードされます。OpenShift Online で実行されている Fuse Online 統合のアップグレード の説明に従って、実行中の統合を再パブリッシュする必要があります。
OCP - オンサイトの OpenShift Container Platform で実行されている Fuse Online 環境をアップグレードするには、アップグレード前に Docker イメージにアクセスするの説明に従って、まず Fuse バックアップおよび復元データベースの Docker イメージ へのアクセスを設定する必要があります。
Fuse のアップグレード手順は、Fuse のインストール方法によって異なります。
- OperatorHub を使用して Fuse をインストールした場合は、OperatorHub を使用した Fuse のアップグレード を参照してください。
- インストールスクリプトを使用して Fuse をインストールした場合は、インストールスクリプトを使用した Fuse のアップグレード を参照してください。
統合をアップグレードするには、Camel Migration Considerations で説明されているように、Apache Camel の更新も検討する必要があります。
1.1. アップグレード前の Docker イメージへのアクセス
デフォルトでは、Fuse Online のアップグレードプロセスは、Fuse Online のバックアップおよび復元データベースの Docker イメージを、registry.redhat.io
からプルするのではなく、docker.io
レジストリーからプルします (既知の問題 https://issues.redhat.com/browse/ENTESB-15364 で説明されているように)。docker.io は
無料ダウンロードにサービス制限を課しているため、Fuse Online のアップグレードプロセスでバックアップのダウンロードとデータベースイメージの復元を試行すると、次のエラーが発生する可能性があります。
error: code = Unknown desc = toomanyrequests: You have reached your pull rate limit
Docker Hub のプルレート制限に関する詳細は、Docker のドキュメント (https://www.docker.com/increase-rate-limits) を参照してください。
Docker の制限によるエラーが発生しないようにするには、Fuse Online のアップグレードを開始する前に Docker イメージにアクセスできることを確認してください。Docker イメージにアクセスする方法は、お使いの OpenShift Container Platform (OCP) バージョンによって異なります。
- OCP 4.6 の場合は、OCP 4.6 での Docker イメージへのアクセス の説明にしたがって、Docker Hub クレデンシャルを既存の syndesis pull secret に追加します。Docker クレデンシャルを syndesis pull secret に追加すると、Docker Hub のアカウントタイプに応じて、API に対する Docker Hub の制限が引き上げられます。
-
OCP 3.11 の場合、OCP 3.11 での Docker イメージへのアクセス の説明に従って、Fuse Online バックアップをプルし、
docker.io
からデータベースイメージをローカルキャッシュに復元します。
1.1.1. OCP 4.6 での Docker イメージへのアクセス
Docker の制限エラーが発生しないようにするため、Fuse Online のアップグレードを開始する前に、Docker クレデンシャルを syndesis pull secret に追加します。
前提条件
OpenShift クラスターの管理者権限を持っている必要があります。
手順
Docker Hub クレデンシャルを既存の syndesis pull secret に追加するには、以下を行います。
管理者のクレデンシャルで OpenShift にログインします。
oc login -u system:admin
以下のコマンドを実行して、syndesis pull secret を取得します。
oc get secrets syndesis-pull-secret -o=custom-columns=SECRET:.data.* --no-headers | base64 -d | jq
このコマンドを実行すると、以下のような出力が返されます。ここで <AUTH> は base64 でエンコードされたユーザー名とパスワードに置き換えられます。
{ "auths":{ "registry.redhat.io":{ "username":"<AUTH>", "password":"<AUTH>", "auth":"<AUTH>" }, <You can have more auths elements here> } }
Docker Hub レジストリークレデンシャルを追加するには、pull secret を編集し、PULL_SECRET 変数に保存します。
PULL_SECRET=$(base64 -w 0 <<EOF { "auths":{ "registry.redhat.io":{ "username":"<AUTH>", "password":"<AUTH>", "auth":"<AUTH>" }, <You can have more auths elements here> }, "https://index.docker.io/v1/": { "auth": "<AUTH>" } } } EOF )
syndesis pull secret にパッチを適用するには、以下のコマンドを実行します。
oc apply -f - <<EOF apiVersion: v1 kind: Secret metadata: name: syndesis-pull-secret data: .dockerconfigjson: $PULL_SECRET type: kubernetes.io/dockerconfigjson EOF
次のステップ
- OperatorHub を使用して Fuse Online をインストールした場合は、OperatorHub を使用した Fuse Online のアップグレード を参照してください。
- インストールスクリプトを使用して Fuse Online をインストールした場合は、インストールスクリプトを使用した Fuse Online のアップグレード を参照してください。
1.1.2. OCP 3.11 での Docker イメージへのアクセス
Docker 制限エラーが発生するのを回避するには、OCP 3.11 で Fuse Online アップグレードプロセスを開始する前に、必要なイメージを docker.io
からローカルキャッシュにプルする必要があります。
前提条件
OpenShift クラスターの管理者権限を持っている必要があります。
手順
OpenShift ユーザー名と OpenShift クラスター URL を使用して OpenShift ノードにログインします。
ssh login <user>@node1.<clusterUrl>
ユーザー名とパスワードを使用して docker にログインします。
sudo docker login -u <username> -p <password> docker.io
PostgreSQL をプルする以下のコマンドを実行します。
sudo docker pull crunchydata/crunchy-pgdump:centos7-10.11-4.2.1 sudo docker pull crunchydata/crunchy-pgrestore:centos7-10.11-4.2.1 sudo docker pull centos:7
PostgreSQL イメージは、OpenShift ノードの内部 docker レジストリーにプルされます。
- 各 OpenShift ノードに、前述の 3 つのステップを実行します。
次のステップ
インストールスクリプトを使用した Fuse Online のアップグレード の手順にしたがって、Fuse Online をアップグレードします。