使用云原生API网关实现蓝绿、金丝雀发布及AB实验 云原生API网关以托管的方式来做流量入口,提供丰富的流量治理能力,支持多种服务发现方式,如容器服务、MSE Nacos、固定地址和DNS域名,并以统一的模型支持服务版本以及灰度发布能力。本文介绍基于容器服务K8s发现机制来实践服务发布策略。 前提条件 了解蓝绿部署、A/B测试以及金丝雀发布机制。详细信息,请参见 服务发布策略。 已具备云容器引擎CCE实例,参见 创建一个CCE应用集群。 已完成云原生API网关创建,具体操作,请参见创建网关实例。 部署服务 容器内部署服务 首先在容器内部署两个版本的服务,两个版本的Deployment分别挂到reviewsv1和reviewsv2服务下: plaintext apiVersion: v1 kind: Service metadata: name: reviewsv1 labels: workloadKind: Deployment workloadName: reviewsv1 spec: ports: port: 9080 targetPort: 9080 name: http selector: app: reviews version: v1 apiVersion: apps/v1 kind: Deployment metadata: name: reviewsv1 spec: replicas: 1 selector: matchLabels: name: reviewsv1 template: metadata: labels: app: reviews version: v1 name: reviewsv1 source: CCE spec: containers: name: reviews image: 'registryvpccrs' imagePullPolicy: IfNotPresent env: name: LOGDIR value: "/tmp/logs" volumeMounts: name: tmp mountPath: /tmp name: wlpoutput mountPath: /opt/ibm/wlp/output volumes: name: wlpoutput emptyDir: {} name: tmp emptyDir: {} apiVersion: v1 kind: Service metadata: name: reviewsv2 labels: workloadKind: Deployment workloadName: reviewsv2 spec: ports: port: 9080 targetPort: 9080 name: http selector: app: reviews version: v2 apiVersion: apps/v1 kind: Deployment metadata: name: reviewsv2 spec: replicas: 1 selector: matchLabels: name: reviewsv2 template: metadata: labels: app: reviews version: v2 name: reviewsv2 source: CCE spec: containers: name: reviews image: 'registryvpccrs' imagePullPolicy: IfNotPresent env: name: LOGDIR value: "/tmp/logs" volumeMounts: name: tmp mountPath: /tmp name: wlpoutput mountPath: /opt/ibm/wlp/output volumes: name: wlpoutput emptyDir: {} name: tmp emptyDir: {}