1.11.4.4. Red Hat OpenShift Service Mesh のバージョン 1.1 からバージョン 2.0 への移行
バージョン 1.1 から 2.0 にアップグレードするには、ワークロードおよびアプリケーションを新規バージョンを実行する Red Hat OpenShift Service Mesh の新規インスタンスに移行する手動の手順が必要です。
前提条件
- OpenShift Container Platform 4.7 にアップグレードしてから Red Hat OpenShift Service Mesh 2.0 にアップグレードする必要があります。
- Red Hat OpenShift Service Mesh のバージョン 2.0 Operator が必要です。自動 アップグレードパスを選択した場合、Operator は最新情報を自動的にダウンロードします。ただし、Red Hat OpenShift Service Mesh バージョン 2.0 で機能を使用するために実行する必要のある手順があります。
1.11.4.4.1. Red Hat OpenShift Service Mesh のアップグレード
Red Hat OpenShift Service Mesh をアップグレードするには、新規の namespace に Red Hat OpenShift Service Mesh ServiceMeshControlPlane
2.0 リソースのインスタンスを作成する必要があります。次に、設定後にマイクロサービスアプリケーションおよびワークロードを古いメッシュから新規のサービスメッシュに移動します。
手順
v1
ServiceMeshControlPlane
リソース設定をチェックし、これが有効であることを確認します。以下のコマンドを実行して、
ServiceMeshControlPlane
リソースを v2 リソースとして表示します。$ oc get smcp -o yaml
-
無効なフィールドについての情報は、出力の
spec.techPreview.errored.message
フィールドを確認してください。 - v1 リソースに無効なフィールドがある場合、リソースは調整されず、v2 リソースとして編集することはできません。v2 フィールドへの更新はすべて、元の v1 設定で上書きされます。無効なフィールドを修正するには、リソースの v1 バージョンを置き換えるか、パッチを適用するか、または編集できます。リソースを修正せずに削除することもできます。リソースの修正後に調整でき、リソースの v2 バージョンを変更または表示できます。
ファイルを編集してリソースを修正するには、
oc get
を使用してリソースを取得し、テキストファイルをローカルで編集し、リソースを編集したファイルに置き換えます。$ oc get smcp.v1.maistra.io <smcp_name> > smcp-resource.yaml #Edit the smcp-resource.yaml file. $ oc replace -f smcp-resource.yaml
パッチを使用してリソースを修正するには、
oc patch
を使用します。$ oc patch smcp.v1.maistra.io <smcp_name> --type json --patch '[{"op": "replace","path":"/spec/path/to/bad/setting","value":"corrected-value"}]'
コマンドラインツールで編集してリソースを修正するには、
oc edit
を使用します。$ oc edit smcp.v1.maistra.io <smcp_name>
Service Mesh コントロールプレーン設定をバックアップします。
ServiceMeshControlPlane
リソースが含まれるプロジェクトに切り替えます。この例では、istio-system
が Service Mesh コントロールプレーンプロジェクトの名前です。$ oc project istio-system
以下のコマンドを実行して、現在の設定を取得します。<smcp_name> は
ServiceMeshControlPlane
リソースのメタデータに指定されます (例:basic-install
またはfull-install
)。$ oc get servicemeshcontrolplanes.v1.maistra.io <smcp_name> -o yaml > <smcp_name>.v1.yaml
ServiceMeshControlPlane
を、開始点としての設定についての情報が含まれる v2 のコントロールプレーンバージョンに変換します。$ oc get smcp <smcp_name> -o yaml > <smcp_name>.v2.yaml
プロジェクトを作成します。OpenShift Container Platform コンソールの Project メニューで、
New Project
をクリックし、プロジェクトの名前 (例:istio-system-upgrade
) を入力します。または、CLI からこのコマンドを実行できます。$ oc new-project istio-system-upgrade
-
v2
ServiceMeshControlPlane
のmetadata.namespace
フィールドを新規のプロジェクト名で更新します。この例では、istio-system-upgrade
を使用します。 -
version
フィールドを 1.1 から 2.0 に更新するか、または v2ServiceMeshControlPlane
でこれを削除します。 新規 namespace に
ServiceMeshControlPlane
を作成します。コマンドラインで以下のコマンドを実行し、取得したServiceMeshControlPlane
の v2 バージョンでコントロールプレーンをデプロイします。この例では、`<smcp_name.v2> ` をファイルへのパスに置き換えます。$ oc create -n istio-system-upgrade -f <smcp_name>.v2.yaml
または、コンソールを使用して Service Mesh コントロールプレーンを作成することもできます。OpenShift Container Platform Web コンソールで、 Project をクリックします。次に、入力したプロジェクト名を選択します。
-
Operators
Installed Operators をクリックします。 - Create ServiceMeshControlPlane をクリックします。
-
YAML view を選択し、取得した YAML ファイルのテキストをフィールドに貼り付けます。
apiVersion
フィールドがmaistra.io/v2
に設定されていることを確認し、metadata.namespace
フィールドを新規 namespace (例:istio-system-upgrade
) を使用するように変更します。 - Create をクリックします。
-
Operators