カナリアデプロイメントは、新バージョンのサービスを安全に展開するための手法です。Istioを使うと、パーセント指定でのトラフィック分割により、少量のトラフィックのみ新バージョンのサービスに流すことが可能です。その後、カナリア分析(レイテンシやエラー率のチェックなど)を実行しつつ、最終的に新バージョンのサービスが全てのトラフィックを受け付けるようになるまで、新バージョンのサービスへのトラフィックを段階的に増やしていくことが可能です。
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: helloworld
spec:
hosts:
- helloworld
http:
- route:
- destination:
host: helloworld
subset: v1
weight: 90
- destination:
host: helloworld
subset: v2
weight: 10
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: helloworld
spec:
host: helloworld
subsets:
- name: v1
labels:
version: v1
- name: v2
labels:
version: v2