カナリアデプロイメント

カナリアデプロイメントは、新バージョンのサービスを安全に展開するための手法です。Istioを使うと、パーセント指定でのトラフィック分割により、少量のトラフィックのみ新バージョンのサービスに流すことが可能です。その後、カナリア分析(レイテンシやエラー率のチェックなど)を実行しつつ、最終的に新バージョンのサービスが全てのトラフィックを受け付けるようになるまで、新バージョンのサービスへのトラフィックを段階的に増やしていくことが可能です。

Diagram

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