OpenShift Service Mesh 3.0 is a Technology Preview feature only
Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process. This documentation is a work in progress and might not be complete or fully tested.1.2. InPlace ストラテジーについて
InPlace
ストラテジーでは、コントロールプレーンのリビジョンが常に 1 つだけ実行されます。InPlace
更新を実行すると、すべてのワークロードがすぐに新しいバージョンのコントロールプレーンに接続されます。サイドカーとコントロールプレーン間の互換性を確保するために、一度にマイナーバージョンを 2 つ以上超えてアップグレードすることはできません。
1.2.1. InPlace strategy の選択
InPlace
ストラテジーを選択するには、Istio リソースの spec.updateStrategy.type
の値を InPlace
に設定します。
InPlace 更新ストラテジーを選択する仕様例
kind: Istio spec: updateStrategy: type: InPlace
この値は、リソースを最初に作成するときに設定することも、後でリソースを編集することもできます。リソースを作成後に編集する場合は、Istio コントロールプレーンを更新する前に変更を行ってください。
1.2.2. ワークロードのコントロールプレーンへのアタッチ
Istio が InPlace
ストラテジーを使用するように設定されていると、Operator が作成する IstioRevision
リソースは常に Istio リソースと同じ名前になります。InPlace
ストラテジーを使用してデプロイされたコントロールプレーンにワークロードを接続するには、istio.io/rev
namespace ラベルを IstioRevision
の名前に設定します。
メッシュにワークロードをアタッチする istio.io namespace ラベルの例
$ oc label namespace <namespace-name> istio.io/rev=<revision-name>
または、deployment リソース内の Pod テンプレートを変更して、ワークロード Pod にラベルを適用することもできます。
メッシュにワークロードを割り当てる Pod テンプレートの例
apiVersion: apps/v1 kind: Deployment spec: template: metadata: labels: istio.io/rev: <revision-name> spec:
リビジョン名が default
の場合、namespace または Pod に istio-injection: enabled
のラベルを付けることで、ワークロードをリビジョンにアタッチできます。
ワークロードをメッシュにアタッチする istio-injection ラベルの例
oc label namespace <namespace-name> istio-injection=enabled
1.2.3. InPlace 更新の実行
InPlace
ストラテジーを使用して Istio を更新する場合は、一度に 1 つだけ上のマイナーバージョンに更新できます。複数のマイナーバージョンで更新する場合は、各更新後にバージョンを増分し、ワークロードを再起動する必要があります。これにより、サイドカーのバージョンとコントロールプレーンのバージョンとの互換性が確保されます。すべてのワークロードが再起動されると、更新プロセスが完了します。
前提条件
-
Red Hat OpenShift Service Mesh に
cluster-admin
としてログインしている。 - Red Hat OpenShift Service Mesh Operator をインストールし、Istio がデプロイされている。
手順
Istio リソースのバージョンを変更します。
kind: Istio spec: version: 1.20.2 updateStrategy: type: InPlace
Service Mesh Operator は、コントロールプレーンの古いバージョンを置き換える新しいバージョンのコントロールプレーンをデプロイします。サイドカーは新しいコントロールプレーンに自動的に再接続します。
次のコマンドを入力して、コントロールプレーンの新しいバージョンが実行中で、準備ができていることを確認します。
$ oc get istio <control-plane-name>
以下のコマンドを入力して、新しいバージョンのサイドカーが挿入されるように、アプリケーションのワークロードを再起動します。
$ oc rollout restart <deployment-name>