流量转移¶
前提条件¶
- 已安装 Dubbo 控制平面的 Kubernetes 集群
- 已配置 kubectl 以访问集群
部署¶
1. 创建命名空间¶
2. 部署服务¶
将 63% 的流量分配到 v1,37% 的流量分配到 v2:
cat <<EOF | kubectl apply -f -
apiVersion: networking.dubbo.apache.org/v1alpha3
kind: MeshService
metadata:
name: nginx-routing
namespace: app
spec:
hosts:
- nginx.app.svc.cluster.local
routes:
- service:
- name: v1
host: nginx.app.svc.cluster.local
labels:
version: v1
port:
number: 80
weight: 63
- name: v2
host: nginx.app.svc.cluster.local
labels:
version: v2
port:
number: 80
weight: 37
EOF
xclient 使用逐请求选路,不再先算好固定数量再批量发送。
先在一个终端持续发请求;另一个终端里创建 MeshService 权重。同一个 xclient 进程会继续使用同一条 xDS stream,后续请求会按新权重切换。