华为云UCS-创建MCS:通过Kubectl命令创建MCS对象

时间:2025-02-12 15:05:17

通过Kubectl命令创建M CS 对象

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

    vi mcs.yaml

    示例YAML定义的MCS对象关联了名为foo的Service,支持在cluster A中访问到部署在cluster B中的该Service。

    apiVersion: networking.karmada.io/v1alpha1 kind: MultiClusterService metadata:    name: foo                          # MCS对象名称   namespace: default                  # MCS对象所在命名空间名称spec:    types:      - CrossCluster                   # 类型为集群间服务发现    providerClusters:                  # Service的下发集群     - name: clusterB   consumerClusters:                  # Service的访问集群     - name: clusterA
    表1 关键参数说明

    参数

    是否必填

    参数类型

    描述

    metadata.name

    String

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

    metadata.namespace

    String

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

    spec.types

    String

    流量方向,实现集群间服务发现能力应配置为CrossCluster。

    spec.providerClusters.name

    String

    Service的下发集群名称,应配置为Service的部署集群。不填则默认将Service下发至集群联邦内所有集群。

    注意:

    若Service部署在cluster B,但在下发集群中配置了cluster A与cluster B,则该Service会同时下发至cluster A与cluster B,覆盖A中的原同名Service。

    spec.consumerClusters.name

    String

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

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

    kubectl apply -f mcs.yaml

  4. 执行如下命令查看MCS对象的状态。其中foo为MCS对象的名称。

    kubectl describe mcs foo

    YAML文件中的status字段记录了MCS的状态,当status字段中出现如下内容时,表明Endpoint Slices下发并同步成功,集群间服务发现能力可用。

    status:   conditions:   - lastTransitionTime: "2023-11-20T02:30:49Z"    message: EndpointSlices are propagated to target clusters.     reason: EndpointSliceAppliedSuccess     status: "True"    type: EndpointSliceApplied
    创建完成后,可以执行如下命令操作MCS对象。其中foo为MCS对象的名称。
    • 获取MCS对象:kubectl get mcs foo
    • 更新MCS对象:kubectl edit mcs foo
    • 删除MCS对象:kubectl delete mcs foo

    若MCS实例删除状态异常,一直显示“删除中”,则异常实例需要强制删除并清理资源。具体操作请参见MCS/MCI实例删除异常如何排查?

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