云服务器内容精选

  • 添加集群 容器舰队开通集群联邦后,可以继续为舰队添加集群,添加后,集群会自动接入集群联邦。一个集群联邦最多可接入20个集群。 登录UCS控制台,在左侧导航栏中选择“容器舰队”。 在目标舰队栏中单击“添加集群”,或单击右上角的按钮。 您也可以单击舰队名称进入舰队详情页,在“容器集群”页面单击右上角“添加集群”。 图3 为舰队添加集群 勾选一个或多个已有集群。一个集群只能加入一个舰队,因此列表中显示的集群均为未加入舰队的集群。 图4 添加集群 请确保所选择的集群符合表1中的约束条件,否则会出现集群添加成功,但是接入集群联邦失败的情况。如果出现这种情况,请参考舰队开通集群联邦后,添加集群报错如何解决?进行修复。 单击“确定”,完成集群添加。
  • 开通集群联邦 集群联邦和容器舰队绑定在一起,只需要为容器舰队一键开通集群联邦,就可以方便地操作集群联邦了。 集群联邦的开通包含两个阶段:一、开通集群联邦,二、集群接入联邦。容器舰队开通集群联邦能力后,容器舰队内的成员集群将自动接入联邦。 开通集群联邦有配额限制,并且对容器舰队中的集群有一些约束,请在开通前仔细阅读,避免集群联邦开通失败。 表1 集群约束 项目 约束 集群版本 容器舰队中的所有集群版本必须为1.19及以上。 集群状态 容器舰队中的所有集群状态必须为“运行中”。 集群网络状态 CCE集群、CCE Turbo集群:CCE集群所在region为北京四的,开通联邦时UCS将自动在集群所属VPC下创建VPCEP打通网络,非该region则需要集群绑定公网地址。 其他集群:成功接入UCS即可。 配额 集群联邦配额为1,即只能为一个容器舰队开通集群联邦。 登录UCS控制台,在左侧导航栏中选择“容器舰队”。 在“容器舰队”页签下找到目标舰队,页面提示暂未开通集群联邦能力,单击“去开通”按钮。 图1 开通集群联邦 在弹出的提示框中单击“确定”,等待集群联邦开通成功。 当集群不满足约束条件时,界面会弹出报错信息,请按照提示修改,然后重新开通集群联邦。 开通集群联邦大约需要10分钟,请耐心等待。您可以单击集群联邦状态,查看详细的开通进度。开通成功后,容器舰队顶部的提示信息变为“集群联邦能力已开通 ,集群接入成功”。 图2 查看集群联邦开通进度
  • 集群联邦支持的资源及操作 集群联邦支持的Kubernetes资源及相关操作见表1。表内为“√”表明集群联邦支持对该Kubernetes资源进行该操作,表内为“部分支持”表明集群联邦部分支持对该Kubernetes资源进行该操作,表内为空则表明集群联邦不支持对该Kubernetes资源进行该操作。 表1 集群联邦支持的资源及操作 组/版本 资源 GET LIST WATCH CREATE UPDATE PATCH DELETE core/v1 pods √ √ √ √ √ √ √ pods/log √ pods/exec √ √ pods/status √ configmaps √ √ √ √ √ √ √ secrets √ √ √ √ √ √ √ services √ √ √ √ √ √ √ nodes √ √ √ √ √ namespaces √ √ √ √ √ √ √ endpoints √ √ events √ √ limitranges √ √ resourcequotas √ √ persistentvolumeclaims √ √ persistentvolumes √ √ serviceaccounts √ √ admissionregistration.k8s.io/v1 mutatingwebhookconfigurations √ √ validatingwebhookconfigurations √ √ apiextensions.k8s.io/v1 customresourcedefinitions √ √ √ √ √ √ √ apiregistration.k8s.io/v1 apiservices √ √ apps/v1 deployments √ √ √ √ √ √ √ deployments/scale √ √ deployments/status √ daemonsets √ √ √ √ √ √ √ daemonsets/status √ statefulsets √ √ √ √ √ √ √ statefulsets/status √ replicasets √ √ autoscaling/(v1、v2、v2beta1、v2beta2) horizontalpodautoscalers √ √ √ √ √ √ √ batch/v1 jobs √ √ √ √ √ √ √ jobs/status √ cronjobs √ √ √ √ √ √ √ cronjobs/status √ discovery.k8s.io/v1 endpointslices √ √ events.k8s.io/v1 events √ √ networking.k8s.io/v1 ingresses √ √ √ √ 部分支持 部分支持 √ ingressclasses √ √ networkpolicies √ √ policy/(v1、v1beta1) poddisruptionbudgets √ √ √ √ √ √ √ rbac.authorization.k8s.io/v1 clusterrolebindings √ √ √ √ √ √ √ clusterroles √ √ √ √ √ √ √ rolebindings √ √ √ √ √ √ √ roles √ √ √ √ √ √ √ storage.k8s.io/v1 storageclasses √ √ 对于集群中的自定义资源,在集群联邦中注册该CRD后,才可支持通过集群联邦入口进行操作。 Ingress对象的UPDATE和PATCH操作仅支持集群联邦控制面中的资源,不支持成员集群中的资源。
  • 通过kubectl连接集群联邦 登录UCS控制台,单击目标容器舰队名进入“容器舰队信息”页面,在“舰队基本信息”中单击“kubectl”。 图1 kubectl连接信息 参照页面中的提示信息,选择对应的项目名称、虚拟私有云(VPC)、控制节点子网以及有效期,单击“下载”,下载kubectl配置文件。 下载下来的文件名为kubeconfig.json。 图2 kubectl连接联邦实例 kubeconfig.json文件中存在安全泄露风险,请您务必妥善保存。 kubectl配置文件有效期可根据实际需求选择,下拉列表内可选范围为:5年、1年、6个月、30天、15天、14天、13天...1天,最短为1天。 在执行机上安装和配置kubectl。 拷贝kubectl及其配置文件到上述所选的vpc和子网下的执行机的/home目录下。 登录到您的执行机,配置kubectl。 cd /home chmod +x kubectl mv -f kubectl /usr/local/bin mkdir -p $HOME/.kube mv -f kubeconfig.json $HOME/.kube/config
  • 故障倒换场景验证 按照上述集群应用部署操作,示例应用分别部署在集群“ccecluster01”、“ccecluster02”中,并以“负载均衡”类型的服务对外提供访问。 下面将通过UCS的流量分发功能,实现多集群应用的故障倒换,验证应用的高可用容灾能力。 实践中的应用仅作示例,在实际生产环境中可替换为用户自有应用,且对示例集群的提供商、地域、数量不作限制。 登录UCS控制台,在左侧导航栏中单击“流量分发”。 在流量管理控制台页面,单击右上角“创建流量策略”,填写域名地址解析,设置本例中的测试域名为“demo.example.com”。 图5 创建流量策略 为两个集群服务分别添加调度策略,添加完成后单击“确定”。 本示例中,为模拟不同地域下的集群应用部署,添加三条调度策略: 集群“ccecluster01”线路类型设置为“地域解析-中国大陆/华东地区/上海”。 集群“ccecluster02”线路类型设置为“地域解析-中国大陆/华南地区/广东”。 为域名添加默认线路解析记录,设置集群“ccecluster01”线路类型为“全网默认”。如不设置默认线路解析将会造成指定线路外的地区用户访问失败。 图6 添加调度策略 此时已为测试域名“demo.example.com”添加了三条解析,用户流量将根据设置的线路类型和权重正常访问两个集群中的应用。 图7 调度策略列表 上海地区用户:将访问集群“ccecluster01”中的应用,版本为1.0.0。 广东地区用户:将访问集群“ccecluster02”中的应用,版本为2.0.0。 其他用户:将默认访问集群“ccecluster01”中的应用,版本为1.0.0。 广东地区用户通过域名“demo.example.com”访问应用,版本为2.0.0,说明访问的是集群“ccecluster02”中的应用。 图8 查看访问结果 此时手动停止集群“ccecluster02”中的应用,将实例个数调整为0,模拟环境故障。 图9 调整实例个数 广东地区用户访问应用时,依旧被解析至集群“ccecluster02”,返回错误。 此时需要在“流量分发”页面单击集群“ccecluster02”对应调度策略的“暂停”按钮,进行应用故障倒换。 图10 暂停调度策略 广东地区用户访问域名“demo.example.com”时,不再解析至集群“ccecluster02”,只会将默认线路解析结果返回,用户访问到集群“ccecluster01”,访问正常。待运维人员完成故障集群修复后,可单击“启用”按钮重新使用该线路解析。
  • 基础环境搭建 将集群注册到UCS并接入网络。具体操作请参见注册集群。 例如,将集群“ccecluster01”、“ccecluster02”添加至UCS,并查看集群是否处于正常运行状态。 在添加至UCS的两个集群中分别创建一个工作负载。 为展示流量切换的效果,本实践中两个集群的容器镜像版本不同。 集群“ccecluster01”:示例应用版本号为1.0.0。 集群“ccecluster02”:示例应用版本号为2.0.0。 图2 创建工作负载 分别为两个集群中的应用创建“负载均衡”类型的服务。 仅支持访问类型为“负载均衡”的服务,其他类型的服务将被自动过滤。 图3 创建服务 浏览器访问负载均衡IP地址,查看部署结果。 图4 查看部署结果
  • 使用限制 需要创建弹性扩缩容策略的集群至少有一个Pod, 如果没有实例则会自动进行扩容。 一个集群一次扩容的实例数的上限为min(max(4,2 * currentReplicas),MaxReplicas)个,防止一次性扩容个数过多。 使用HPA需要在集群中安装能够提供Metrics API的插件,如metrics-server或Prometheus。若使用Prometheus,需要将Prometheus注册为Metrics API的服务,详见提供资源指标。
  • 安装Metrics Server插件 Metrics Server插件作为集群核心资源监控数据的聚合器,可在您的集群中便捷地进行安装。 使用以下命令安装Metrics Server。 kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml 使用以下命令验证Metrics Server是否安装成功。 kubectl get deployment metrics-server -n kube-system 如果输出结果类似于以下内容,则表示安装成功。 NAME READY UP-TO-DATE AVAILABLE AGEmetrics-server 1/1 1 1 6m
  • 操作步骤 登录UCS控制台,在左侧导航栏中选择“容器舰队”。 单击已开通集群联邦的容器舰队名称,进入容器舰队详情页面。 在左侧导航栏选择“HPA策略”,选择HPA策略所在的命名空间,并单击右上角“创建HPA策略”。 图1 HPA策略 设置参数。 图2 创建HPA策略 策略名称:新建策略的名称,命名必须唯一。 命名空间:选择HPA策略的命名空间,也就是无状态工作负载所在的命名空间。 生效工作负载:选择需要创建策略的无状态工作负载。 指标项:触发弹性扩缩容策略的系统指标,可选“CPU”或者“内存”。 触发策略:选择触发策略及其指标阈值,阈值需为整数。支持“使用率”和“平均使用量”两种触发策略。 使用率:单位为%,使用率 = 工作负载Pod的实际使用量 / 申请量。 平均使用量:指标项选择“CPU”时,单位为微核;指标项选择“内存”时单位为兆。 容忍度:实际监控指标相对于目标值的波动范围,大于该波动范围时,触发扩容或缩容。取值范围是:0-1,保留的小数不超过2位。例如触发策略为CPU使用率80%,容忍度0.1,则高于CPU使用率72%时触发扩容,低于CPU使用率88%时触发缩容。 冷却时间:上次扩/缩容和本次扩/缩容之间的时间间隔,表示策略成功触发后,在缩容/扩容冷却时间内,不会再次触发缩容/扩容。 目标集群:设置目标集群优先级和实例范围,仅显示工作负载部署的集群。优先级数字越大,优先级级别越高。 若提示“Metrics Server未安装”,请先在目标集群中安装Metrics Server插件,具体操作请参见安装Metrics Server插件。 单击“确定”。创建成功后可在HPA策略列表中查看。