开始之前
为简单起见,我们假设只有一个 primary cluster 在网格中。由于更改仅需要应用于一个集群,因此这简化了配置控制平面的过程。
我们将部署 helloWorld
应用程序的多个实例,如下所示:
Setup for locality load balancing tasks
本指南假定将通过 中的上下文切换访问集群。以下环境变量将用于各种上下文:
创建 sample
命名空间
为每个集群添加 sample
命名空间:
$ for CTX in "$CTX_PRIMARY" "$CTX_R1_Z1" "$CTX_R1_Z2" "$CTX_R2_Z3" "$CTX_R3_Z4"; \
kubectl --context="$CTX" apply -f sample.yaml; \
done
使用地域作为版本号,为每个地域生成 helloWorld
的 yaml:
$ for LOC in "region1.zone1" "region1.zone2" "region2.zone3" "region3.zone4"; \
./@samples/helloworld/gen-helloworld.sh@ \
--version "$LOC" > "helloworld-${LOC}.yaml"; \
done
应用 HelloWorld
YAML 到每个地域的合适集群:
$ kubectl apply --context="${CTX_R1_Z1}" -n sample \
-f helloworld-region1.zone1.yaml
$ kubectl apply --context="${CTX_R2_Z3}" -n sample \
-f helloworld-region2.zone3.yaml
$ kubectl apply --context="${CTX_R3_Z4}" -n sample \
-f helloworld-region3.zone4.yaml
部署 sleep
部署 应用到 region1
zone1
:
$ kubectl apply --context="${CTX_R1_Z1}" \
-f @samples/sleep/sleep.yaml@ -n sample
等到 HelloWorld
在每个区域的 Pod 都为 Running
:
-l version="region1.zone2"
NAME READY STATUS RESTARTS AGE
helloworld-region1.zone2-86f77cd7b-cpxhv 2/2 Running 0 30s
$ kubectl get pod --context="${CTX_R2_Z3}" -n sample -l app="helloworld" \
-l version="region2.zone3"
NAME READY STATUS RESTARTS AGE
helloworld-region2.zone3-86f77cd7b-cpxhv 2/2 Running 0 30s
$ kubectl get pod --context="${CTX_R3_Z4}" -n sample -l app="helloworld" \
-l version="region3.zone4"
helloworld-region3.zone4-86f77cd7b-cpxhv 2/2 Running 0 30s
恭喜您! 您已成功完成系统配置,现在可以开始进行地域负载均衡任务了
下一步
现在,您可以配置以下负载均衡选项之一: