Istio on GKE のアップグレード

このガイドには、特定のアップグレード手順を含むリリースのアップグレードに関する注意が掲載されています。このガイドに記載されていないアップグレードの場合は、何もする必要はありません。

Istio 1.1.3 からのアップグレード

Istio on GKE アドオン バージョン 1.1.3-gke.0 には、最小数である PodDisruptionBudget(PDB)の定義が構成されています。使用可能なレプリカが 1 以上になるようにしてください。バージョン 1.1.7-gke.0 以降、この要件はなくなりました。ただし、この PDB をインストールすると、PDB に違反する場合は他のバージョンにアップグレードできなくなります。つまり、1.1.3-gke.0 からバージョン 1.1.x(1.1.7-gke.0 など)のバージョンにアップグレードするには、まずすべての Istio HorizontalPodAutoscaler リソースの minReplicas 値を 2 以上に増やす必要があります。そうしない場合、PodDisruptionBudget に違反するためアップグレードは失敗します。

Istio 1.1 へのアップグレード

GKE クラスタを 1.0.x から 1.1.x にアップグレードする前に、構成が 1.1 と互換性があることを確認してください。Istio 1.1 で次の変更を行う場合、下位非互換性生じる可能性があり、動作不良や予期しない動作を避けるため、構成の更新が必要になる場合があります。構成を確認するには、アップグレード スクリプトを実行することをおすすめします。

アノテーションを介した TLS 動作のオーバーライド

1.0 では、アノテーションによって TLS ポリシーを変更します。1.1 では、これらのアノテーションは機能しないため、代わりに Policy と DestinationRule を構成する必要があります。詳しくは、Istio のドキュメントをご覧ください。

アップグレード プロセス

Istio ドキュメントの説明に従って、アノテーションを Policy と DestinationRule に置き換えます。この変更は、1.0 の構成には影響しません。1.1 にアップグレードしても以前のアノテーションはには影響がないため、古いアノテーションを削除することも、そのまま残すことも可能です。

RbacConfig から ClusterRbacConfig への名称変更

RbacConfig CRD の名前が ClusterRbacConfig に変更されました。スキーマは変更されません。

アップグレード プロセス

すべての RbacConfig CR に同一の ClusterRbacConfig CR を作成します。

宛先ルールの優先度

サービスに対するサイドカー ルーティング中に、サイドカーと同じ名前空間にあるターゲット サービスの宛先ルールが優先されます。次に、サービスの名前空間内の宛先ルール、最後に、他の名前空間の宛先ルールが続きます(該当する場合)。

アップグレード プロセス

DestinationRules を確認して、同じターゲット サービス用の複数の名前空間にルールがあるかどうかを確認します。そうなっていた場合、ルールを詳細に調べてルールの動作を確認し、望ましい動作に対して適切な優先順位が適用されるようにします。