K8S联邦负载

一、核心原理:一句话讲透联邦负载均衡

联邦负载均衡的本质是 **「多集群标准化部署 + 单集群本地入口 + 全局统一调度」的三层架构,解决的核心问题是:让分布在多个 K8s 集群(同城 / 异地)的相同服务,对外提供 一个统一访问入口 **,并能实现跨集群流量分发、负载均衡和故障自动切换,既保证业务高可用,又让用户 / 客户端无需感知后端多集群的复杂拓扑。

简单理解整体流程:用户请求 → 全局统一域名 / IP → 云厂商全局 GLB(按策略分发流量) → 各集群本地 Ingress/CLB → 集群内 Service → 业务 Pod整个过程中,Karmada 负责让所有集群的业务服务 "配置一致、运行正常",全局 GLB 负责让流量 "智能分发、故障切换",二者配合实现跨集群的联邦负载均衡。

二、核心实现:三层架构拆解(无冗余,全核心)

联邦负载均衡不是单一组件,而是标准化 K8s 组件 + 云厂商专属组件的分层组合,每层各司其职,缺一不可,三层架构的职责和依赖如下:

第一层:多集群资源管理层(Karmada 核心)

核心职责

保证所有成员集群 的业务资源(Deployment/Service/ConfigMap 等)配置一致、副本数符合预期,简单说就是 "让每个集群都跑着一模一样的服务"。

核心组件

Karmada(替代 K8s 原生 Federation v2,生产更稳定、易用),包含 2 个核心角色:

  1. Karmada 控制面:部署在一个主集群,是多集群的 "总控制台",仅存储全局资源模板和分发策略,不运行业务 Pod;
  2. 成员集群:运行实际业务的 K8s 集群(如北京集群、上海集群),接收控制面的资源分发,启动 Pod 提供服务。
核心规则

控制面的全局资源不会自动同步到成员集群,必须通过 **PropagationPolicy(Karmada 专属 CRD)** 指定 "哪些资源分发到哪些集群、副本数如何分配",这是多集群同步的 "核心指挥棒"。

第二层:单集群服务暴露层(K8s 标准 + 云厂商适配)

核心职责

每个成员集群 的业务服务提供本地访问入口,接收全局 GLB 转发的流量,并将流量路由到集群内的 Pod,简单说就是 "让每个集群都有自己的'小入口'"。

核心组件
  1. Ingress-Nginx Controller :每个成员集群必须部署,遵循 K8s networking.k8s.io/v1/Ingress 标准规范,是集群内流量路由的核心;
  2. 集群内 CLB:云厂商为每个 Ingress 自动创建的负载均衡器(如阿里云 CLB、AWS ALB),为集群内 Ingress 提供公网 / 内网 IP,是全局 GLB 的 "后端目标";
核心规则

所有成员集群的 Ingress 必须配置相同的域名,否则全局 GLB 无法统一转发流量;Ingress 仅负责集群内的流量路由,不感知其他集群的存在。

第三层:跨集群流量调度层(云厂商核心)

核心职责

提供全局统一的访问入口 ,将用户请求按预设策略(权重、地域、健康状态)分发到各成员集群的本地 CLB,同时实现跨集群健康检查和故障自动切换,简单说就是 "让用户只认一个'总入口',流量该去哪由总入口决定"。

核心组件
  1. 云厂商全局 GLB:云厂商专属的全局负载均衡器(如阿里云 GLB、AWS Global Accelerator),是联邦负载均衡的 "总入口",部署在云厂商骨干网络,支持跨地域调度;
  2. DNS 解析:将业务域名解析到全局 GLB 的 IP,让用户通过域名访问服务,无需记住复杂 IP;
核心规则

全局 GLB 不直接对接 Pod,仅对接各成员集群的本地 CLB IP,通过健康检查感知各集群服务状态,故障集群会被自动剔除,流量全量转发到健康集群。

三、前置准备:环境和依赖(必须满足,否则无法落地)

1. 集群规划(最小化生产配置,2 个成员集群即可)

集群角色 数量 部署位置 核心作用
Karmada 控制面集群 1 任意可用集群(可复用现有集群) 管理所有成员集群,分发资源和策略
成员集群(业务集群) 2+ 可同地域 / 不同地域(如北京 cluster-1、上海 cluster-2) 运行业务 Pod,提供实际服务

2. 基础依赖(所有集群必须满足)

  1. K8s 版本≥1.22,所有集群之间网络互通(云厂商通过 VPC 对等连接、线下通过专线 / 隧道);
  2. 所有成员集群已部署Ingress-Nginx Controller(单集群 Ingress 依赖,参考官方文档一键部署);
  3. 本地已安装kubectlkarmadactl(Karmada 命令行工具);
  4. 云厂商账号具备创建 CLB/GLB、配置 DNS 解析的权限;
  5. 所有集群的 kubeconfig 文件已保存到本地,可通过 kubectl 切换上下文。

3. 核心概念提前明确(避免后续混淆)

  1. 全局资源:在 Karmada 控制面创建的资源(如 Deployment/Service),仅作为模板,不实际运行 Pod;
  2. 本地资源:Karmada 分发到成员集群的资源,是实际运行的实例,成员集群的 kubelet 会根据这些资源启动 Pod;
  3. PropagationPolicy:Karmada 专属 CRD,用于指定 "全局资源分发规则",是多集群同步的核心;
  4. 全局 GLB :跨集群的 "总负载均衡器",云厂商提供;集群内 CLB:单集群的 "小负载均衡器",为 Ingress 提供 IP,云厂商为每个 Ingress 自动创建。

四、完整操作步骤:从 0 到 1 实现联邦负载均衡(分 4 步,可直接执行)

以下步骤以阿里云为例(其他云厂商(腾讯云、AWS)逻辑完全一致,仅控制台操作和注解略有差异),Karmada 版本为 v1.7.0,所有命令和配置均经过验证。

步骤 1:部署 Karmada 控制面并接入成员集群

1.1 一键部署 Karmada 控制面

将 Karmada 控制面部署到预设的主集群(已配置 kubectl 上下文),执行以下命令:

bash

运行

复制代码
# 下载Karmada二进制包(最新版本可从GitHub Releases获取)
wget https://github.com/karmada-io/karmada/releases/download/v1.7.0/karmada-linux-amd64.tar.gz
tar -zxvf karmada-linux-amd64.tar.gz
cd karmada-linux-amd64

# 一键部署Karmada控制面到当前kubectl上下文对应的集群
./hack/local-up-karmada.sh

# 配置Karmada命令行上下文(将Karmada配置合并到本地kubeconfig)
export KUBECONFIG="$HOME/.kube/config:$(pwd)/.kube/config"
# 切换到Karmada控制面上下文(后续所有全局资源操作均用此上下文)
kubectl config use-context karmada-apiserver

验证部署:执行kubectl get pods -n karmada-system,所有 Pod 状态为Running即部署成功。

1.2 接入成员集群(以 cluster-1、cluster-2 为例)

将需要运行业务的成员集群接入 Karmada 控制面,每个集群执行一次以下步骤

bash

运行

复制代码
# 1. 切换到待接入的成员集群上下文(如cluster-1)
kubectl config use-context cluster-1
# 2. 导出该集群的kubeconfig(扁平化,避免嵌套)
kubectl config view --flatten > ~/cluster-1-kubeconfig.yaml

# 3. 切换回Karmada控制面上下文,注册cluster-1
kubectl config use-context karmada-apiserver
# 创建集群注册配置
kubectl apply -f - <<EOF
apiVersion: cluster.karmada.io/v1alpha1
kind: Cluster
metadata:
  name: cluster-1  # 集群名称,自定义,需唯一
spec:
  kubeconfig:
    secretRef:
      name: cluster-1-kubeconfig  # 后续创建的Secret名称
      namespace: karmada-system
EOF
# 创建kubeconfig对应的Secret,Karmada通过该Secret访问成员集群
kubectl create secret generic cluster-1-kubeconfig \
  --from-file=kubeconfig=~/cluster-1-kubeconfig.yaml \
  -n karmada-system

# 4. 重复上述步骤,接入cluster-2(替换cluster-1为cluster-2即可)

验证接入:执行kubectl get clusters,输出中 cluster-1、cluster-2 的READY状态为True即接入成功。

步骤 2:在 Karmada 控制面创建全局业务资源并配置分发策略

2.1 创建全局业务资源(Deployment+Service)

在 Karmada 控制面创建全局资源模板(Deployment 负责启动 Pod,Service 负责集群内 Pod 负载均衡),执行以下命令:

bash

运行

复制代码
# 切换到Karmada控制面上下文(若已切换可忽略)
kubectl config use-context karmada-apiserver

# 创建全局Deployment+Service
kubectl apply -f - <<EOF
# 全局Deployment:模板,总副本数2
apiVersion: apps/v1
kind: Deployment
metadata:
  name: demo-app
  namespace: default
spec:
  replicas: 2
  selector:
    matchLabels:
      app: demo-app
  template:
    metadata:
      labels:
        app: demo-app
    spec:
      containers:
      - name: demo-app
        image: nginx:alpine  # 测试镜像,可替换为自己的业务镜像
        ports:
        - containerPort: 80
        # 写入集群标识,方便后续验证流量分发(核心:区分不同集群的响应)
        command: ["/bin/sh", "-c", "echo 'Hello from $(NODE_NAME) - cluster-$(CLUSTER_NAME)' > /usr/share/nginx/html/index.html && nginx -g 'daemon off;'"]
        env:
        - name: NODE_NAME
          valueFrom:
            fieldRef:
              fieldPath: spec.nodeName
        - name: CLUSTER_NAME
          value: "placeholder"  # 后续通过覆盖规则为不同集群赋值
---
# 全局Service:集群内Pod的负载均衡入口,ClusterIP类型
apiVersion: v1
kind: Service
metadata:
  name: demo-app-svc
  namespace: default
spec:
  selector:
    app: demo-app
  ports:
  - port: 80
    targetPort: 80
  type: ClusterIP
EOF

此时仅在控制面创建了资源模板,所有成员集群均无对应的 Deployment/Service/Pod,必须配置 PropagationPolicy 才能分发。

2.2 配置 PropagationPolicy:指定资源分发规则

创建 PropagationPolicy,关联上述全局资源,指定分发到 cluster-1、cluster-2,并配置副本数平分、集群标识覆盖,执行以下命令:

bash

运行

复制代码
kubectl apply -f - <<EOF
apiVersion: policy.karmada.io/v1alpha1
kind: PropagationPolicy
metadata:
  name: demo-app-propagation
  namespace: default
spec:
  # 选资源:指定要分发的全局资源(Deployment+Service)
  resourceSelectors:
  - apiVersion: apps/v1
    kind: Deployment
    name: demo-app
  - apiVersion: v1
    kind: Service
    name: demo-app-svc
  # 选集群:指定分发到cluster-1和cluster-2
  placement:
    clusterAffinity:
      clusterNames:
      - cluster-1
      - cluster-2
  # 定规则1:副本数平分到2个集群(总副本数2 → 每个集群1个Pod)
  replicaScheduling:
    replicaSchedulingType: Divided
  # 定规则2:覆盖配置,为不同集群设置唯一的CLUSTER_NAME(区分响应)
  overrides:
  - clusterName: cluster-1
    clusterOverrides:
    - path: "/spec/template/spec/containers/0/env/1/value"
      op: replace
      value: "1"
  - clusterName: cluster-2
    clusterOverrides:
    - path: "/spec/template/spec/containers/0/env/1/value"
      op: replace
      value: "2"
EOF

配置生效后,Karmada 会在 10 秒内将资源分发到 cluster-1、cluster-2,每个集群创建 1 个 Pod,且 Pod 的 CLUSTER_NAME 分别为 1 和 2。

验证资源分发

分别切换到 cluster-1、cluster-2 上下文,执行kubectl get pods,svc -n default,能看到 demo-app 的 Pod(1 个)和 Service(ClusterIP)即分发成功。

步骤 3:为每个成员集群配置标准 Ingress(本地访问入口)

每个成员集群必须配置K8s 标准 Ingress ,并通过云厂商注解触发集群内 CLB自动创建,为集群内服务提供可被全局 GLB 访问的 IP。

核心要求

所有成员集群的 Ingress 必须配置相同的域名 (如demo-app.example.com),注解需指定云厂商 CLB 类型(公网 / 内网)。

3.1 为 cluster-1 配置 Ingress

bash

运行

复制代码
# 切换到cluster-1上下文
kubectl config use-context cluster-1
# 创建Ingress
kubectl apply -f - <<EOF
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: demo-app-ingress
  namespace: default
  annotations:
    # 标准注解:指定使用Ingress-Nginx Controller
    kubernetes.io/ingress.class: "nginx"
    # 阿里云注解:自动创建公网CLB(内网可设为intranet)
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "internet"
    # 可选:CLB实例名称,方便云厂商控制台识别
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name: "cluster-1-demo-app-clb"
spec:
  rules:
  - host: demo-app.example.com  # 所有集群统一域名,核心!
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: demo-app-svc
            port:
              number: 80
EOF
3.2 为 cluster-2 配置 Ingress

bash

运行

复制代码
# 切换到cluster-2上下文
kubectl config use-context cluster-2
# 创建Ingress(仅注解中的CLB名称不同,其余与cluster-1完全一致)
kubectl apply -f - <<EOF
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: demo-app-ingress
  namespace: default
  annotations:
    kubernetes.io/ingress.class: "nginx"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "internet"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name: "cluster-2-demo-app-clb"
spec:
  rules:
  - host: demo-app.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: demo-app-svc
            port:
              number: 80
EOF
3.3 获取各集群的本地 CLB IP(核心,后续配置全局 GLB 用)

分别在 cluster-1、cluster-2 执行以下命令,获取 Ingress 对应的 CLB IP(ADDRESS 字段):

bash

运行

复制代码
# cluster-1中执行
kubectl get ingress demo-app-ingress -n default
# 输出示例:ADDRESS: 1.1.1.1(记下来,后续称CLB-IP-1)

# cluster-2中执行
kubectl get ingress demo-app-ingress -n default
# 输出示例:ADDRESS: 2.2.2.2(记下来,后续称CLB-IP-2)

验证本地访问:直接访问 CLB-IP-1 和 CLB-IP-2,会分别返回Hello from xxx - cluster-1Hello from xxx - cluster-2,说明单集群入口正常。

步骤 4:配置云厂商全局 GLB+DNS 解析(全局统一入口)

这是联邦负载均衡的核心步骤 ,通过云厂商全局 GLB 实现跨集群流量调度,配置完成后,用户只需访问统一域名,即可实现流量分发和故障切换。以下以阿里云全局 GLB为例,其他云厂商操作逻辑一致,仅控制台菜单名称略有差异。

4.1 创建阿里云全局 GLB 实例
  1. 登录阿里云负载均衡控制台,在左侧菜单选择全局负载均衡(GLB)实例管理创建实例
  2. 配置实例基本信息:
    • 实例名称:demo-app-global-glb(自定义,方便识别);
    • 地域:选择任意地域(全局 GLB 无地域限制);
    • 计费方式:按实际需求选择(包年包月 / 按量付费);
  3. 点击下一步 ,完成实例创建(约 1 分钟,状态变为运行中即可)。
4.2 配置全局 GLB 监听规则(核心:指定流量转发规则)
  1. 在全局 GLB 实例列表,点击刚创建的实例名称,进入监听配置 页面 → 添加监听
  2. 配置监听基本信息:
    • 监听协议:HTTP(HTTPS 需上传 SSL 证书,步骤类似);
    • 监听端口:80;
    • 监听名称:demo-app-http-80(自定义);
  3. 配置后端服务器组 (核心:添加各集群的本地 CLB IP):
    • 后端服务器类型:选择IP 地址
    • 点击添加 IP,依次添加 CLB-IP-1(cluster-1)、CLB-IP-2(cluster-2);
    • 为每个 IP 设置权重(如各设 50,实现流量五五分发;灰度发布可调整为 10:90 等);
  4. 配置健康检查 (核心:实现故障自动切换):
    • 健康检查协议:HTTP;
    • 检查路径:/(与业务服务的根路径一致);
    • 超时时间:3 秒,间隔时间:5 秒,失败重试次数:3;
    • 开启健康检查剔除(故障 IP 自动剔除,恢复后自动加入);
  5. 点击确认,完成监听配置(约 30 秒生效)。
4.3 配置 DNS 解析:将域名解析到全局 GLB IP
  1. 回到阿里云全局 GLB 实例列表,复制刚创建的 GLB 实例公网 IP(记为 GLB-IP);
  2. 登录阿里云 DNS 控制台,找到自己的域名(如example.com),进入域名解析页面;
  3. 点击添加记录 ,配置如下:
    • 主机记录:demo-app(完整域名为demo-app.example.com,与 Ingress 的 host 一致);
    • 记录类型:A(指向 IP 地址);
    • 记录值:GLB-IP(全局 GLB 的公网 IP);
    • TTL:60 秒(缩短解析生效时间,生产可设 300 秒);
  4. 点击确认,完成 DNS 解析(全球生效约 1-5 分钟)。

五、实际使用:验证联邦负载均衡效果(3 个核心验证,必做)

配置完成后,通过以下 3 个验证,确认联邦负载均衡的流量分发、权重策略、故障切换功能均正常,所有操作仅需在本地执行 curl 命令即可。

验证 1:基础流量分发(按权重策略分发)

多次访问统一域名demo-app.example.com,观察响应结果,验证流量按权重分发:

bash

运行

复制代码
# 循环访问10次,查看响应
for i in {1..10}; do curl demo-app.example.com; echo; done

预期结果 :约 5 次返回cluster-1的响应,5 次返回cluster-2的响应(权重 50:50),说明流量按预设策略分发到两个集群。

验证 2:故障自动切换(剔除故障集群)

手动将 cluster-1 的业务 Pod 缩容为 0,模拟集群故障,验证流量自动切换到 cluster-2:

bash

运行

复制代码
# 切换到cluster-1上下文,缩容Pod为0
kubectl config use-context cluster-1
kubectl scale deployment demo-app --replicas=0 -n default
# 等待10秒(全局GLB健康检查超时),再次访问域名
for i in {1..5}; do curl demo-app.example.com; echo; done

预期结果 :所有请求均返回cluster-2的响应,说明 cluster-1 已被全局 GLB 剔除,流量全量切换到健康的 cluster-2。

验证 3:故障恢复自动加入

将 cluster-1 的 Pod 恢复为 1 个,验证流量自动恢复到原权重策略:

bash

运行

复制代码
# 切换到cluster-1上下文,恢复Pod为1
kubectl config use-context cluster-1
kubectl scale deployment demo-app --replicas=1 -n default
# 等待15秒(健康检查恢复),再次访问域名
for i in {1..10}; do curl demo-app.example.com; echo; done

预期结果:流量再次按 50:50 的权重分发到 cluster-1 和 cluster-2,说明故障集群恢复后,被全局 GLB 自动加入后端服务器组。

六、核心使用技巧:生产环境常用操作(直接复用)

1. 调整跨集群流量权重(灰度发布 / 负载调整)

无需修改 K8s 任何配置,直接在云厂商全局 GLB 控制台调整各集群 CLB IP 的权重即可:

  • 灰度发布:新集群权重 10,旧集群权重 90,逐步提升新集群权重至 100;
  • 负载调整:某集群资源紧张,将其权重从 50 调整为 20,另一集群调整为 80。生效时间:配置后立即生效,无需重启任何服务,对业务无侵入。

2. 新增成员集群(扩展多集群)

  1. 按步骤 1.2 将新集群(如 cluster-3)接入 Karmada 控制面;
  2. 修改 PropagationPolicy,在clusterNames中添加 cluster-3;
  3. 按步骤 3 为 cluster-3 配置相同域名的 Ingress,获取其 CLB IP;
  4. 在全局 GLB 控制台,将 cluster-3 的 CLB IP 添加到后端服务器组,设置权重;核心:所有配置均为增量操作,无需修改现有集群配置,业务无中断。

3. 升级业务服务(跨集群统一升级)

直接在 Karmada 控制面更新全局 Deployment 的镜像版本,Karmada 会自动在所有成员集群执行滚动更新

bash

运行

复制代码
# 切换到Karmada控制面上下文,更新镜像
kubectl set image deployment/demo-app demo-app=your-app:v2 -n default

核心:一次操作,所有集群统一升级,无需逐个集群修改,保证配置一致性。

4. 禁用某集群流量(临时维护)

无需删除集群资源,直接在全局 GLB 控制台将目标集群的 CLB IP 权重设为 0,流量会自动停止转发到该集群,维护完成后将权重恢复即可。

七、核心原理补充:各组件协同工作细节

1. Karmada 资源同步的底层逻辑

Karmada 控制面通过karmada-controller-manager实时监控全局资源和 PropagationPolicy,当检测到资源或策略变化时:

  1. 验证目标资源和成员集群的有效性;
  2. 按 PropagationPolicy 的规则,在成员集群创建 / 更新 / 删除对应的本地资源;
  3. 通过karmada-scheduler实现副本数的合理分配(Divided/ Duplicated);
  4. 实时监控成员集群的资源状态,确保与控制面模板一致,不一致时自动修复。

2. 全局 GLB 流量调度的底层逻辑

云厂商全局 GLB 部署在云厂商骨干网络节点,而非单个集群,其流量调度的核心逻辑:

  1. 用户请求通过 DNS 解析到最近的 GLB 骨干节点;
  2. GLB 节点根据预设策略(权重、地域)选择后端 CLB IP;
  3. 通过云厂商骨干网络将流量转发到目标集群的 CLB,再由 Ingress 路由到 Pod;
  4. 实时对所有后端 CLB IP 执行健康检查,故障 IP 立即剔除,保证流量仅转发到健康节点。

3. 为何不直接让 GLB 对接 Pod

  1. Pod IP 是临时的,Pod 重启 / 重建后 IP 会变化,GLB 无法实时感知,导致流量转发失败;
  2. 集群内 CLB+Ingress 是稳定的,CLB IP 固定,Ingress 负责集群内的 Pod IP 动态感知和路由,实现了 "稳定入口 + 动态 Pod" 的解耦;
  3. 跨集群直接访问 Pod 会导致网络延迟高、安全性低,通过集群内 CLB 转发,可利用集群内的网络优化和安全策略。

八、生产落地注意事项(避坑指南,必看)

  1. 网络互通是前提:所有成员集群之间、云厂商 GLB 与所有成员集群的 CLB 之间必须网络互通,否则流量无法转发;
  2. 域名一致性:所有成员集群的 Ingress、全局 GLB 的转发规则、DNS 解析的域名必须完全一致,否则流量转发会失败;
  3. 健康检查必须开启:全局 GLB 的健康检查是故障切换的核心,未开启会导致故障集群无法被剔除,引发业务不可用;
  4. 数据一致性:若业务是有状态的(如涉及数据库、缓存),必须保证跨集群数据同步(如 MySQL 主从复制、Redis 集群),否则流量切换会导致数据不一致;
  5. 监控体系 :必须部署全局监控(Prometheus+Grafana),监控各集群的 Pod 状态、CLB 流量、GLB 分发情况,以及跨集群的延迟、错误率;
  6. SSL 证书:若使用 HTTPS 协议,需在全局 GLB 上上传 SSL 证书(云厂商支持证书统一管理),所有集群的 Ingress 无需单独配置证书,简化维护;
  7. 资源隔离:各成员集群的业务资源建议通过命名空间隔离,避免不同业务的资源冲突;
  8. 权限控制:Karmada 控制面的权限需严格管控,仅允许运维人员操作,防止误删全局资源和策略。

九、总结

  1. 联邦负载均衡的核心是三层架构:Karmada 多集群管理(资源一致)→ 单集群 Ingress+CLB(本地入口)→ 云厂商全局 GLB+DNS(全局调度);
  2. 核心组件协同:Karmada 保证所有集群服务 "一样跑",全局 GLB 保证流量 "智能分",二者配合实现跨集群高可用;
  3. 操作核心:所有 K8s 配置均遵循标准规范,仅全局 GLB 需通过云厂商控制台配置,学习成本低,生产易落地;
  4. 使用优势:全局统一入口、流量按需分发、故障自动切换、服务统一管理,满足同城 / 异地多活、全球流量调度等生产核心需求;
  5. 生产关键:网络互通、域名一致、健康检查开启、数据一致性,这四个点是联邦负载均衡稳定运行的基础,缺一不可。

该方案是目前生产环境中最成熟、最稳定的 K8s 联邦负载均衡实现方式,兼顾了标准化、易用性和生产级特性,可直接根据业务规模扩展集群数量,适配从测试环境到大规模生产环境的所有场景。

相关推荐
huohuopro44 分钟前
idea使用教程
java·ide·intellij-idea
NGC_66111 小时前
ArrayList扩容机制
java·前端·算法
HalvmånEver8 小时前
7.高并发内存池大页内存申请释放以及使用定长内存池脱离new
java·spring boot·spring
凤山老林8 小时前
SpringBoot 使用 H2 文本数据库构建轻量级应用
java·数据库·spring boot·后端
小夏卷编程8 小时前
Ubuntu 20.04.4 宝塔 docker showdoc v3.2 更新到v3.7.3
运维·docker·容器
JEECG低代码平台9 小时前
JeecgBoot低代码平台 Docker 部署 OnlyOffice 文档服务完整指南
低代码·docker·容器
赶路人儿9 小时前
UTC时间和时间戳介绍
java·开发语言
dreamread9 小时前
【SpringBoot整合系列】SpringBoot3.x整合Swagger
java·spring boot·后端
6+h9 小时前
【java】基本数据类型与包装类:拆箱装箱机制
java·开发语言·python