华为云UCS-使用南北向MCS:创建类别为负载均衡的MCS对象

时间:2024-11-04 20:00:06

创建类别为负载均衡的M CS 对象

  1. 使用kubectl连接集群联邦,详细操作请参见使用kubectl连接集群联邦
  2. 创建并编辑 mcs.yaml 文件,文件内容定义如下所示,参数定义请参见表1

    示例YAML定义的MCS对象关联了名为nginx的Service,将nginx的Service注册到华为云ELB的监听器上。

    vi mcs.yaml

    apiVersion: networking.karmada.io/v1alpha1
    kind: MultiClusterService
    metadata:
      name: nginx
      namespace: default
      annotations:
        karmada.io/elb.id: 2050857a-45ff-4312-8fdb-4a4e2052e7dc
        karmada.io/elb.projectid: c6629a1623df4596a4e05bb6f0a2e166
        karmada.io/elb.port: "802"
        karmada.io/elb.health-check-flag: "on"
    spec:
      ports:
        - port: 80
      types:
        - LoadBalancer
    表1 关键参数说明

    参数

    是否必填

    参数类型

    描述

    metadata.name

    String

    MCS对象的名称,应与关联Service保持一致。

    etadata.namespace

    String

    MCS对象所在命名空间名称,应与关联Service所在命名空间名称保持一致。不填则默认为default。

    spec.types

    String

    流量方向。

    实现集群间服务发现能力应配置为CrossCluster;

    将服务通过ELB对外暴露应配置为LoadBalancer。

    spec.ports.port

    Integer

    关联的Service需要注册到ELB监听器上的服务端口。

    spec.consumerClusters.name

    String

    Service的访问集群名称,应配置为期望通过MCS实现跨集群访问Service的集群名称。不填则默认设置为所有集群联邦内集群可访问该Service。

    karmada.io/elb.id

    String

    MCS关联的elb的id,不允许为空。

    取值范围:1-32个字符。

    karmada.io/elb.projectid

    String

    MCS关联的elb所属的项目ID,获取方法请参见获取项目ID

    取值范围:1-32个字符。

    karmada.io/elb.port

    String

    MCS关联的elb的端口,不填时默认为80。

    取值范围:1-65535。

    karmada.io/elb.health-check-flag

    String

    是否启用健康检查,可选值为:

    • on:开启
    • off:不开启

    不填写时默认为off。

    karmada.io/elb.health-check-option

    HealthCheck Object

    健康检查参数,详情请参见HealthCheck

    说明:
    • 健康检查参数配置示例:

    karmada.io/elb.health-check-option: '{"protocol":"TCP","delay":"5","connect_port":"80","timeout":"1","max_retries":"1","path":"/wd"}'

    • 在annotation开启健康检查配置的情况下,Service名称的长度不应超过39个字符。

    karmada.io/elb.lb-algorithm

    String

    转发算法:

    • ROUND_ROBIN:加权轮询算法。
    • LEAST_CONNECTIONS:加权最少连接算法。
    • SOURCE_IP:源IP算法。

    不填写时默认为ROUND_ROBIN。

    表2 HealthCheck参数说明

    参数

    是否必填

    参数类型

    描述

    protocol

    String

    健康检查使用的协议。支持TCP/HTTP,默认值是TCP。

    connect_port

    Int

    健康检查使用的端口。取值范围[1,65535],为可选参数。

    说明:

    默认使用后端服务器默认业务端口进行健康检查。指定特定端口后,使用指定的端口进行健康检查。

    delay

    Int

    健康检查的延迟时间,以秒为单位,1-50,默认值是5秒。

    timeout

    Int

    健康检查的超时时间,以秒为单位,1-50,默认值是10秒。

    path

    String

    健康检查的请求URL,当type为HTTP/HTTPS时生效。

    以"/"开头,默认为"/"。支持使用字母、数字和短划线(-)、正斜线(/)、半角句号(.)、百分号(%)、半角问号(?)、井号(#)和and(&)以及扩展字符集。长度为1-80个字符。

    max_retries

    Int

    最大重试次数,取值范围1-10,默认值是3次。

  3. 执行如下命令创建MCS对象。

    kubectl apply -f mcs.yaml

  4. 创建完成后,可以执行如下命令操作MCS对象。其中nginx为MCS对象的名称。

    • 获取MCS对象:kubectl get mcs nginx
    • 更新MCS对象:kubectl edit mcs nginx
    • 删除MCS对象:kubectl delete mcs nginx

support.huaweicloud.com/usermanual-ucs/ucs_01_0412.html