云服务器内容精选

  • 污点(Taints)说明 污点格式为“Key=Value:Effect”,Key和Value作为污点的标签,Value可以为空,Effect用于描述污点的效果。当前Effect支持如下两个选项: NoSchedule:不能容忍此污点的 Pod 不会被调度到集群上,但是现有 Pod 不会从集群中逐出。 NoExecute:表示不能容忍此污点的 Pod 不会被调度到集群上,同时会将集群上已存在的Pod驱逐。
  • 管理集群标签/污点 登录UCS控制台。 单击目标集群所在的容器舰队名称,在左侧导航栏选择“容器集群”,找到目标集群,在右上角单击进入“标签与污点管理”。 图1 标签与污点管理 单击按钮,设置节点标签/污点。如需执行多项操作,可多次添加,最多支持10条操作。 图2 添加标签/污点 选择“添加”或“删除”操作。 选择操作对象为“K8S标签”或“污点(Taints)”。 填写需要增加标签/污点的“键”和“值”。 如选择操作对象为“污点(Taints)”,需选择污点效果,关于污点效果说明请参见污点(Taints)说明。 单击“确定”,对所选节点执行标签/污点操作。
  • 添加集群 容器舰队开通集群联邦后,可以继续为舰队添加集群,添加后,集群会自动接入集群联邦。一个集群联邦最多可接入20个集群。 登录UCS控制台,在左侧导航栏中选择“容器舰队”。 在目标舰队栏中单击“添加集群”,或单击右上角的按钮。 您也可以单击舰队名称进入舰队详情页,在“容器集群”页面单击右上角“添加集群”。 勾选一个或多个已有集群。一个集群只能加入一个舰队,因此列表中显示的集群均为未加入舰队的集群。 请确保所选择的集群符合表1中的约束条件,否则会出现集群添加成功,但是接入集群联邦失败的情况。如果出现这种情况,请参考舰队开通集群联邦后,添加集群报错如何解决?进行修复。 单击“确定”,完成集群添加。
  • 开通集群联邦 集群联邦和容器舰队绑定在一起,只需要为容器舰队一键开通集群联邦,就可以方便地操作集群联邦了。 集群联邦的开通包含两个阶段:一、开通集群联邦,二、集群接入联邦。容器舰队开通集群联邦能力后,容器舰队内的成员集群将自动接入联邦。 开通集群联邦有配额限制,并且对容器舰队中的集群有一些约束,请在开通前仔细阅读,避免集群联邦开通失败。 表1 集群约束 项目 约束 集群版本 容器舰队中的所有集群版本必须为1.19及以上。 集群状态 容器舰队中的所有集群状态必须为“运行中”。 集群网络状态 CCE集群、CCE Turbo集群:CCE集群所在region为北京四的,开通联邦时UCS将自动在集群所属VPC下创建VPCEP打通网络,非该region则需要集群节点具备公网访问能力,例如为节点绑定公网地址,用以拉取公网镜像。 其他集群:成功接入UCS即可。 配额 集群联邦配额为1,即只能为一个容器舰队开通集群联邦。 登录UCS控制台,在左侧导航栏中选择“容器舰队”。 在“容器舰队”页签下找到目标舰队,页面提示暂未开通集群联邦能力,单击“去开通”按钮。 图1 开通集群联邦 在弹出的提示框中单击“确定”,等待集群联邦开通成功。 当集群不满足约束条件时,界面会弹出报错信息,请按照提示修改,然后重新开通集群联邦。 开通集群联邦大约需要10分钟,请耐心等待。您可以单击集群联邦状态,查看详细的开通进度。开通成功后,容器舰队顶部的提示信息变为“集群联邦能力已开通 ,集群接入成功”。
  • 故障倒换场景验证 按照上述集群应用部署操作,示例应用分别部署在集群“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 查看部署结果
  • 操作步骤 登录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策略列表中查看。
  • 安装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
  • 使用限制 需要创建弹性扩缩容策略的集群至少有一个Pod, 如果没有实例则会自动进行扩容。 一个集群一次扩容的实例数的上限为min(max(4,2 * currentReplicas),MaxReplicas)个,防止一次性扩容个数过多。 使用HPA需要在集群中安装能够提供Metrics API的插件,如metrics-server或Prometheus。若使用Prometheus,需要将Prometheus注册为Metrics API的服务,详见提供资源指标。