由于业务需要分散在多个机房,在使用单kubernetes集群情况下,使用一个deployment部署,实现流量拆分、切换等,会十分不方便。故考虑将服务按照区域进行拆分,每个区域一个service+deployment 。
具体如下:
1、通过node label 定义服务器的区域,例如:
kubectl label nodes vm101 region=bj
kubectl label nodes vm102 region=sh
kubectl label nodes vm103 region=mirror
每个区域,一个deployment 和svc,deployment通过node的label 部署在指定节点上。
├── all.service.yaml --------all节点可以获取到gz/sh/mirror的endpoint 列表
├── gz
│ ├── deployment.yaml
│ └── service.yaml
├── mirror
│ ├── deployment.yaml
│ └── service.yaml
└── sh
├── deployment.yaml
└── service.yaml