云服务器内容精选

  • 通过控制台YAML创建多集群服务(M CS ) 登录UCS控制台,在左侧导航栏中选择“容器舰队”。 在“容器舰队”页签下找到已开通集群联邦的舰队,单击名称进入详情页。 在左侧导航栏中选择“服务与路由”,选择“多集群服务”页签。 在多集群服务页签,单击右上角“YAML创建”,弹出多集群服务(MCS)YAML创建界面。 当前数据选择YAML,在编辑栏进行编辑(根据实际需求调整配置参数): apiVersion: networking.karmada.io/v1alpha1 kind: MultiClusterService metadata: name: mcs-24132 # MCS对象名称 namespace: default # MCS对象所在命名空间名称 spec: types: - CrossCluster # 类型为集群间服务发现 providerClusters: - name: cluster-25043 # Service的下发集群 consumerClusters: - name: cluster-29544 # Service的访问集群 编辑完成后,单击右下角“确定”,完成多集群服务(MCS)创建。
  • 准备工作 部署工作负载与服务 MCS提供跨集群服务发现与访问能力,因此需要在集群联邦中提前部署可用的工作负载(Deployment)和服务(Service)。若您无可用工作负载和服务,请参考无状态负载和集群内访问(ClusterIP)创建。 设置集群网络 请参照设置集群网络对集群间网络互通进行检查与设置。 若创建MCS实例时,出现报错"policy dosen't allow 'get loadbalancer' to be performed."或"because no identity-based policy allows the xxx action.",表示当前委托权限还未生效,请等待片刻后重试即可,错误出现在事件中则无需关心。
  • 通过Kubectl命令创建MCS对象 使用kubectl连接集群联邦,详细操作请参见使用kubectl连接集群联邦。 创建并编辑 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。 执行如下命令创建MCS对象。 kubectl apply -f mcs.yaml 执行如下命令查看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实例删除异常如何排查?
  • 设置集群网络类型 需要保证集群的网络类型支持underlay网络,以支持集群间Pod通信。支持underlay网络的集群类型如下: 表2 支持underlay网络的集群类型 集群类型 细分类型 网络类型 是否支持underlay网络 华为云集群/伙伴云集群 CCE集群 容器隧道网络 不支持 VPC网络 支持 CCE Turbo 集群 云原生网络2.0 支持 本地集群 本地集群 同时支持overlay和underlay网络。 默认为overlay网络,要启用underaly网络需要手动配置,underaly网络相关介绍与操作请参见Cilium。 支持 多云集群 多云集群 同时支持overlay和underlay网络。 默认为overlay网络,要启用underaly网络需要手动配置,underaly网络相关介绍与操作请参见Cilium。 支持 附着集群 附着集群 需支持underlay网络 取决于附着集群网络类型