在Kubernetes中,Service默认通过轮询(Round Robin)算法均衡流量到后端Pod。要调整流量分配,可通过调整Pod副本数间接影响流量比例,或使用服务网格(如Istio)配置精确的流量权重。
延伸知识点:Istio流量分割配置 Istio通过VirtualService和DestinationRule实现细粒度流量控制。例如,将80%流量路由到v1,20%到v2:
- DestinationRule定义子集:
apiVersion: networking.istio.io/v1alpha3 kind: DestinationRule metadata: name: my-service spec: host: my-service subsets: - name: v1 labels: version: v1 - name: v2 labels: version: v2
- VirtualService设置权重:
apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: my-service spec: hosts: - my-service http: - route: - destination: host: my-service subset: v1 weight: 80 - destination: host: my-service subset: v2 weight: 20
该配置将请求按比例分发到不同版本的Pod,适用于金丝雀发布和A/B测试场景。