云服务器内容精选

  • URI GET /v1/clustergroups 表1 Query参数 参数 是否必选 参数类型 描述 limit 否 Integer 分页获取列表时,页的大小,默认为-1 offset 否 Integer 分页获取列表时,起始偏移量,默认为0 order_by 否 String 分页获取列表时,排序参数,支持 create_at 和 update_at order 否 String 分页获取列表时,排序方向,支持 desc 和 asc
  • 响应示例 状态码: 200 返回容器舰队列表信息 { "items" : [ { "kind" : "ClusterGroup", "apiVersion" : "v1", "metadata" : { "name" : "cluster-test", "uid" : "bffbb35b-7949-11ee-886c-0255ac100037", "creationTimestamp" : "2023-11-02 06:33:35.558128 +0000 UTC", "updateTimestamp" : "2023-11-14 06:20:20.446476 +0000 UTC" }, "spec" : { "federationId" : "e2f27cc6-82b5-11ee-84e3-0255ac100032", "federationVersion" : "v1.7.0-t1109", "dnsSuffix" : [ "www.oidc.com" ] }, "status" : { "conditions" : [ { "type" : "Federation", "status" : "Unavailable", "reason" : "FederationUnavailable", "message" : "component volcano-scheduler is unhealthy", "lastTransitionTime" : "0001-01-01T00:00:00Z" } ] } }, { "kind" : "ClusterGroup", "apiVersion" : "v1", "metadata" : { "name" : "cluster-dev", "uid" : "4557ad49-22bf-11ee-b0c9-0255ac10004b", "creationTimestamp" : "2023-07-15 03:25:39.253589 +0000 UTC", "updateTimestamp" : "2023-10-19 11:52:14.509405 +0000 UTC" }, "spec" : { }, "status" : { } }, { "kind" : "ClusterGroup", "apiVersion" : "v1", "metadata" : { "name" : "test0131", "uid" : "108f5981-a105-11ed-a23e-0255ac100032", "creationTimestamp" : "2023-01-31 01:17:44.309185 +0000 UTC", "updateTimestamp" : "2023-06-29 01:02:28.78095 +0000 UTC" }, "spec" : { }, "status" : { } } ], "total" : 3 }
  • 关联权限 登录U CS 控制台,在左侧导航栏中选择“容器舰队”。 在目标舰队栏中,单击右上角的按钮。 图4 为舰队关联权限 在弹出的页面单击“修改容器舰队权限”或“关联权限”,打开修改权限页面,将已创建好的权限和舰队的命名空间关联起来。 图5 修改权限 命名空间:支持“全部命名空间”和“指定命名空间”。全部命名空间包括当前舰队已有的命名空间和舰队后续新增的命名空间;“指定命名空间”即表示您自己选择命名空间的范围,UCS服务提供了几个常见的命名空间供您选择(如default、kube-system、kube-public),您也可以新增命名空间,但要自行确保新增的命名空间在集群中存在。 请注意,选择的命名空间仅对权限中命名空间级资源生效,不影响权限中的集群资源。关于命名空间级和集群级资源的介绍,请参见Kubernetes资源对象章节。 关联权限:从下拉列表中选择权限,支持一次性选择多个权限,以达到批量授权的目的。 如果针对不同命名空间,关联的权限不同(例如:为default命名空间关联readonly权限,为development命名空间关联develop权限),可以单击按钮添加多组授权关系。 单击“确定”,完成权限的关联。 如果后续需要修改舰队的权限,采用同样的方法,重新选择命名空间和权限即可。
  • 创建舰队 登录UCS控制台,在左侧导航栏中选择“容器舰队”,在“容器舰队”页签下单击“创建容器舰队”。 填写舰队信息。 图1 创建容器舰队 舰队名称:自定义舰队的名称,需以小写字母开头,由小写字母、数字、中划线(-)组成,且不能以中划线(-)结尾。 添加集群:列表中显示当前未加入舰队的集群,可以在创建舰队时添加集群,也可以在舰队创建完成后添加。如不选择任何集群,则会创建一个空的舰队,完成创建后请参考添加集群。 描述:添加舰队的描述信息。 集群加入容器舰队后,将获得所选容器舰队的权限,失去原有权限。 单击“确定”,创建舰队。
  • 添加集群 登录UCS控制台,在左侧导航栏中选择“容器舰队”。 在目标舰队栏中单击“添加集群”,或单击右上角的按钮。 您也可以单击舰队名称进入舰队详情页,在“容器集群”页面单击右上角“添加集群”。 图2 为舰队添加集群 勾选一个或多个已有集群。一个集群只能加入一个舰队,因此列表中显示的集群均为未加入舰队的集群。 图3 添加集群 集群加入容器舰队,将拥有所选容器舰队的权限,但会失去原有赋予的权限。 如果该舰队开通了集群联邦,集群会自动接入集群联邦。关于集群联邦的介绍,请参见开通集群联邦章节。 单击“确定”,完成集群添加。
  • 注销舰队中的集群 登录UCS控制台,在左侧导航栏中单击“容器舰队”。 在“容器舰队”页签下单击舰队名称,进入舰队详情页。 在左侧导航栏中选择“容器集群”,在目标集群栏中,单击右上角的按钮。 弹出“注销集群”对话框,仔细阅读注意事项,确认风险后单击“确定”。 (可选)对于附着集群来说,注销集群成功后,还需前往目标集群卸载代理组件。 kubectl -n kube-system delete deployments/proxy-agent secret/proxy-agent-cert (可选)对于本地集群来说,注销集群成功后,您可以手动执行卸载命令,在本地主机环境中删除集群,清理资源: ./ucs-ctl delete cluster [集群名称] 如果命令执行失败,请参考如何手动清理本地集群节点?处理。
  • 容器舰队支持的能力范围 集群接入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 容器舰队描述信息
  • 请求示例 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中其他用户组、用户的创建和授权。