开始之前

    为简单起见,我们假设只有一个 primary cluster 在网格中。由于更改仅需要应用于一个集群,因此这简化了配置控制平面的过程。

    我们将部署 helloWorld 应用程序的多个实例,如下所示:

    Setup for locality load balancing tasks

    本指南假定将通过 中的上下文切换访问集群。以下环境变量将用于各种上下文:

    创建 sample 命名空间

    为每个集群添加 sample 命名空间:

    1. $ for CTX in "$CTX_PRIMARY" "$CTX_R1_Z1" "$CTX_R1_Z2" "$CTX_R2_Z3" "$CTX_R3_Z4"; \
    2. kubectl --context="$CTX" apply -f sample.yaml; \
    3. done

    使用地域作为版本号,为每个地域生成 helloWorld 的 yaml:

    1. $ for LOC in "region1.zone1" "region1.zone2" "region2.zone3" "region3.zone4"; \
    2. ./@samples/helloworld/gen-helloworld.sh@ \
    3. --version "$LOC" > "helloworld-${LOC}.yaml"; \
    4. done

    应用 HelloWorld YAML 到每个地域的合适集群:

    1. $ kubectl apply --context="${CTX_R1_Z1}" -n sample \
    2. -f helloworld-region1.zone1.yaml
    1. $ kubectl apply --context="${CTX_R2_Z3}" -n sample \
    2. -f helloworld-region2.zone3.yaml
    1. $ kubectl apply --context="${CTX_R3_Z4}" -n sample \
    2. -f helloworld-region3.zone4.yaml

    部署 sleep

    部署 应用到 region1 zone1

    1. $ kubectl apply --context="${CTX_R1_Z1}" \
    2. -f @samples/sleep/sleep.yaml@ -n sample

    等到 HelloWorld 在每个区域的 Pod 都为 Running

    1. -l version="region1.zone2"
    2. NAME READY STATUS RESTARTS AGE
    3. helloworld-region1.zone2-86f77cd7b-cpxhv 2/2 Running 0 30s
    1. $ kubectl get pod --context="${CTX_R2_Z3}" -n sample -l app="helloworld" \
    2. -l version="region2.zone3"
    3. NAME READY STATUS RESTARTS AGE
    4. helloworld-region2.zone3-86f77cd7b-cpxhv 2/2 Running 0 30s
    1. $ kubectl get pod --context="${CTX_R3_Z4}" -n sample -l app="helloworld" \
    2. -l version="region3.zone4"
    3. helloworld-region3.zone4-86f77cd7b-cpxhv 2/2 Running 0 30s

    恭喜您! 您已成功完成系统配置,现在可以开始进行地域负载均衡任务了

    下一步

    现在,您可以配置以下负载均衡选项之一: