华为云用户手册

  • 创建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
  • 负载伸缩的稳定性 为了保证负载伸缩的稳定性,HPA controller设置了以下功能: 稳定窗口 在监控到指标数据达到期待值(即满足伸缩标准)时,HPA controller会在所设定的稳定窗口期内持续检测,如果检测结果显示该时间段内的指标数据持续达到期待值,才会进行伸缩。默认扩容稳定窗口时长为0秒,缩容稳定窗口时长为300秒,支持修改。在实际配置过程中,为避免服务抖动,稳定窗口的配置的原则是快速扩容,低速缩容。 容忍度 容忍度 = abs ( 当前指标值 / 期望指标值 -1 )。当指标值的变动在设定的容忍度范围之内时,不会触发工作负载的弹性伸缩。UCS负载伸缩策略默认伸缩容忍度为0.1,不支持修改。
  • FederatedHPA工作原理 FederatedHPA的工作原理如图1,实现流程如下: HPA Controller通过API定期查询工作负载的指标数据。 karmada-apiserver收到查询请求,会路由到之前通过API服务注册的karmada-metrics-adapter。 karmada-metrics-adapter收到查询请求,会查询并收集集群中工作负载的指标数据。 karmada-metrics-adapter将计算与整合后的指标数据返回至HPA Controller。 HPA Controller基于返回的指标数据计算所需的Pod扩缩数量并进行扩缩。 图1 FederatedHPA工作原理
  • 指标数据与扩缩数量的计算 Pod状态与数据计算 HPA Controller进行所有的计算都基于工作负载中的Pod数量与状态,然而在实际进行负载伸缩时,工作负载中的Pod数量和状态都会不断变化,这可能会导致指标采集出现异常。此种情况下,为了控制FederatedHPA策略对工作负载的扩缩幅度,HPA Controller会采取较为保守的方式进行计算。 具体来说,Kubenetes官方Pod状态分为五类:Pending(等待中)、Running(运行中)、Succeeded(已完成)、Failed(已失败)和Unknown(未知)。HPA Controller进一步将Pod状态分为三类,并以此判断是否将其计入指标数据与扩缩数量,HPA Controller划分的Pod状态说明见表1。 表1 Pod状态与数据计算 Pod状态 状态含义 是否计入指标数据 是否计入Pod扩缩数量 Ready 处于Running状态且能够获取到指标数据的Pod 计入 计入 Ignore 处于Pending状态的Pod 不计入 不计入 Missing 处于Running状态但是无法获取到指标数据的Pod 扩容时不计入 缩容时计入 不计入 指标数据的计算 您可以基于系统指标和自定义指标设置工作负载自动扩缩。若您在创建策略时设置了多个指标期望值,HPA Controller会比较每种指标变动计算出的Pod扩缩数量,选取Pod变动最大的计算结果进行扩缩。 系统指标 主要包括CPU利用率和内存利用率两个指标,系统指标的查询与监控依赖Metrics API。例如,您希望控制工作负载对CPU资源的利用率在合理水平,可基于CPU利用率指标为其创建FederatedHPA策略。 利用率 = 工作负载Pod的实际资源使用量 / 资源申请量 自定义指标 主要提供Kubernetes Object相关的自定义监控指标,自定义指标的查询与监控依赖Custom Metrics API。例如,您可以基于每秒请求量、每秒写入次数等其他适合工作负载的自定义指标为其创建FederatedHPA策略。 Pod扩缩数量的计算 HPA Controller基于当前指标值和期望指标值来计算扩缩比例,再依据当前Pod数与扩缩比例计算出期望Pod数。当前Pod数与期望Pod数的计算方法如下: 当前Pod数 = 所有集群中状态为Ready的Pod数量 * ( 控制面模板的Pod数量 / 所有集群中Pod的总数量 ) 在计算期望Pod数时,HPA Controller会选择最近5分钟内计算所得的Pod数的最大值,以避免之前的自动扩缩操作还未完成,就直接执行新的扩缩的情况。 期望Pod数 = 当前Pod数 * ( 当前指标值 / 期望指标值 ) 例如,当以CPU利用率为扩缩容参考指标时,若当前指标值为100%,期望指标值为50%,那么按照公式计算出的期望Pod数即为当前Pod数的两倍。
  • 设置集群网络类型 需要保证集群的网络类型支持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网络 取决于附着集群网络类型
  • 本地集群配置文件 本地集群配置文件为一个Cluster.yaml文件,是在UCS 控制台中自动生成,用于初始化本地集群的master节点。表1是该文件内各个字段的说明。 表1 命令 配置项 配置命令 # ssh登录master节点用户 USERNAME: root # ssh登录master节点密码 PASSWORD: # 集群master1节点IP地址 MASTER-1: # 集群master2节点IP地址 MASTER-2: # 集群master3节点IP地址 MASTER-3: # 是否使用ELB# 是否使用ELB ACCESS_EXTERNAL_LOAD_BALANCE: false # 可用ELB地址 EXTERNAL_LOAD_BALANCE_IP: # 集群VIP地址 VIRTUAL_IP: # 容器网络服务 NETWORK_PROVIDER: cilium # 容器网段 CILIUM_IPV4POOL_CIDR: 172.16.0.0/16 # cilium bgp 开关 CILIUM_BGP_ENABLE: false # cilium bgp 邻居地址 CILIUM_BGP_PEER_ADDRESS: 127.0.0.1 # cilium bgp AS编号 CILIUM_BGP_PEER_ASN: 65010 # cilium 负载均衡网段 LOAD_BALANCER_CIDR: # cilium 容器网络模式 CILIUM_NETWORK_MODE: overlay # 时区 TIMEZONE: Asia/Shanghai # 是否对管理节点打污点 TAINT_MANAGE: yes # 是否使用NTP INSTALL_NTP: true # 外接ntp服务地址 NTP_SERVER_IP: # 代理转发模式 PROXY_MODE: ebpf # 外接dns服务地址 DNS_SERVER_IP: # 集群外部访问地址 CUSTOM_IP: # 集群安装包下载地址 PACKAGE_PATH: # 集群镜像包下载地址 IMAGES_PACKAGE_PATH: # IAM 租户ID IAM_DOMAIN_ID: # IAM 云服务地址 IAM_ENDPOINT: 父主题: ucs-ctl
  • MCS的工作原理 MCS的功能主要通过控制面组件karmada-controller-manager实现。karmada-controller-manager实时监控Service和MCS的变化,解析MCS对象定义的规则并负责将请求转发到相应的后端Service。 图1 MCS工作原理 MCS的工作原理如图1,实现流程如下: 用户在集群联邦控制面创建工作负载,并为其配置Service对象。图中名为foo的Service部署在cluster B中。 用户在集群联邦控制面创建MCS对象,并在MCS中配置访问规则,包括下发集群与目标集群名称等。图中的下发集群为cluster B,目标集群为cluster A。 karmada-controller-manager监控到Service和MCS对象的变化,将Service下发到源集群,并将源集群中的Endpoint Slices采集并下发到目标集群。 用户在目标集群(cluster A)中访问部署在下发集群(cluster B)中的Service时,请求将会被路由到源集群的服务后端,从而实现跨集群服务发现及访问。
  • 为什么需要MCS Service是Kubernetes中的一种资源对象,定义了一组Pod的访问方式。Service为Pod提供了一个稳定的IP地址和DNS名称,使得应用程序可以通过该IP地址或DNS名称来访问这些Pod,从而自动发现和连接到可用的Pod。在多集群场景下,为了满足数据主权、状态管理、可伸缩性等要求,需要将服务拆分至多个集群进行访问,这个过程相较单集群的服务访问而言更加困难。 MCS(Multi Cluster Service)是一种多集群Service资源对象,将Service的边界从单个集群扩展至集群联邦,帮助您简洁快速地实现跨集群服务发现和访问。 具体来说,MCS的应用场景非常广泛,典型的应用场景包括: 应用容灾:使用MCS,您可以在多个区域的不同集群中访问同一个Service,因此如果某个集群中应用不可用,访问请求可切换至其他集群进行处理。 服务共享:使用MCS,可以更便捷地在不同集群中访问公共服务(监控、日志系统等),无需为所有集群部署本地公共服务副本。 应用迁移:MCS桥接了不同集群服务间的通信,您可以将同一Service部署到不同集群,通过流量迁移来更轻松地进行应用迁移。
  • MCS的使用流程 MCS的使用流程见图2,具体的使用流程如下: 检测集群间的节点网络互通与容器网络互通,若未互通则需按照要求打通。具体操作请参见设置集群网络。 在集群联邦中提前部署可用的工作负载和服务。具体操作请参见准备工作。 创建MCS对象,并在MCS中配置访问规则。具体操作请参见创建MCS对象。 跨集群访问服务,即在MCS中配置的目标集群中访问部署在下发集群中的服务。具体操作请参见跨集群访问服务。 图2 MCS使用流程
  • 编辑CronFederatedHPA策略 登录UCS控制台,在左侧导航栏中选择“容器舰队”。 单击已开通集群联邦的容器舰队名称,进入容器舰队详情页面。 在左侧导航栏选择“负载伸缩”,选择“定时伸缩策略”,在需要编辑的策略所在行右侧单击“编辑”,在策略详情页面可以删除或添加策略规则。 如需删除策略规则,在规则后单击“删除”即可。 如需添加规则,单击策略配置下的“添加规则”,在弹窗内填写相关参数,然后单击“确定”。详细的参数说明请参见表3。 修改完成后,单击“确定”。
  • 修订记录 发布日期 修订记录 2024-01-05 第六次正式发布,包含以下内容: 新增第三方列表查询组件介绍。 刷新子表,支持添加链接字段。 2023-12-16 第五次正式发布,包含以下内容: 刷新设置执行动作,新增设置执行动作时请求参数的参数说明。 刷新使用连接器,新增支持获取连接器数据的组件相关介绍,补充设置连接器信息的说明。 刷新按钮触发,新增使用说明。 刷新定时触发,新增使用说明。 2023-10-30 第四次正式发布,包含以下内容: 新增帮助文档入口功能介绍。 新增管理视图卡片功能介绍。 新增添加应用模板,刷新创建事件,添加事件流模板,新建事件下拉框新增“应用”页签,分为事件流和应用两个页签。 刷新饼图,折线图,柱状图,新增分组功能介绍。 刷新关联子表,关联子表在预览表单或者创建事件填写表单时支持删除单行数据。 新增从Roma同步连接器功能介绍。 刷新创建自定义连接器,身份认证增加API密钥鉴权方式。 刷新上架应用,增加上架应用时校验管理视图与事件流关系的说明。 2023-09-30 第三次正式发布,包含以下内容: 刷新创建事件,事件归属功能增强,事件发布成功后,在关联主题的事件列表和对应的管理视图内均可以看到该事件内容。 刷新待办,圆桌门户左侧导航栏“管理视图”模块内上方“任务”更名为“待办”。 刷新主页介绍,圆桌门户页面体验优化,轻应用构建、模板市场、管理后台、更换背景色界面入口变更。 刷新我的常用,圆桌门户左侧导航栏支持展示“我的常用”卡片内自定义应用链接。 新增个人中心,在个人中心可以设置个人头像、修改密码、重置密码、查看隐私声明、切换/加入/退出企业、退出登录等操作。 新增连接器,打通第三方应用/系统。 新增文本加密组件介绍。 新增流水号组件介绍。 新增审计资料。 2023-09-07 第二次正式发布,包含以下内容: 刷新主页介绍,增加“我的常用”卡片功能介绍。 刷新数字秘书,数据秘书功能增强,支持智能推荐轻应用构建平台构建的通知/审批类事件模板。 刷新定时触发,定时任务支持重复触发。 刷新动态计算,支持通过日期偏移方式自动给表单字段赋值。 刷新表格,表格组件支持在运行态筛选。 刷新文件上传,图片展示,视频上传组件,优化组件属性功能。 新增从Excel新建模板,支持通过Excel导入方式创建事件模板。 新增二维码,饼图,折线图,柱状图组件介绍。 新增首页轮番图设置。 2023-08-29 第一次正式发布。
  • 使用限制 单账号跟踪的事件可以通过云审计控制台查询。多账号的事件只能在账号自己的事件列表页面去查看,或者到组织追踪器配置的OBS桶中查看,也可以到组织追踪器配置的CTS/system日志流下面去查看。 用户通过云审计控制台只能查询最近7天的操作记录。如果需要查询超过7天的操作记录,您必须配置转储到对象存储服务(OBS),才可在OBS桶里面查看历史文件。否则,您将无法追溯7天以前的操作记录。 云上操作后,1分钟内可以通过云审计控制台查询管理类事件操作记录,5分钟后才可通过云审计控制台查询数据类事件操作记录。
  • 属性 字段标题:该字段在页面呈现给用户的名称,默认名称为该字段类型名称。 标题加粗:是否打开开关,默认关闭状态。 字段状态:指成员在访问表单时,对该字段的可见、可编辑权限。 只读:勾选后,页面上该字段可见、不可编辑。 隐藏:勾选后,页面上该字段不可见、不可编辑。 禁用:勾选后,页面上该字段仍可显示,但不可进行配置。 验证:对字段做一些限制。 必填:字段是否必填。勾选“必填”,页面展示会有提示必填。 显示字段:设置子表中显示的字段。支持更改字段名称,支持添加字段和删除已有字段。字段支持的组件类型为单行输入框、多行输入框、日期、数字输入框和链接。 是否显示标题:当“标题内容”字段输入值时,此字段开启/关闭方可生效。 标题内容:设置关联子表的标题。 说明:对子表的解释说明,在子表中显示在标题下方。 宽度:字段配置框宽度占页面宽度的比例。
  • 属性 字段标题:该字段在页面呈现给用户的名称,默认名称为该字段类型名称。 标题加粗:是否打开开关,默认关闭状态。 字段状态:指成员在访问表单时,对该字段的可见、可编辑权限。 只读:勾选后,页面上该字段可见、不可编辑。 隐藏:勾选后,页面上该字段不可见、不可编辑。 禁用:勾选后,页面上该字段仍可显示,但不可进行配置。 验证:对字段做一些限制。 必填:字段是否必填。勾选“必填”,页面展示会有提示必填。 选择连接器:选择需要调用的连接器。 选择连接器动作:选择被调用连接器内需要执行的动作。 选择输入数据:单击“选择输入数据”,可以手动输入,也可以绑定本表单字段或者系统字段。 选择返回数据:单击“选择返回数据”,选择返回数据。 显示字段:设置第三方列表查询组件下拉列表显示的字段信息,支持选择多个字段,默认选择的第一项为下拉框选中后展示的内容。 填充规则:按填充规则将第三方列表查询字段的值填充到当前表单的字段。 由于数据结构的不同,对填充的字段有映射限制,如表1所示: 表1 字段映射关系 第三方列表查询字段类型 可选择的本模板字段类型 输入框 输入框、数字输入框、单选按钮、单选下拉框、关联模板(下拉框)、日期选择框、日期范围选择框、成员(值为姓名) 、级联选择、流水号、评分、开关 多行输入框 多行输入框、输入框、数字输入框、单选按钮、单选下拉框、关联模板(下拉框) 、日期选择框,日期范围选择框,成员(值为姓名) ,级联选择、流水号,评分,开关 日期选择框 日期选择框 数字输入框 数字输入框、评分 超链接 超链接 是否可见:页面是否显示第三方列表查询组件,默认是打开状态。 宽度:字段配置框宽度占页面宽度的比例。
  • 产品规格差异 Astro工作流提供了基础版、专业版和企业版三种不同的规格套餐,以满足不同场景下的用户需求。关于各规格的详细介绍,请参见表1。 基础版:满足个人及创业团队的基础需求,用户能够低门槛入门使用该产品。 专业版:满足中大企业搭建复杂业务场景的需求,提供了更多定制和集成的功能。 企业版:满足大企业搭建高性能复杂场景的需求,支持高级流程和表单的设计。 表1 Astro工作流套餐规格清单 版本类型 基础版 专业版 企业版 组织用户数 10人以内 50人起 50人起 创建、发布应用数 5个 100个 300个 应用模板 50个 1000个 6000个 单应用表单数 30个 100个 500个 单应用流程数 50个 100个 500个 单表单数据上限 1万条 20万条 50万条 单流程版本数 100个 200个 300个 流程模板 / / 500个 总数据调用次数 2万次 说明: 每月上限为2000次。如何计算数据调用次数,请参见在AstroFlow中,如何计算总数据调用次数。 20万次 50万次 自定义连接器 不支持 100个 300个 存储空间 20G 125G 250G 包含专属工作台 支持 支持 支持 业务门户风格定制 不支持 支持 支持 第三方服务集成 支持使用官方连接器和5个自定义连接器 支持使用官方连接器和100个自定义连接器 支持使用官方连接器和300个自定义连接器 高级流程编排能力 不支持 不支持 支持 高级表单设计能力 不支持 不支持 支持 表单设计态单个表单限制200个组件,流程编排中节点限制50个节点。其中,添加一次分支节点按照分支开始、分支条件(默认2个分支)、分支结束计算4个节点,若有分支增加另行计算。 不同版本的Astro工作流套餐包含不同的功能,详细功能说明请参见表2。 表2 Astro工作流套餐功能说明 功能名称 功能描述 组织用户数 组织内的用户人数。 应用数 创建、发布的应用数量。 总数据调用次数 购买版本的总数据调用次数。 单表单数据上限 单表数据量和总数据量中的“数据量”指的是通过表单提交的数据记录,提交一次即生成一条数据,也可以理解为数据的行数。 存储空间 可用的附件及相关资料的存储空间总量。 专属工作台 组织专属工作台功能。 (可选)第三方服务集成 自定义连接器,用于集成第三方服务在Astro工作流中使用。 (可选)流程、表单高级功能 在基础表单、流程功能基础上,对组件功能及设置进行了增强。 (可选)业务门户风格定制 可定制组织的业务门户风格和展示应用信息等。
  • 为域名添加解析记录集 公网域名创建成功后,需要为公网域名设置解析记录集,以便使用域名来访问实例。以下操作以添加A类型记录集为例,其他更多类型记录集请参见添加记录集。 单击新建的公网域名名称,进入“解析记录”页面,单击右上方“添加记录集”。 图6 添加记录集 在“添加记录集”弹出框中,根据界面提示填写记录集参数。 图7 添加解析记录集 参数配置说明请参见增加A类型记录集。 单击“确定”。 返回“解析记录”页面。 添加完成后,您可以在域名对应的记录集列表中查看已添加的记录集。当记录集的状态显示为“正常”时,表示记录集添加成功。
  • 如何调整大Key诊断阈值 string类型key以value大小为判断标准,hash/list/zset/set/stream类型key以元素数量为判断标准。 相关的配置参数有2个: bigkeys-string-threshold:value大于该值的string类型key,会被判断为大key,单位为byte。默认为102400(即1MB)。 bigkeys-composite-threshold:元素数大于该值的hash/list/zset/set类型key,会被判断为大key,单位为个。默认为1024。 以上两个参数设置不宜过小,以免过多无效结果占据网络带宽,影响业务访问。 参数设置方法: 在Web客户端页面,执行以下命令调整大Key诊断阈值。 string类大key阈值调整为10MB config set bigkeys-string-threshold 1024000 hash/list/zset/set类大key阈值调整为1024 config set bigkeys-composite-threshold 1024
  • 计费模式概述 正式计费后DBA智能运维分为两种模式:免费实例和付费实例。两者差异在于数据库提供的SQL数据保存时长不同,免费实例SQL数据保存1小时,付费实例SQL数据最大保存30天。此次付费对DBA智能运维服务新、旧实例均有效。每个用户最多只能开启10个免费实例的全量SQL和慢SQL,付费实例不限制。 表1 计费价格说明 场景 实例基础费用(仅付费实例) 超出存储空间收费 DBA智能运维 0.075元/实例/小时 赠送5GB SQL存储空间,超过5GB:0.0072元/GB/小时 父主题: 计费模式
  • 兼容接口和版本 介绍GeminiDB Influx目前支持的兼容接口和版本。 表1 兼容接口和版本 兼容接口 实例类型 版本 InfluxDB 集群 集群是基于多个节点(至少是三节点)组成。集群的主要特点是横向扩展能力强,能满足不断增长的数据量需求,因此当您对可用性要求较高、数据量较大、未来扩展性要求较高的情况下,推荐您使用集群架构。 单节点 单节点实例只有一个节点,如果您的业务量不大且可用性要求较低,推荐您使用单节点架构。 1.7,1.8 父主题: 产品介绍
  • 生命周期 伸缩组中的实例生命周期,从创建实例开始,到该实例从伸缩组中移除结束。 伸缩组中未添加生命周期挂钩时,实例生命周期内状态之间的过渡如图1所示。 图1 实例生命周期内状态之间的过渡 触发条件②和④表示系统自发触发实例状态的改变。 表1 实例的状态 实例所处状态 子状态 实例状态含义 触发条件 初始状态 - 即实例还没状态。 触发条件①包括有两种情况,只要其中一种情况就能够触发实例进入“正在加入”状态。 手动修改期望实例数或满足伸缩策略的条件时,触发伸缩活动,进行扩容。 手动添加已有实例至伸缩组。 正在加入 创建实例 在触发条件①的作用下,伸缩组开始扩容,创建实例。 绑定负载均衡监听器(可选) 在触发条件①的作用下,创建实例完成后,实例绑定负载均衡监听器。 已启用 - 实例进入伸缩组,开始接受处理业务流量。 触发条件③包括有三种情况,只要其中一种情况就能够触发实例从“已启用”状态到“正在移出”状态: 手动修改期望实例数或满足伸缩策略的条件时,触发伸缩活动,进行缩容。 实例进入启用状态后,开始健康检查,健康检查失败后,移出实例。 手动将实例移出伸缩组。 正在移出 解除绑定负载均衡监听器(可选) 在触发条件③的作用下,伸缩组开始缩容,实例解除绑定负载均衡监听器。 删除实例 实例解除绑定负载均衡监听器后,从伸缩组中移出。 已移除 - 实例在伸缩组中的生命周期已结束,即实例没有状态。 - 通过手动添加实例和伸缩活动向伸缩组添加实例,实例经过正在加入、已启用和正在移出状态后,实例将移出伸缩组。 伸缩组中已添加生命周期挂钩后,实例生命周期内状态之间的过渡如图2所示。当伸缩组进行伸缩活动时,实例将被生命周期挂钩挂起并置于等待状态,实例将保持此状态直至超时时间结束或者用户手动回调。用户能够在实例保持等待状态的时间段内执行自定义操作,例如,用户可以在新移入的实例上安装或配置软件,也可以在实例终止前从实例中下载日志文件。 图2 实例生命周期内状态之间的过渡 触发条件②、④、⑥、⑧表示系统自发触发实例状态的改变。 表2 实例状态 实例所处状态 子状态 实例状态含义 触发条件含义 初始状态 - 即实例还没状态。 触发条件①包括有两种情况,只要其中一种情况就能够触发实例进入“正在加入”状态。 手动修改期望实例数或满足伸缩策略的条件时,触发伸缩活动,进行扩容。 手动添加已有实例至伸缩组。 正在加入 创建实例 在触发条件①的作用下,伸缩组开始扩容,创建实例。 加入挂起 - 正在加入伸缩组的实例被生命周期挂钩挂起,将实例至于等待的状态。 触发条件③包括有两种情况,只要其中一种情况就能够触发实例从“加入挂起”到“正在加入”状态。 默认回调操作 手动回调操作 正在加入 绑定负载均衡监听器(可选) 在触发条件③的作用下,实例将继续正在加入伸缩组,绑定负载均衡监听器。 已启用 - 实例进入伸缩组,开始接受处理业务流量。 触发条件⑤包括有三种情况,只要其中一种情况就能够触发实例从“已启用”状态到“正在移出”状态: 手动修改期望实例数或满足伸缩策略的条件时,触发伸缩活动,进行缩容。 实例进入启用状态后,开始健康检查,健康检查失败后,移出实例。 手动将实例移出伸缩组。 正在移出 解除绑定负载均衡监听器(可选) 在触发条件⑤的作用下,伸缩组开始缩容,实例解除绑定负载均衡监听器。 移出挂起 - 正在移出伸缩组的实例被生命周期挂钩挂起,将实例至于等待的状态。 触发条件⑦包括有两种情况,只要其中一种情况就能够触发实例从“移出挂起”到“正在移出”状态。 默认回调操作 手动回调操作 正在移出 删除实例 在触发条件⑦的作用下,实例将继续正在移出伸缩组,删除实例。 已移除 - 实例在伸缩组中的生命周期已结束,即实例没有状态。 - 通过手动添加实例和伸缩活动向伸缩组添加实例,实例经过正在加入、加入挂起、正在加入、已启用、正在移出、移出挂起和正在移出状态后,实例将移出伸缩组。
  • 进行回调操作 在伸缩实例页面,单击需要进行回调操作的伸缩组名称,进入弹性伸缩组的“基本信息”界面。 选择“伸缩实例”页签。 单击被挂钩挂起实例“生命周期状态”列下的“加入挂起” 或“移出挂起”,如图3所示。 图3 回调操作入口 只有被生命周期挂钩挂起的实例,可执行回调操作。 在弹出的“伸缩实例挂起信息”界面,可查看某个实例的挂起信息及当前伸缩组中所有的挂钩,并且可对每个挂钩执行回调操作。如图4所示。 图4 伸缩实例挂起信息页面 回调操作包括: 继续 终止 延长超时时间 如果您在超时时间结束前已完成自定义操作,选择“继续”或“终止”完成生命周期操作。“继续”或“终止”操作含义请参见表1。如果您需要更多时间完成自定义操作,选择“延长超时间”延长超时时间,实例保持等待状态的时间将增加3600秒。
  • 工作原理 将生命周期挂钩添加到伸缩组后,生命周期挂钩将按照如下方式工作: 实例移入伸缩组 实例移入伸缩组并且初始化完成之后,自动触发挂钩类型为“实例启动”的生命周期挂钩,实例进入“加入挂起”状态,即实例被挂钩挂起。若您配置了一个通知目标,则系统会向该目标发送消息。收到消息后,您可以执行自定义操作,例如在实例上安装软件。自定义操作执行完成后,您可以手动执行回调操作,结束实例等待状态,详细操作步骤请参见进行回调操作。或等待超时时间结束,系统自动结束实例等待状态。实例等待状态结束之后的默认回调操作有两种执行方案,“继续”或“终止”。这两种执行方案解释如下: 继续:处于等待状态的实例将加入伸缩组。 终止:处于等待状态的实例将被直接删除并重新创建新实例。 若配置了多个“实例启动”类型的生命周期挂钩,实例移入伸缩组会触发多个生命周期挂钩,若有一个挂钩默认回调操作为“终止”时,将会直接删除实例并重新创建新实例。若所有挂钩默认回调操作都为“继续”时,则会等待最后一个挂钩挂起结束后,将实例加入伸缩组。 实例移出伸缩组 实例移出伸缩组时,先进入正在移出伸缩组状态,触发生命周期挂钩后,实例进入“移出挂起”状态。系统会向您配置的通知目标发送消息,收到消息后,您可以执行自定义操作,如卸载实例上的软件、备份数据等。自定义操作执行完成之后,您可以选择手动执行默认回调操作或等待超时时间超时来结束实例等待状态。等待状态结束后实例有两种执行方案,继续或终止,这两种执行方案解释如下: 继续:将实例移出伸缩组 终止:将实例移出伸缩组 当有多个挂钩时,“继续”表示继续等待其他挂钩挂起超时,只有所有挂钩状态都为“继续”时,才会将实例移出伸缩组。只要有一个挂钩默认回调操作为“终止”,会直接将实例移出伸缩组。
  • 准备工作 准备应用所运行的集群,本文以CCE集群为例进行演示,参考购买CCE集群在两个不同区域(如:华南-广州和华东-上海一)创建CCE集群,要求Kubernetes版本为1.19及以上,并且各个集群中至少拥有一个可用节点。 在实际生产环境中,多个集群可位于不同区域、可用区,甚至不同云服务商,实现应用的多活容灾。 已购买公网域名,并添加至华为云云解析(DNS)服务,具体操作请参考快速添加网站域名解析。
  • 应用场景 为了应对云单点宕机故障,UCS的集群联邦提供多云多活应用、秒级流量接管能力。业务应用的实例可以多云多活的部署在不同云上的容器服务中,当云单点宕机故障发生时,集群联邦可以秒级自动完成应用实例的弹性迁移以及流量的切换,业务的可靠性大大提升。 多活容灾方案示意如图1所示,通过创建域名访问规则,将应用分发到3个Kubernetes集群,包括两个华为云CCE集群(部署在不同Region)和一个其他云的Kubernetes集群,实现应用的多活容灾。 图1 多云集群应用多活容灾示意图
  • 故障倒换场景验证 按照上述集群应用部署操作,示例应用分别部署在集群“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 查看部署结果
  • 解决方案 要想实现上述的权限隔离,必须结合使用IAM系统策略和UCS权限管理功能,IAM系统策略控制用户可操作哪些UCS控制台的功能,UCS权限管理控制用户可操作哪些舰队和集群资源。 如图2所示,授权包括如下两大步骤。 第一步授权(IAM控制台):拥有Tenant Administrator权限的IAM管理员需要创建三个用户组,一个为管理员用户组,另外两个为项目组A、B所对应的用户组(用户组1、2),分别授予UCS FullAccess和UCS CommonOperations权限。 第二步授权(UCS控制台):拥有UCS FullAccess权限的UCS管理员分别为用户组1、用户组2创建各自的管理员权限、只读权限,然后关联到舰队上。 具体的关联策略如下:用户组1的管理员权限关联至舰队1、舰队2,只读权限关联至舰队3;用户组2的管理员权限关联至舰队1、舰队3,只读权限关联至舰队2。 图2 授权方案
  • 步骤一:IAM管理员授权 使用IAM管理员帐号登录IAM控制台。 左侧导航栏选择“用户组”,单击右上角“创建用户组”。 在“创建用户组”界面,输入管理员用户组的名称及描述,单击“确定”,完成用户组创建。 图3 创建用户组 在用户组列表中,单击目标用户组右侧的“授权”按钮。 图4 授权 搜索并选择权限策略UCS FullAccess。 图5 选择策略 单击“下一步”,选择授权范围方案。 选择“所有资源”,不设置最小授权范围,用户可根据权限使用帐号中所有资源,包括企业项目、区域项目和全局服务资源。 单击“确定”完成授权。 左侧导航栏选择“用户”,单击右上角“创建用户”,新建一个IAM用户。 填写用户名及初始密码,其余参数说明请参见创建IAM用户。 单击“下一步”,选择加入4中已授权的用户组。 图6 加入用户组 单击“创建用户”。 重复上述步骤,完成表1中其他用户组、用户的创建和授权。
  • 前提条件 帐号已开通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
  • 应用场景 UCS在统一身份认证服务(IAM)能力基础上,为用户提供细粒度的权限管理功能,帮助用户灵活便捷地对租户下的IAM用户设置不同的UCS资源权限,结合权限策略和舰队设计,可实现企业不同部门或项目之间的权限隔离。 例如,某公司同时推进两个项目组,每个项目组中有多名成员,权限分配如图1所示。 项目组A在开发过程中需要舰队1、2的管理员权限以及舰队3的只读权限。 项目组B在开发过程中需要舰队1、3的管理员权限以及舰队2的只读权限。 图1 权限设计
共100000条