华为云用户手册

  • 应用原理 通过 统一身份认证 服务(Identity and Access Management, IAM )对弹性云服务器(Elastic Cloud Server,E CS )的委托获取临时访问密钥来保护AK&SK。 访问凭证按照时效性可分为永久凭证和临时凭证,相较于永久性访问凭证,例如用户名和密码,临时访问密钥因为有效期短且刷新频率高,所以安全性更高。因此,您可以为ECS实例授予IAM委托,使ECS实例内的应用程序可以使用临时AK&SK+SecurityToken访问C SMS ,不需要保存临时访问密钥,每次需要时动态获取,也可以缓存在内存里定时更新。
  • 简介 双用户轮换策略是指在一个凭据中更新两个用户所保存的信息。 例如:您的应用程序需要保持高可用性,如果您使用单用户轮换,那么您在修改用户密码和更新凭据内容的过程中会出现访问应用失败的情况,这样您就需要使用双用户凭据轮换策略。 您需要有一个账号例如Admin有权限创建并修改user1、user2用户的账号密码,首先您创建一个凭据创建并保存user1的账号与密码,记为user1/password1。通过新增凭据版本v2创建user2,并且保存user2的账号密码,记为user2/password2。修改user1的密码后,您会需要新增凭据版本v3,记为user1/password3。比如在您轮换创建新的凭据版本v3时,应用程序会继续使用现有的凭据版本v2获取信息。一旦凭据版本v3准备就绪,轮换会切换暂存标签,以便应用程序使用凭据版本v3获取信息。
  • 简介 单用户凭据轮换是指一个凭据中更新一个用户所保存的信息。 这是最基础的凭据轮换策略,适用于大多数日常使用场景。 例如: 访问数据库。凭据轮换时不会删除数据库连接,轮换后的新连接使用新凭据。 访问允许用户创建一个用户账户的服务,例如以电子邮件地址作为用户名。服务通常允许用户根据需要经常更改密码,但用户无法创建其他用户或更改用户名。 根据需要创建的用户,称为临时用户。 以交互方式输入密码的用户,而不是让应用程序以编程方式从凭据管理服务中检索密码。这种类型的用户不需要更改用户名和密码。
  • 使用凭据登录数据库 下文为您介绍如何创建凭据,并且通过API调用凭据来登录到您的数据库。 您首先需要确保您的账号拥有KMS Administrator或者KMS CMKFullAccess权限,详情见DEW权限管理。 图1 凭据登录流程 流程说明如下: 您首先需要在凭据管理服务中使用控制台或者API创建一个凭据,用来存储数据库的相关信息(例如:数据库地址、端口、密码)。 当您使用应用程序访问数据库时,凭据管理服务会去查询步骤1所创建的凭据存储的内容。 凭据管理服务检索并解密凭据密文,将凭据中保存的信息通过凭据管理API安全地返回到应用程序中。 应用程序获取到解密后的凭据明文信息,使用这些安全的信息访问数据库。
  • 加密和解密原理 大量 数据加密 图1 加密本地文件 说明如下: 用户需要在KMS中创建一个用户主密钥。 用户调用KMS的“create-datakey”接口创建数据加密密钥。用户得到一个明文的数据加密密钥和一个密文的数据加密密钥。其中密文的数据加密密钥是由指定的用户主密钥加密明文的数据加密密钥生成的。 用户使用明文的数据加密密钥来加密明文文件,生成密文文件。 用户将密文的数据加密密钥和密文文件一同存储到持久化存储设备或服务中。 大量数据解密 图2 解密本地文件 说明如下: 用户从持久化存储设备或服务中读取密文的数据加密密钥和密文文件。 用户调用KMS的“decrypt-datakey”接口,使用对应的用户主密钥(即生成密文的数据加密密钥时所使用的用户主密钥)来解密密文的数据加密密钥,取得明文的数据加密密钥。 如果对应的用户主密钥被误删除,会导致解密失败。因此,需要妥善管理好用户主密钥。 用户使用明文的数据加密密钥来解密密文文件。
  • 简介 在DWS中,您可以为集群启用数据库加密,以保护静态数据。当您为集群启用加密时,该集群及其快照的数据都会得到加密处理。您可以在创建集群时启用加密。加密是集群的一项可选且不可变的设置。要从未加密的集群更改为加密集群(或反之),必须从现有集群导出数据,然后在已启用数据库加密的新集群中重新导入这些数据。 如果希望加密,可以在集群创建时启用加密。加密是DWS集群中的一项可选设置,建议您为包含敏感数据的集群启用该设置。
  • 哪些用户有权限使用DWS数据库加密 安全管理员(拥有“Security Administrator”权限)可以直接授权DWS访问KMS,使用加密功能。 普通用户(没有“Security Administrator”权限)使用加密功能时,根据该普通用户是否为当前区域或者项目内第一个使用加密特性的用户,作如下区分: 是,即该普通用户是当前区域或者项目内第一个使用加密功能的,需先联系安全管理员进行授权,然后再使用加密功能。 否,即区域或者项目内的其他用户已经使用过加密功能,该普通用户可以直接使用加密功能。 对于一个租户而言,同一个区域内只要安全管理员成功授权DWS访问KMS,则该区域内的普通用户都可以直接使用加密功能。 如果当前区域内存在多个项目,则每个项目下都需要安全管理员执行授权操作。
  • 使用KMS加密DWS数据库(控制台) 在DWS管理控制台,单击“购买 数据仓库 集群”。 打开“加密数据库”开关。 在“高级配置”中选择“自定义”,出现“加密数据库”开关。 图1 加密数据库 表示打开“加密数据库”开关,启用数据库加密。每个区域的每个项目首次启用数据库加密时,系统会弹出一个“创建委托”的对话框,单击“是”创建委托以授权DWS访问KMS,如果单击“否”将不会启用加密功能。然后在“密钥名称”的下拉列表中选择已创建的密钥。如果没有密钥,可以登录KMS服务进行创建,详细操作请参见《数据加密服务用户指南》。 表示关闭“加密数据库”开关,不启用数据库加密。 创建委托。 打开“加密数据库”开关,如果当前未授权DWS访问KMS,则会弹出“创建委托”对话框,单击“是”,授权DWS访问KMS,当授权成功后,DWS可以获取KMS密钥用来加解密云硬盘。 当您需要使用数据库加密功能时,需要授权DWS访问KMS。如果您有授权资格,则可直接授权。如果权限不足,需先联系拥有“Security Administrator”权限的用户授权,然后再重新操作。 加密设置。 打开“加密数据库”开关,如果已经授权,会弹出“加密设置”对话框。 图2 加密设置 密钥名称是密钥的标识,您可以通过“密钥名称”下拉框选择需要使用的密钥。 根据界面提示,配置其他基本信息。详细参数说明请参见创建集群。
  • 使用KMS加密DWS数据库流程 当选择KMS对DWS进行密钥管理时,加密密钥层次结构有三层。按层次结构顺序排列,这些密钥为主密钥(CMK)、集群加密密钥 (CEK)、数据库加密密钥 (DEK)。 主密钥用于给CEK加密,保存在KMS中。 CEK用于加密DEK,CEK明文保存在DWS集群内存中,密文保存在DWS服务中。 DEK用于加密数据库中的数据,DEK明文保存在DWS集群内存中,密文保存在DWS服务中。 密钥使用流程如下: 用户选择主密钥。 DWS随机生成CEK和DEK明文。 KMS使用用户所选的主密钥加密CEK明文并将加密后的CEK密文导入到DWS服务中。 DWS使用CEK明文加密DEK明文并将加密后的DEK密文保存到DWS服务中。 DWS将DEK明文传递到集群中并加载到集群内存中。 当该集群重启时,集群会自动通过API向DWS请求DEK明文,DWS将CEK、DEK密文加载到集群内存中,再调用KMS使用主密钥CMK来解密CEK,并加载到集群内存中,最后用CEK明文解密DEK,并加载到集群内存中,返回给集群。
  • 约束条件 已通过统一身份认证服务添加华为云文档数据库服务所在区域的KMS Administrator权限。权限添加方法请参见《统一身份认证服务用户指南》的“如何管理用户组并授权?”章节。 如果用户需要使用自定义密钥加密上传对象,则需要先通过数据加密服务创建密钥。使用数据加密服务创建密钥详情请参见创建密钥。 实例创建成功后,不可修改磁盘加密状态,且无法更改密钥。存放在 对象存储服务 上的备份数据不会被加密。 华为云文档数据库服务实例创建成功后,请勿禁用或删除正在使用的密钥,否则会导致数据库不可用,数据无法恢复。 选择磁盘加密的实例,新扩容的磁盘空间依然会使用原加密密钥进行加密。
  • 简介 当您由于业务需求需要对存储在文件系统的数据进行加密时,弹性文件服务为您提供加密功能,可以对新创建的文件系统进行加密。 加密文件系统使用的是密钥管理服务(KMS)提供的密钥,无需您自行构建和维护密钥管理基础设施,安全便捷。当用户希望使用自己的密钥材料时,可通过KMS管理控制台的导入密钥功能创建密钥材料为空的用户主密钥,并将自己的密钥材料导入该用户主密钥中。具体操作请参见导入密钥材料。 当您需要使用文件系统加密功能时,创建SFS文件系统需要授权SFS访问KMS。如果创建SFS Turbo文件系统,则不需要授权。
  • 哪些用户有权限使用文件系统加密 安全管理员(拥有“Security Administrator”权限)可以直接授权SFS访问KMS,使用加密功能。 普通用户(没有“Security Administrator”权限)使用加密功能时,需要联系系统管理员获取安全管理员权限。 同一个区域内只要安全管理员成功授权SFS访问KMS,则该区域内的普通用户都可以直接使用加密功能。 如果当前区域内存在多个项目,则每个项目下都需要安全管理员执行授权操作。
  • 文件系统加密的密钥 SFS加密文件系统使用KMS提供的密钥,包括默认主密钥和用户主密钥 (CMK,Customer Master Key): 默认主密钥:系统会为您创建默认主密钥,名称为“sfs/default”。 默认主密钥不支持禁用、计划删除等操作。 用户主密钥:即您已有的密钥或者新创建密钥,具体请参见创建密钥。 如果加密文件系统使用的用户主密钥被执行禁用或计划删除操作,当操作生效后,使用该用户主密钥加密的文件系统仅可以在一段时间内(默认为60s)正常使用。请谨慎操作。 SFS Turbo文件系统无默认主密钥,可以使用您已有的密钥或者创建新的密钥,具体请参见创建密钥。
  • 使用KMS加密私有镜像(控制台) 创建加密镜像分为通过加密弹性云服务器创建加密镜像和通过外部镜像文件创建加密镜像。 通过加密弹性云服务器创建加密镜像 用户选择弹性云服务器创建私有镜像时,如果该云服务器的系统盘已加密,那么使用该云服务器创建的私有镜像也是加密的。镜像加密使用的密钥为创建该系统盘时使用的密钥。 通过外部镜像文件创建加密镜像 用户使用OBS桶中已上传的外部镜像文件创建私有镜像过程中,可以在注册镜像时勾选KMS加密完成镜像加密。 用户上传镜像文件时,可以选择“KMS加密”,使用KMS提供的密钥来加密上传的文件,如图1所示。 在IMS管理控制台,单击“创建私有镜像”。 “创建方式”选择“系统盘镜像”。 “选择镜像源”为“镜像文件”。 勾选“KMS加密”。 图1 IMS服务端加密 密钥名称是密钥的标识,您可以通过“密钥名称”下拉框选择需要使用的密钥。您可以选择使用的密钥如下: 默认主密钥:KMS为使用IMS(Image Management Service,IMS)的用户创建一个默认主密钥“ims/default”。 用户主密钥:即您已有的密钥或者新创建密钥,具体请参见创建密钥。 根据界面提示,配置其他信息。详细参数说明请参见注册镜像。
  • 应用场景 KMS可以对OBS桶中的对象进行全量加密或者部分加密,在OBS服务使用KMS加密过程中,KMS提供的信封加密能力使数据加解密操作无需通过网络传输大量数据即可完成。信封加密方式有效保障了数据传输的加密性、数据解密的效率和便捷性,在对象上传和下载过程中,保证信息安全。 全量加密:指对OBS桶内上传的所有对象进行加密。 此时,您只需要对OBS桶加密,桶中上传的对象会默认继承OBS桶的加密配置。具体操作请参见加密OBS桶:创建OBS桶时开启服务端加密功能或者加密OBS桶:为已创建的OBS桶开启加密。 开启OBS桶加密后,上传对象时默认开启“继承桶加密配置”加密方式,此时桶中的对象和OBS桶采用相同的加密方式;如需修改桶中对象的加密方式,需要在上传对象时手动关闭“继承桶加密配置”开关,然后修改。具体操作请参见上传对象至OBS桶。 部分加密:指对OBS桶内上传的部分对象进行加密。 此时不需要对OBS桶进行加密,直接上传对象到OBS桶并进行加密配置。具体操作请参见上传对象至OBS桶。 图1 加密OBS
  • 上传对象至OBS桶 在OBS管理控制台桶列表中,单击待操作的桶,进入“概览”页面。 在左侧导航栏,单击“对象”。 单击“上传对象”,系统弹出“上传对象”对话框。 单击“添加文件”,选择待上传的文件后,单击“打开”。 在服务端加密行,选择目标加密方式,选择完成后,在下方的选择框中选择默认密钥或者自定义密钥,如图4所示。 图4 加密上传对象(已开启OBS桶加密) 开启OBS桶加密后,上传对象时默认开启继承桶的加密配置。 如果需要修改加密配置,需要手动关闭“继承桶的加密配置”选项,根据使用需求选择SSE-KMS或SSE-OBS加密方式。 图5 加密上传对象(未开启OBS桶加密) 未开启OBS桶加密在上传对象时需要手动开启服务端加密。 对象上传成功后,可在对象列表中查看对象的加密状态。 对象的加密状态不可以修改。 使用中的密钥不可以删除,如果删除将导致加密对象不能下载。
  • 原理介绍 华为云服务基于信封加密技术,通过调用KMS接口来加密云服务资源。由用户管理自己的用户主密钥,华为云服务在拥有用户授权的情况下,使用用户指定的用户主密钥对数据进行加密。 图1 华为云服务使用KMS加密原理 加密流程说明如下: 用户需要在KMS中创建一个用户主密钥。 华为云服务调用KMS的“create-datakey”接口创建数据加密密钥。得到一个明文的数据加密密钥和一个密文的数据加密密钥。 密文的数据加密密钥是由指定的用户主密钥加密明文的数据加密密钥生成的。 华为云服务使用明文的数据加密密钥来加密明文文件,得到密文文件。 华为云服务将密文的数据加密密钥和密文文件一同存储到持久化存储设备或服务中。 用户通过华为云服务下载数据时,华为云服务通过KMS指定的用户主密钥对密文的数据加密密钥进行解密,并使用解密得到的明文的数据加密密钥来解密密文数据,然后将解密后的明文数据提供给用户下载。
  • 在线工具加解密 加密数据 单击目标自定义密钥的名称,进入密钥信息页面后,单击“工具”页签。 在“加密”文本框中输入待加密的数据,如图1所示。 图1 加密数据 单击“执行”,右侧文本框显示加密后的密文数据。 加密数据时,使用当前指定的密钥加密数据。 用户可单击“清除”,清除已输入的数据。 用户可单击“复制到剪切板”拷贝加密后的密文数据,并保存到本地文件中。 解密数据 解密数据时,可单击任意“启用”状态的非默认密钥别名,进入该密钥的在线工具页面。 单击“解密”,在左侧文本框中输入待解密的密文数据,如图2所示。 在线工具自动识别并使用数据被加密时使用的密钥解密数据。 如果该密钥已被删除,会导致解密失败。 图2 解密数据 单击“执行”,右侧文本框中显示解密后的明文数据。 用户可直接单击“复制到剪切板”拷贝解密后的明文数据,并保存到本地文件中。 在控制台输入的明文,会进行base64编码得到加密后的字符。 如果直接调用API接口进行解密,得到的解密结果是进行了base64编码的内容。需再进行一次base64解码才能得到与控制台输入明文一致的内容。
  • 调用API接口加解密 以保护服务器HTTPS证书为例,采用调用KMS的API接口方式进行说明,如图3所示。 图3 保护服务器HTTPS证书 流程说明如下: 用户需要在KMS中创建一个用户主密钥。 用户调用KMS的加密数据密钥接口,使用指定的用户主密钥将明文证书加密为密文证书。 用户在服务器上部署密文证书。 当服务器需要使用证书时,调用KMS的解密数据密钥接口,将密文证书解密为明文证书。 由于控制台输入的加密原文会经过一次Base64转码后才传至后端,所以当调用API接口解密密文的时候,返回的明文就是加密原文经过Base64转码得到的字符串,故API加密密文后需要调用API进行解密,如果使用控制台解密API加密密文则会产生乱码。
  • AstroZero支持使用第三方数据库吗? AstroZero支持使用第三方数据库。 使用Astro Canvas构建可视化大屏时,提供了直连数据库(如MS SQL Server、MySQL、Oracle和 GaussDB )的能力,详情操作请参见关系型数据库。 其他场景下,在AstroZero中可通过创建ROMA连接器,实现与应用与 数据集成平台 (ROMA Connect)的对接,对接后通过调用ROMA Connect的API,间接访问数据库。更多介绍,请参见对接华为云ROMA Connect。 父主题: 产品咨询类
  • 3、创建工作表 在AstroZero零代码平台中,搭建应用从创建一张工作表开始,掌握20+种控件,定制出符合要求的个性化表单。 创建空白表单:在表单画布中,根据字段数据类型选择合适的组件,通过拖拽编排实现表单的构建。表单及其对应的视图、统计表等组成了应用。 从Excel创建表单:在Excel中设计好表单字段结构及相关数据,通过导入方式快速实现表单构建。 创建流程表单:在出差审批申请、工单派发流程等场景中,需要多个角色人员按流程分步骤互相协作,这时可使用创建流程表单来实现。 对于一些简单的业务应用,创建好一张工作表,您就可以开始进行数据的录入和管理了。
  • 1、试用或购买AstroZero实例 在使用AstroZero开发零代码应用前,需要先申请AstroZero免费使用或购买AstroZero商用实例。AstroZero实例是一个独立的资源空间,所有的操作都是在实例内进行,不同实例间的资源相互隔离。 申请AstroZero免费试用:AstroZero支持申请免费试用,试用版提供了开发零代码应用的运行环境,但是使用的资源有限。 购买AstroZero标准版实例:AstroZero为零代码开发者提供了一个标准版实例,供您专门用于零代码应用的开发。除此之外,AstroZero专业版和专享版实例也提供了零代码开发能力,更多介绍请参见产品规格差异。
  • 2、创建零代码应用 AstroZero零代码平台的模板中心内置了20+模板,覆盖疫情管控、问卷/考试系统、假期出行申请等众多热门场景。单击小试牛刀,创建您的第一个应用吧,让想法快速上线。 在AstroZero零代码平台中,您可以通过如下方式创建应用。 创建空白应用:创建一个空白应用,创建后需要为应用添加工作表。 使用模板创建应用:当您的业务与零代码应用模板中的场景相似度较高时,可以尝试使用应用模板创建,并在模板应用的基础上继续改造应用。 创建同款/克隆应用:通过创建同款应用或克隆应用,实现秒级无边界克隆,即搭即用、边改边用,让团队效率超级加倍。
  • 通过MCI访问服务 MCI对象创建成功后,您可以通过 http://IP:port/path 访问后端工作负载,其中IP:port为MCI关联ELB的IP和端口,path为MCI对象中定义的路径。 MCI对象中还可以设置外部 域名 ,这样您就可以通过域名来访问到ELB,进而访问到后端服务。 spec: rules: - host: www.example.com # 域名 http: paths: - path: / backend: serviceName: nginx # 准备一个名为nginx的联邦service servicePort: 80 # 端口号为80 域名访问依赖于域名解析,需要您将域名解析指向ELB实例的IP地址,例如您可以使用云解析服务 DNS来实现域名解析。 若访问服务失败,请参考通过MCI访问服务失败,如何排查?。
  • 创建MCI对象 使用kubectl连接集群联邦,详细操作请参见使用kubectl连接集群联邦。 创建并编辑 mci.yaml 文件,文件内容定义如下所示,参数定义请参见表1。 vi mci.yaml apiVersion: networking.karmada.io/v1alpha1 kind: MultiClusterIngress metadata: name: nginx-ingress namespace: default annotations: karmada.io/elb.conditions.nginx-svc: '[{ "type": "header", "headerConfig": { "key":"x-header", "values": [ "green" ] } }]' karmada.io/elb.id: 90f9f782-1243-41cc-a57d-6157f6cb85bf karmada.io/elb.projectid: 65382450e8f64ac0870cd180d14e684b karmada.io/elb.port: "883" # 端口设置 karmada.io/elb.health-check-flag.nginx-svc: "on" # 对应服务的健康检查配置项开关 karmada.io/elb.health-check-option.nginx-svc: '{"protocol":"TCP"}' # 对应服务的健康检查配置项 spec: ingressClassName: public-elb rules: - host: demo.localdev.me http: paths: - backend: service: name: nginx-svc # 准备一个名为nginx-svc的联邦service port: number: 8080 # 端口号为8080 path: /web pathType: Prefix MCI对象的结构体定义与networking.kubernetes.io/v1版本Ingress一致,不同之处在于后端服务需要填写为联邦Service,即在UCS控制台创建的Service,具体请参见集群内访问(ClusterIP)。 在配置MCI文件内容的过程中需要遵守的约束条件如下: apiVersion,kind,name必须指定。 spec下不允许填写TLS和DefaultBackend字段。 rules、paths不能为空。 host必须是DNS名称,不可以是IP地址。 service中所指定的后端服务必须是存在的、且输入的相关信息(如端口)是正确的,否则会导致访问服务失败。若您已经创建了参数信息错误的MCI对象,请参考4中的命令更新该MCI对象。 paths中,配置的高级转发策略(karmada.io/elb.conditions.{service name})越多的后端(backend)在paths中的位置应该越靠前。因为backend在paths中配置的位置越靠前,其转发优先级越高。 示例:如果为后端X配置两条转发策略a和b,为后端Y配置一条转发规则a,则此时paths中X的配置顺序应在Y之前,否则,同时符合a、b两条转发规则的流量将按照优先级顺序全部转发至Y中。 backend下不允许填写resource字段。 path值需要是绝对路径;不合法的path值:invalidPathSequences = []string{"//", "/./", "/../", "%2f","%2F"},invalidPathSuffixes = []string{"/..", "/."}。 pathType合法值:Exact、Prefix、ImplementationSpecific。 在默认配置下,Service名称的长度限制最长支持50个字符。 表1 关键参数说明 参数 是否必填 参数类型 描述 karmada.io/elb.id 是 String MCI关联的elb的id,不允许为空。 取值范围:1-32个字符。 karmada.io/elb.projectid 是 String MCI关联的elb所属的项目ID,获取方法请参见获取项目ID。 取值范围:1-32个字符。 karmada.io/elb.port 否 String MCI关联的elb的端口,不填时默认为80。 取值范围:1-65535。 karmada.io/elb.health-check-flag.{service name} 否 String 是否启用健康检查,可选值为: on:开启 off:不开启 不填写时默认为off。 说明: 该标签为"karmada.io/elb.health-check-flag.{serviceName}",仅对对应的service生效; karmada.io/elb.health-check-option.{service name} 否 HealthCheck Object 健康检查参数,详情请参见HealthCheck。{service name}请修改为联邦Service的名称。 说明: 健康检查参数配置示例: karmada.io/elb.health-check-option.nginx-svc: '{"protocol":"TCP","delay":"5","connect_port":"80","timeout":"1","max_retries":"1","path":"/wd"}' 在annotation开启健康检查配置的情况下,Service名称的长度不应超过39个字符。 karmada.io/elb.conditions.{service name} 否 Array of Condition Object 高级转发策略,详情请参见Condition。{service name}请修改为联邦Service的名称。 karmada.io/elb.lb-algorithm.{service name} 否 String 转发算法: ROUND_ROBIN:加权轮询算法。 LEAST_CONNECTIONS:加权最少连接算法。 SOURCE_IP:源IP算法。 不填写时默认为ROUND_ROBIN。 {service name}请修改为联邦Service的名称。 karmada.io/elb.keepalive_timeout 否 string 客户端连接空闲超时时间,单位为秒。当一直未请求的时间超过配置值,负载均衡会暂时中断当前连接,直到下一次请求时再重新建立新的连接。 不填写时默认为60s。 取值范围:0-4000s karmada.io/elb.client_timeout 否 string 等待客户端请求超时时间,单位为秒。 不填写时默认值为60s。 取值范围:1-300s karmada.io/elb.member_timeout 否 string 等待后端服务器响应超时时间,单位为秒。请求转发后端服务器后,若未响应时间超过配置值,负载均衡将终止等待,并返回HTTP 504错误码。 不填写时默认为60s。 取值范围:1-300s ingressClassName 是 String ingressClass名称。取值必须为public-elb。 host 否 String 为服务访问域名配置,默认为"",表示域名全匹配。请确保所填写的域名已注册并备案,一旦配置了域名规则后,必须使用域名访问。 backend 否 Backend Object 后端,是Service和端口名称的组合。对于发往MCI的 HTTP和HTTPS请求,如果与规则中的主机和路径匹配,则会被发送到所列出的后端。 注意: 后端在paths中的配置顺序决定了策略的转发优先级。 示例:如果为后端X配置两条转发策略a和b,为后端Y配置一条转发规则a,则此时paths中X的配置顺序应在Y之前,否则,同时符合a、b两条转发规则的流量将按照优先级顺序全部转发至Y中。 path 是 String 路由路径,您可以自定义设置。所有外部访问请求需要匹配host和path。 说明: 此处添加的访问路径要求后端应用内存在相同的路径,否则转发无法生效。 例如,Nginx应用默认的Web访问路径为“/usr/share/nginx/html”,在为Ingress转发策略添加“/test”路径时,需要应用的Web访问路径下也包含相同路径,即“/usr/share/nginx/html/test”,否则将返回404。 pathType 是 String 路径类型。 ImplementationSpecific: 正则匹配,请求的URL和设定的URL正则表达式匹配。 Exact:精确匹配 URL 路径,且区分大小写。 Prefix:前缀匹配,且区分大小写。该方式是将URL路径通过“/”分隔成多个元素 ,并且对元素进行逐个匹配。 如果URL中的每个元素均和路径匹配,则说明该URL的子路径均可以正常路由。 说明: Prefix匹配时每个元素均需精确匹配,如果URL的最后一个元素是请求路径中最后一个元素的子字符串,则不会匹配 。例如:/foo/bar匹配/foo/bar/baz,但不匹配/foo/barbaz。 通过“/”分隔元素时,若URL或请求路径以“/”结尾,将会忽略结尾的“/”。例如:/foo/bar会匹配/foo/bar/。 关于Ingress路径匹配示例,请参见示例。 表2 HealthCheck参数说明 参数 是否必填 参数类型 描述 protocol 否 String 健康检查使用的协议,支持TCP/HTTP,默认值是HTTP。 connect_port 否 Int 健康检查使用的端口。取值范围[1,65535],为可选参数。 说明: 默认使用后端服务器默认业务端口进行健康检查。指定特定端口后,使用指定的端口进行健康检查。 delay 否 Int 健康检查的延迟时间,以秒为单位,1-50,默认值是5秒。 timeout 否 Int 健康检查的超时时间,以秒为单位,1-50,默认值是10秒。 path 否 String 健康检查的请求URL,当type为HTTP/HTTPS时生效。 以"/"开头,默认为"/"。支持使用字母、数字和短划线(-)、正斜线(/)、半角句号(.)、百分号(%)、半角问号(?)、井号(#)和and(&)以及扩展字符集。长度为1-80个字符。 max_retries 否 Int 最大重试次数,取值范围1-10,默认值是3次。 表3 Condition参数说明 参数 是否必填 参数类型 描述 type 是 String 高级转发策略类型,当前仅支持header。 headerConfig 是 headerConfig Object 高级转发策略对象,详情请参见headerConfig。 表4 headerConfig参数说明 参数 是否必填 参数类型 描述 key 是 String 转发Header头。 长度限制1-40字符,只允许包含字母、数字、短划线和下划线。 values 是 String数组 转发Header头对应的值。 长度限制1-128字符,不支持空格, 双引号,支持以下通配符:*(匹配0个或更多字符)和?(正好匹配1个字符)。 执行如下命令创建MCI对象。 kubectl apply -f mci.yaml 回显如下。 multiClusterIngress.networking.karmada.io/nginx-ingress created 创建完成后,可以执行如下命令操作MCI对象。其中nginx-ingress为MCI对象的名称。 获取MCI对象:kubectl get mci nginx-ingress 更新MCI对象:kubectl edit mci nginx-ingress 删除MCI对象:kubectl delete mci nginx-ingress
  • 准备工作 如您没有可用的ELB实例,需要先创建ELB实例,具体请参考创建独享型负载均衡器。该ELB实例需要满足以下条件: ELB为独享型。 ELB必须支持应用型(HTTP/HTTPS)。 ELB网络类型必须支持私网(有私有IP地址)。 如果ELB与成员集群的网络不在同一VPC内,ELB需要支持开启跨VPC访问的开关。 MCI为跨集群后端工作负载提供统一入口和七层网络访问,因此需要在联邦中提前部署可用的工作负载(Deployment)和服务(Service)。若您无可用工作负载和服务,请参考无状态负载和集群内访问(ClusterIP)创建。 设置集群为underlay网络,支持underlay网络的集群类型请参见设置集群网络。
  • 约束限制 当前MCI仅支持版本为1.21及以上的 CCE Turbo 集群、网络模型为underlay的其他Kubernetes集群创建。 请提前做好网络规划,保证成员集群间容器网络不冲突,确保ELB实例与容器Pod IP网络可达。若MCI的ELB实例与集群处于不同VPC内,请提前打通VPC间的网络。 当为同一Service同时配置MCI与MCS时,该Service将会下发至MCS中配置的下发集群、访问集群以及对应工作负载的部署集群。
  • 操作步骤 登录华为云控制台。 在左侧导航栏中选择“分布式云原生”,选择“配置管理”。 在右上角“添加集群”,选择需要启用配置管理功能的目标集群,单击确定。 在集群概览页,选择目标集群,单击“Gitops能力”,查看Gitops插件(名称:集群名称-FluxPlugin)是否安装成功。当插件部署状态显示运行中,表示插件已部署成功。 图2 集群概览页 选择“配置集合”页签,单击创建配置集合。 选择仓库源,如果已有仓库源请参考使用已有仓库源配置,如果需要创建新仓库源,请参考创建新仓库源。
  • 创建新仓库源 单击“创建新仓库源”输入仓库源名称、仓库源URL地址。 输入需要与其同步的代码库分支。 选择数据源验证,以及输入密钥。 选择公有类型的仓库无需进行身份验证,即可提供只读权限。 选择私有类型的仓库,则数据源验证可选择“选择集群secret”和“提供认证信息(SSH)”,两种方式都需要配置的密钥进行身份验证。 仓库密钥创建请参考密钥。 仓库源创建完成后,在“自动同步策略”内输入“配置集合路径”,单击“下一步:信息确认”。 确认配置信息无误后,单击“创建配置集合”;如有问题,单击上一步进行修改。
  • 背景 Podinfo是一个微模型的Web应用程序,它展示了在Kubernetes中运行微服务的最佳实践,其主要用作于测试和研讨。本章将用podinfo源代码来做创建配置集合的示例。 为了可以更快的、更稳定的持续地交付软件、减少后续维护工作,所以将podinfo的源代码放入GitHub仓库,并通过创建配置集合的方式部署到集群中,通过GitOps能力实现软件自动化部署,具体请参考操作步骤。 创建podinfo源代码仓时,请先注册一个属于自己的GitHub账号,然后将podinfo所有代码fork到自己的GitHub仓库中。 在git仓库中定义交付资源清单文件时,不应包含敏感信息(如数据库连接密钥等)。相关敏感信息应以环境变量、加密存储的Secret等方式进行存储。 图1 Podinfo界面
共100000条