云服务器内容精选

  • 容器舰队支持的能力范围 集群接入UCS后,您可以将其加入容器舰队并开通集群联邦能力,以进行多集群管理。针对已接入UCS的集群(无论是否加入容器舰队)、未开通集群联邦能力的容器舰队、已开通集群联邦能力的容器舰队,UCS所支持的能力范围有所不同,如表1所示。 表1 容器舰队支持的能力范围 能力 已接入UCS的集群 未开通集群联邦能力的容器舰队 已开通集群联邦能力的容器舰队 集群联邦多集群管理 - - √ 流量分发 √ - - 可观测性 √ √ √ 服务网格 - √ √ 云原生服务中心 √ - - 策略中心 √ √ √ 配置管理 √ - - 流水线 - - √ 权限管理 √ √ √
  • 现象一:提示clusterrole、clusterrolebinding已存在 问题原因:一个集群不能同时加入两个或两个以上的联邦。有这个报错提示,说明当前集群已经添加到联邦中,或者曾经加入过联邦但是存在资源残留。 解决方案:手工清理残留资源。 操作步骤: 获取报错集群的kubeconfig配置文件,并准备kubectl及运行节点,将kubeconfig文件放在运行节点/tmp目录。 执行如下命令,清理残留资源。 alias kubectl='kubectl --kubeconfig=/tmp/kubeconfig' kubectl delete clusterrolebinding `kubectl get clusterrolebinding |grep karmada-controller-manager | awk '{print $1}'` kubectl delete clusterrole `kubectl get clusterrole |grep karmada-controller-manager | awk '{print $1}'` kubectl delete namespace `kubectl get namespace |egrep 'karmada-[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}' |awk '{print $1}'`
  • 现象三:CCE集群已绑定EIP,集群加入联邦仍失败,报错:network in cluster is stable, please retry it later 问题原因:联邦需要访问CCE集群的5443端口,但是CCE集群的控制面安全组入方向规则不允许124.70.21.61(源地址)访问CCE集群的5443端口。 解决方案:修改CCE控制面入方向安全组,允许124.70.21.61(源地址)访问CCE集群的5443端口。
  • 可能原因 当前,UCS集群联邦API Server版本为v1.25,因此HPA对象有autoscaling/v2和autoscaling/v1两个版本。然而,不论您创建的HPA版本为autoscaling/v2还是autoscaling/v1,联邦均会以autoscaling/v2版本进行分发。版本低于v1.23的集群不支持autoscaling/v2版本的HPA对象,因此HPA无法分发到该集群。查看HPA对应的resourceBinding,可以在其conditions中得到如下报错:cluster(s) did not have the API resource。
  • 解决方案 您可以在分发HPA前,将成员集群版本升级至v1.23及以上的版本,该版本默认支持autoscaling/v2的HPA。 若您仍想分发autoscaling/v1版本的HPA到成员集群,您的PropagationPolicy对象中的resourceSelectors[i].apiVersion字段应配置为autoscaling/v2,如示例YAML所示。分发成功后,您可以在成员集群中查询到autoscaling/v1版本的HPA。 apiVersion: autoscaling/v1 kind: HorizontalPodAutoscaler metadata: name: test-hpa spec: maxReplicas: 5 minReplicas: 1 scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: nginx targetCPUUtilizationPercentage: 10 --- apiVersion: policy.karmada.io/v1alpha1 kind: PropagationPolicy metadata: name: test-hpa-pp spec: placement: clusterAffinity: clusterNames: - member1 resourceSelectors: - apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler name: test-hpa namespace: default
  • 请求示例 创建舰队,同时(可选)将集群加入该舰队 https://ucs.myhuaweicloud.com/v1/clustergroups { "metadata" : { "name" : "group02281605" }, "spec" : { "clusterIds" : [ "514c1a3c-8ec7-11ec-b384-0255ac100189", "d4804da3-8f03-11ec-b384-0255ac100189" ], "description" : "aaaaaaaaa" } }
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 身份认证信息 最小长度:1 最大长度:16384 表2 请求Body参数 参数 是否必选 参数类型 描述 metadata 是 RegisterClusterGroupObjectMeta object 容器舰队元数据信息。 spec 否 RegisterClusterGroupSpec object 属性 表3 RegisterClusterGroupObjectMeta 参数 是否必选 参数类型 描述 name 是 String 容器舰队名称 表4 RegisterClusterGroupSpec 参数 是否必选 参数类型 描述 clusterIds 否 Array of strings 关联的集群id description 否 String 容器舰队描述信息
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 kind String job 类型 apiVersion String job apiVersion spec JobSpec object job 属性 status JobStatus object job 状态 表4 JobSpec 参数 参数类型 描述 type String job类型 federationuid String 联邦uid resourceid String 资源id resourcename String 资源名字 extendparam String 扩展参数 subjobs Array of Job objects 子job 表5 Job 参数 参数类型 描述 kind String job 类型 apiVersion String job apiVersion spec JobSpec object job 属性 status JobStatus object job 状态 表6 JobStatus 参数 参数类型 描述 phase String job phase reason String job reason completiontime String job完成时间 starttime String job开始时间
  • 响应示例 状态码: 200 返回开启联邦对应的job { "kind" : "Job", "apiVersion" : "v3", "metadata" : { "uid" : "70b5a14f-2fa4-11ee-bf07-0255ac1000b9", "creationTimestamp" : "2023-07-31 13:16:20.715779 +0000 UTC", "updateTimestamp" : "2023-07-31 13:17:24.497868 +0000 UTC", "annotations" : { "currentTimestamp" : "2023-07-31 13:17:24.933313136 +0000 UTC" } }, "spec" : { "type" : "CreateFederationContainer", "federationUID" : "70acf480-2fa4-11ee-ad1d-0255ac1001c4", "resourceID" : "70acf480-2fa4-11ee-ad1d-0255ac1001c4", "resourceName" : "70acf480-2fa4-11ee-ad1d-0255ac1001c4", "subJobs" : [ { "kind" : "Job", "apiVersion" : "v3", "metadata" : { "uid" : "70b66b9a-2fa4-11ee-bf07-0255ac1000b9", "creationTimestamp" : "2023-07-31 13:16:20.740512 +0000 UTC", "updateTimestamp" : "2023-07-31 13:16:22.100528 +0000 UTC", "annotations" : { "currentTimestamp" : "2023-07-31 13:17:24.934274579 +0000 UTC" } }, "spec" : { "type" : "InstallFederationChart", "federationUID" : "70acf480-2fa4-11ee-ad1d-0255ac1001c4" }, "status" : { "phase" : "Success", "completionTime" : "2023-07-31 13:16:22.100528 +0000 UTC", "startTime" : "2023-07-31 13:16:22.100528 +0000 UTC" } }, { "kind" : "Job", "apiVersion" : "v3", "metadata" : { "uid" : "70b66b68-2fa4-11ee-bf07-0255ac1000b9", "creationTimestamp" : "2023-07-31 13:16:20.736232 +0000 UTC", "updateTimestamp" : "2023-07-31 13:17:24.490359 +0000 UTC", "annotations" : { "currentTimestamp" : "2023-07-31 13:17:24.934277116 +0000 UTC" } }, "spec" : { "type" : "CreateNetworkResource", "federationUID" : "70acf480-2fa4-11ee-ad1d-0255ac1001c4", "extendParam" : { "JobExtendParamKeyElbID" : "69694819-67dc-44ac-ab6e-9b18087c5c4c" } }, "status" : { "phase" : "Success", "completionTime" : "2023-07-31 13:17:24.490359 +0000 UTC", "startTime" : "2023-07-31 13:16:20.744891 +0000 UTC" } }, { "kind" : "Job", "apiVersion" : "v3", "metadata" : { "uid" : "70b66afa-2fa4-11ee-bf07-0255ac1000b9", "creationTimestamp" : "2023-07-31 13:16:20.731295 +0000 UTC", "updateTimestamp" : "2023-07-31 13:16:22.100452 +0000 UTC", "annotations" : { "currentTimestamp" : "2023-07-31 13:17:24.934288685 +0000 UTC" } }, "spec" : { "type" : "CreateCert", "federationUID" : "70acf480-2fa4-11ee-ad1d-0255ac1001c4" }, "status" : { "phase" : "Success", "completionTime" : "2023-07-31 13:16:22.100452 +0000 UTC", "startTime" : "2023-07-31 13:16:22.100452 +0000 UTC" } }, { "kind" : "Job", "apiVersion" : "v3", "metadata" : { "uid" : "70b66ad0-2fa4-11ee-bf07-0255ac1000b9", "creationTimestamp" : "2023-07-31 13:16:20.726434 +0000 UTC", "updateTimestamp" : "2023-07-31 13:16:22.093902 +0000 UTC", "annotations" : { "currentTimestamp" : "2023-07-31 13:17:24.934291673 +0000 UTC" } }, "spec" : { "type" : "CreateNode", "federationUID" : "70acf480-2fa4-11ee-ad1d-0255ac1001c4" }, "status" : { "phase" : "Success", "completionTime" : "2023-07-31 13:16:22.093902 +0000 UTC", "startTime" : "2023-07-31 13:16:20.745187 +0000 UTC" } } ] }, "status" : { "phase" : "Success", "completionTime" : "2023-07-31 13:17:24.497868 +0000 UTC", "startTime" : "2023-07-31 13:16:20.721007 +0000 UTC" } }
  • 请求示例 curl -v -k -XPOST -H "content-type: application/json" -H "X-Auth-Token:$token" https://xxx.com:443/v1/clusters/{clusterid}/join -d "{"clustergroupID":"49077339-f1cd-11ec-a2be-0255ac1001c2"}" https://ucs.myhuaweicloud.com/v1/clusters/1e18b9c4-5a8c-11ed-aa7f-0255ac1001c2/join集群加入容器舰队
  • 步骤一:IAM管理员授权 使用IAM管理员帐号登录IAM控制台。 左侧导航栏选择“用户组”,单击右上角“创建用户组”。 在“创建用户组”界面,输入管理员用户组的名称及描述,单击“确定”,完成用户组创建。 图3 创建用户组 在用户组列表中,单击目标用户组右侧的“授权”按钮。 图4 授权 搜索并选择权限策略UCS FullAccess。 图5 选择策略 单击“下一步”,选择授权范围方案。 选择“所有资源”,不设置最小授权范围,用户可根据权限使用帐号中所有资源,包括企业项目、区域项目和全局服务资源。 单击“确定”完成授权。 左侧导航栏选择“用户”,单击右上角“创建用户”,新建一个IAM用户。 填写用户名及初始密码,其余参数说明请参见创建IAM用户。 单击“下一步”,选择加入4中已授权的用户组。 图6 加入用户组 单击“创建用户”。 重复上述步骤,完成表1中其他用户组、用户的创建和授权。
  • 步骤二:UCS管理员授权 使用UCS管理员登录UCS控制台,在左侧导航栏选择“权限管理”。 单击右上角的“创建权限”按钮。 在弹出页面中填写权限的参数项,如图7所示。 图7 创建权限 权限名称:自定义权限的名称,需以小写字母开头,由小写字母、数字、中划线(-)组成,且不能以中划线(-)结尾。 用户:选择权限关联的用户,即上一步创建的IAM用户。实际应用中,一个用户组会有多个用户,创建权限时,可以将这个用户组下的所有用户全部选中,以达到批量授权的目的。 权限类型:选择“管理员权限”。管理员权限表示对所有集群资源对象的读写权限。 单击“确定”,创建权限。 权限创建完成后,可前往“容器舰队”页面,单击目标舰队右上角按钮。 图8 为舰队关联权限 在弹出的页面单击“关联权限”,打开“修改权限”页面,将3中创建的权限和舰队的全部命名空间关联起来。 图9 关联权限 单击“确定”。完成后,使用该IAM用户登录UCS控制台可使用权限范围内的功能。 重复以上步骤,完成表2中其他权限的创建,以及权限和舰队的关联。
  • 前提条件 帐号已开通UCS服务,并且按照图1完成舰队、集群资源的准备工作。 按照图2完成权限数据的准备工作。 表1 IAM控制台数据准备 用户组 用户 权限 管理员用户组:UCS_Group_admin UCS_Group_admin_User1 UCS FullAccess 用户组1:UCS_Group_1 UCS_Group_1_User1、UCS_Group_1_User2 ... UCS CommonOperations 用户组2:UCS_Group_2 UCS_Group_2_User1、UCS_Group_2_User2 ... UCS CommonOperations 表2 UCS控制台数据准备 用户组 用户 权限类型 权限名称 用户组1 UCS_Group_1_User1、UCS_Group_1_User2 ... 管理员权限 ucs-group-1-admin 只读权限 ucs-group-1-readonly 用户组2 UCS_Group_2_User1、UCS_Group_2_User2 ... 管理员权限 ucs-group-2-admin 只读权限 ucs-group-2-readonly