华为云用户手册

  • 产品功能 数字资产链服务支持以下功能: 表1 功能说明 规格 功能 说明 共享版 业务调用 通过SDK完成数字资产链的业务调用。 服务运营 查看API调用的统计监控,实时查看数字资产链实例的API调用、数字资产集合、数字资产发行、数字资产流转等相关数据。请参见图1。 资产检索 通过资产编码查看资产及资产所在集合的相关信息以及流转记录,如资产编码、集合名称、集合缩写、资产名称、资产类型、资产所有者地址、资产铸造者地址、铸造时间、转移时间、所在区块高度、交易hash值、销毁时间、销毁hash值等。请参见图2和图3。 说明: 销毁的资产,检索时不展示资产信息,只展示流转记录。 图中数据为测试数据,仅供参考。 数字资产浏览器 数字资产共享版浏览器,支持用户在未登录的情况下,查看共享版 区块链 中数字资产总发行数量、数字资产总流转次数、区块高度、总交易数等信息。同时也可以根据资产编码、交易哈希、区块哈希等值搜索对应数字资产详细信息、区块信息、交易信息以及流转记录等。请参见图4。 专享版 链管理 实时查看数字资产链实例运行状况,对实例做相应的操作。请参见图5。 单击实例名称可以查看实例的节点资源、网络分布及查询区块和交易信息。 资产管理 实时查看数字资产链实例的API调用、数字资产集合、数字资产发行、数字资产流转等相关数据。请参见图6。 合约仓库 统一展示和管理合约模板能力。请参见图7。 图1 共享版服务运营 图2 正常资产检索信息及流转记录 图3 销毁资产检索流转记录 图4 数字资产浏览器 图5 链概览 图6 专享版服务运营 图7 合约仓库 父主题: 数字资产链
  • 创建用户并授权使用DAC 如果您需要对您所拥有的DAC进行精细的权限管理,您可以使用 统一身份认证 服务(Identity and Access Management,简称 IAM ),通过IAM,您可以: 根据企业的业务组织,在您的华为账号中,给企业中不同职能部门的员工创建IAM用户,让员工拥有唯一安全凭证,并使用DAC资源。 根据企业用户的职能,设置不同的访问权限,以达到用户之间的权限隔离。 将DAC资源委托给更专业、高效的其他华为账号或者云服务,这些账号或者云服务可以根据权限进行代运维。 如果华为账号已经能满足您的要求,不需要创建独立的IAM用户,您可以跳过本章节,不影响您使用DAC服务的其它功能。 本章节为您介绍对用户授权的方法,操作流程如图1所示。 前提条件 给用户组授权之前,请您了解用户组可以添加的DAC权限,并结合实际需求进行选择,DAC支持的系统权限,请参见:DAC系统权限。若您需要对除DAC之外的其它服务授权,IAM支持服务的所有权限请参见系统权限。 示例流程 图1 给用户授权服务权限流程 创建用户组并授权 在IAM控制台创建用户组,并授予数字资产链服务权限“Tenant Administrator”。 创建用户并加入用户组 在IAM控制台创建用户,并将其加入1中创建的用户组。 用户登录并验证权限 新创建的用户登录控制台,切换至授权区域,验证权限。 父主题: 权限管理
  • 操作步骤 登录DAC管理控制台,在页面左上方选择区域。 单击左侧导航栏的“套餐包管理”。 在“套餐包管理”页面查看套餐包详情。 图1 套餐包统计 在“套餐包统计”栏,可通过饼状图查看您当前有效套餐包的总量,已使用量及剩余可调用量,左侧显示数字资产共享版/可信存证总次数的数据,右侧显示数字资产专享版总次数的数据,显示数值与实际使用数据存在15分钟左右延迟,仅供业务参考。 在“套餐包详情”栏,可查看您购买过的套餐包的规格、状态、剩余量/总量、生效时间和到期时间。显示数值与实际使用数据存在约1小时延迟,与费用中心的实际账单一致。 单击,可刷新套餐包详情数据。
  • 入门指引 数字资产链提供创建数字资产链、发起数字资产交易等功能。DAC服务的使用流程如下所示。 当前仅“华北-北京四”区域支持数字资产链服务。 图1 专享版使用流程 创建数字资产链 创建数字资产链,配置链基本参数。 购买套餐包 购买专享版套餐包,体验专享版资产链。 应用开发 下载链实例对应SDK配置和证书进行资产链对接。 发起数字资产交易 通过接口触发数字资产发行、流转,并记录到区块中。 浏览交易信息 查看数字资产链的区块、交易等信息。 父主题: 数字资产专享版
  • 调用示例 // 触控数据结构体 struct InputTouch { uint8_t pointerID; uint8_t orientation; uint8_t action; uint16_t pressure; uint16_t touchX; uint16_t touchY; uint16_t physicalWidth; uint16_t physicalHeight; int32_t touchTime; uint8_t reserved[16]; // 保留字段 }; InputTouch inputTouch; inputTouch.pointerID = 0; inputTouch.orientation = 0; inputTouch.action = 0; // ACTION_DOWN inputTouch.pressure = 129; inputTouch.physicalWidth = 720; inputTouch.physicalHeight = 1280; inputTouch.touchX = 52; inputTouch.touchY = 157; inputTouch.touchTime = 0; int ret = InjectTouchData(inputTouch); //注意 要确保数据类型是本地字节序,数据来自网络则需要使用ntohl()方法进行本地字节序转换
  • 输入参数 表1 输入参数说明 参数名称 说明 inputTouch 触控注入参数结构体,详见表2。 表2 触控注入参数结构体说明 参数名称 参数类型 说明 pointerID number 真机触点编号,多指触控下会有多个触点,取值范围[0,9],即最多支持10个触点。 orientation number 真机屏幕旋转角度,默认为0,可设置为1(90°),2(180°), 3(270°)。 action number 真机触控行为,如ACTION_DOWN, ACTION_UP,取值范围请参考:https://developer.android.com/reference/android/view/MotionEvent pressure number 真机触控压力值,默认为129。 physicalWidth number 真机屏幕分辨率宽,默认为0,取值范围[0,2160]。 physicalHeight number 真机屏幕分辨率高,默认为0,取值范围[0,4096]。 touchX number 真机触点坐标,取值范围[0,physicalWidth]。 touchY number 真机触点坐标,取值范围[0,physicalHeight]。 touchTime number 真机触控时间与上一次ACTION_DOWN时间的偏移量。 真机端触控事件的采集方式,详见端云协同的端侧SDK开源代码:端云协同的端侧SDK。 真机端触控事件采集相关代码,请参考:onTouch方法。
  • 模板约束与限制 使用 RFS 服务进行模板部署,模板文件内容具有如下约束与限制: 不能使用Provisioners功能和Backend Configuration功能。 可以使用Module Sources功能,但仅支持Local Modules。 可以使用HuaweiCloud Provider,但Provider内部分资源禁止使用。具体清单列举如下: huaweicloud_vod_watermark_template huaweicloud_compute_keypair huaweicloud_identity_access_key huaweicloud_images_image_v2 huaweicloud_kps_keypair huaweicloud_obs_bucket_object huaweicloud_iotda_batchtask huaweicloud_cce_chart huaweicloud_iotda_batchtask_file 部分函数禁止使用。具体清单列举如下: abspath basename dirname file filebase64 filebase64sha256 filebase64sha512 fileexists fileset filemd5 filesha1 filesha256 filesha512 pathexpand templatefile 父主题: 资源编排
  • 资源栈状态 资源栈管理包括两方面的能力,一是对资源栈进行生命周期管理,包括创建、更新、删除、查询等操作;二是对资源栈下的执行计划进行生命周期管理,包括执行计划的创建、删除、查询等操作。 资源栈生命周期中各状态说明如表1所示。 执行计划生命周期中各状态说明如表2所示。 表1 资源栈各个状态说明 资源栈状态 状态说明 创建成功,待部署 资源栈创建完成但是并未部署 正在部署 资源栈资源正在部署 部署成功 资源栈资源部署成功 部署失败 资源栈资源部署失败 正在删除 资源栈正在删除中 删除失败 资源栈删除失败 正在回滚 资源栈正在回滚中 回滚失败 资源栈回滚失败 回滚成功 资源栈回滚完成 表2 执行计划各个状态说明 执行计划状态 状态说明 创建中 执行计划创建中 创建失败 执行计划创建失败 创建成功,待部署 执行计划创建成功待部署 已执行部署 执行计划已执行部署 父主题: 入门
  • 支持Provider版本列表 Provider是将各类资源的API(比如资源的CRUD操作API)封装而成的插件,供资源编排引擎调用。 资源编排支持Provider类型与版本如下表。 类型 介绍 版本 支持云服务数 支持资源数 terraform-provider-huaweicloud 用户可以用华为云的provider与华为云上的各种资源进行交互。provider在使用前,需要配置相应的权限。 1.63.0 94 541 1.61.1 94 525 1.59.1 92 474 1.58.0 92 461 1.57.0 91 426 1.56.0 91 413 1.54.1 88 388 1.52.0 87 367 1.50.0 86 350 1.49.0 83 346 1.48.0 82 324 1.47.1 82 296 1.46.0 83 282 1.44.1 80 270 1.43.0 71 252 1.42.0 68 236 1.41.0 63 225 1.40.2 63 225 1.40.1 63 225 1.40.0 63 225 1.39.0 63 221 1.38.2 33 117 1.38.1 33 117 父主题: 资源编排
  • 条件(Condition) 条件键(Condition)是SCP生效的特定条件,包括条件键和运算符。 条件键表示SCP语句的Condition元素中的键值。根据适用范围,分为全局级条件键和服务级条件键。 全局级条件键(前缀为g:)适用于所有操作,在鉴权过程中,云服务不需要提供用户身份信息,系统将自动获取并鉴权。详情请参见:全局条件键。 服务级条件键(前缀通常为服务缩写,如ecs:)仅适用于对应服务的操作,详情请参见表4。 单值/多值表示API调用时请求中与条件关联的值数。单值条件键在API调用时的请求中最多包含一个值,多值条件键在API调用时请求可以包含多个值。例如:g:SourceVpce是单值条件键,表示仅允许通过某个 VPC终端节点 发起请求访问某资源,一个请求最多包含一个VPC终端节点ID值。g:TagKeys是多值条件键,表示请求中携带的所有标签的key组成的列表,当用户在调用API请求时传入标签可以传入多个值。 运算符与条件键、条件值一起构成完整的条件判断语句,当请求信息满足该条件时,SCP才能生效。支持的运算符请参见:运算符。 E CS 定义了以下可以在SCP的Condition元素中使用的条件键,您可以使用这些条件键进一步细化SCP语句应用的条件。 表4 ECS支持的服务级条件键 服务级条件键 类型 单值/多值 说明 ecs:imageID string 多值 根据请求参数中指定的镜像ID过滤访问。
  • 条件(Condition) 条件(Condition)是SCP生效的特定条件,包括条件键和运算符。 条件键表示SCP语句的Condition元素中的键值。根据适用范围,分为全局级条件键和服务级条件键。 全局级条件键(前缀为g:)适用于所有操作,在鉴权过程中,云服务不需要提供用户身份信息,系统将自动获取并鉴权。详情请参见:全局条件键。 服务级条件键(前缀为服务缩写,如ram:)仅适用于对应服务的操作,详情请参见表4。 单值/多值表示API调用时请求中与条件关联的值数。单值条件键在API调用时的请求中最多包含一个值,多值条件键在API调用时请求可以包含多个值。例如:g:SourceVpce是单值条件键,表示仅允许通过某个VPC终端节点发起请求访问某资源,一个请求最多包含一个VPC终端节点ID值。g:TagKeys是多值条件键,表示请求中携带的所有标签的key组成的列表,当用户在调用API请求时传入标签可以传入多个值。 运算符与条件键、条件值一起构成完整的条件判断语句,当请求信息满足该条件时,SCP才能生效。支持的运算符请参见:运算符。 RAM 定义了以下可以在SCP的Condition元素中使用的条件键,您可以使用这些条件键进一步细化SCP语句应用的条件。 表4 RAM支持的服务级条件键 服务级条件键 类型 单值/多值 说明 ram:RequestedResourceType string 多值 根据指定的资源类型过滤访问。 ram:ResourceUrn string 多值 根据具有指定URN的资源过滤访问。 ram:Principal string 多值 根据指定使用者的格式过滤访问。 ram:TargetOrgPaths string 多值 根据指定使用者所在的组织路径过滤访问。 ram:PermissionUrn string 单值 根据指定的权限URN过滤访问。 ram:ShareOwnerAccountId string 单值 根据拥有的资源共享的特定账户过滤访问。例如,您可以使用此条件键指定可以根据资源共享所有者的账户ID接受或拒绝资源共享邀请。 ram:AllowExternalPrincipals boolean 单值 按允许或者拒绝与外部使用者共享的资源共享过滤访问。例如,如果操作只能在允许与外部使用者共享的资源共享上执行,请指定true。外部使用者是指在其组织之外的账号。 ram:RequestedAllowExternalPrincipals boolean 单值 根据指定的allow_external_principals过滤访问。外部使用者是指在其组织之外的账号。
  • 容忍度(Toleration)说明 容忍度应用于Pod上,允许(但并不要求)Pod 调度到带有与之匹配的污点的节点上。 污点和容忍度相互配合,可以用来避免 Pod 被分配到不合适的节点上。每个节点上都可以拥有一个或多个污点,而对这些污点没有设置容忍度的Pod,将不会被调度到该节点上。 在 Pod 中设置容忍度的示例如下: apiVersion: v1 kind: Pod metadata: name: nginx labels: env: test spec: containers: - name: nginx image: nginx imagePullPolicy: IfNotPresent tolerations: - key: "key1" operator: "Equal" value: "value1" effect: "NoSchedule" 上面示例中表示节点上存在键名为“key1”,键值为“value1”,且效果为“NoSchedule”的污点时,该Pod能够调度到节点上。 容忍度还可以按如下方式进行设置,表示当节点上存在键名为“key1”,且效果为“NoSchedule”的污点时,该Pod也可以调度到节点上。 tolerations: - key: "key1" operator: "Exists" effect: "NoSchedule"
  • 管理节点标签/污点 登录集群控制台。 在左侧导航栏中单击“节点管理”,在节点列表中选择节点,并单击“标签与污点管理”。 单击按钮,设置节点标签/污点。如需执行多项操作,可多次添加,最多支持10条操作。 图1 添加标签/污点 选择“添加”或“删除”操作。 选择操作对象为“K8S标签”或“污点(Taints)”。 填写需要增加标签/污点的“键”和“值”。 如选择操作对象为“污点(Taints)”,需选择污点效果,关于污点效果说明请参见污点(Taints)说明。 单击“确定”,对所选节点执行标签/污点操作。
  • 污点(Taints)说明 污点格式为“Key=Value:Effect”,Key和Value作为污点的标签,Value可以为空,Effect用于描述污点的效果。当前Effect支持如下两个选项: NoSchedule:不能容忍此污点的 Pod 不会被调度到节点上,但是现有 Pod 不会从节点中逐出。 NoExecute:表示不能容忍此污点的 Pod 不会被调度到节点上,同时会将节点上已存在的Pod驱逐。
  • 节点标签使用场景 节点标签的主要使用场景有两类。 节点管理:通过节点标签管理节点,给节点分类。 工作负载与节点的亲和与反亲和: 有的工作负载需要的CPU大,有的工作负载需要的内存大,有的工作负载需要IO大,可能会影响其他工作负载正常工作等等,此时建议给节点添加不同标签。在部署工作负载的时候,就可以选择相应标签的节点亲和部署,保证系统正常工作;反之,可以使用节点的反亲和部署。 一个系统可以分为多个模块,每个模块由多个微服务组成,为保证后期运维的高效,可以将节点打上对应模块的标签,让各模块部署到各自的节点模块上,互不干扰、方便开发到各自节点上去维护。
  • 节点固有标签 节点创建出来会存在一些固有的标签,并且是无法编辑和删除的,这些标签的含义请参见表1。 表1 节点固有标签 键 值 failure-domain.beta.kubernetes.io/region 表示节点当前所在区域 failure-domain.beta.kubernetes.io/zone 表示节点所在区域的可用区 beta.kubernetes.io/arch 表示节点处理器架构 例如:amd64,表示AMD64位的处理器 beta.kubernetes.io/os 表示节点的操作系统 例如:linux,表示Linux操作系统 kubernetes.io/availablezone 表示节点所在区域的可用区 kubernetes.io/hostname 表示节点主机名称 os.architecture 表示节点处理器架构 例如:amd64,表示AMD64位的处理器 os.name 表示节点的操作系统名称 例如:EulerOS_2.0_SP2,表示欧拉2.2的版本 os.version 表示节点内核版本
  • 不同规格的资源配额要求 安装kube-prometheus-stack插件时,需确保集群中有足够的CPU、内存等可调度资源。Agent模式默认规格的资源配额要求请参见表1,Server模式下不同插件规格的资源配额要求请参见表2。 表1 Agent模式默认规格的资源配额要求 插件规格 容器实例 CPU配额 内存配额 默认规格 prometheusOperator 申请:100m 限制:500m 申请:100Mi 限制:500Mi prometheus 申请:500m 限制:4 申请:1Gi 限制:8Gi kube-state-metrics 申请:200m 限制:500m 申请:200Mi 限制:500Mi nodeExporter 申请:200m 限制:500m 申请:200Mi 限制:1Gi grafana 申请:100m 限制:500m 申请:200Mi 限制:2Gi 表2 Server模式不同规格的资源配额要求 插件规格 容器实例 CPU配额 内存配额 演示规格(100容器以内) prometheusOperator 申请:200m 限制:500m 申请:200Mi 限制:500Mi prometheus 申请:500m 限制:2 申请:2Gi 限制:8Gi alertmanager 申请:200m 限制:1 申请:200Mi 限制:1Gi thanosSidecar 申请:100m 限制:1 申请:100Mi 限制:2Gi thanosQuery 申请:500m 限制:2 申请:500Mi 限制:4Gi adapter 申请:400m 限制:2 申请:400Mi 限制:1Gi kube-state-metrics 申请:200m 限制:500m 申请:200Mi 限制:500Mi nodeExporter 申请:200m 限制:500m 申请:200Mi 限制:1Gi grafana 申请:200m 限制:500m 申请:200Mi 限制:2Gi clusterProblemDetector 申请:100m 限制:200m 申请:200Mi 限制:400Mi 小规格(2000容器以内) prometheusOperator 申请:200m 限制:500m 申请:200Mi 限制:500Mi prometheus 申请:4 限制:8 申请:16Gi 限制:32Gi alertmanager 申请:500m 限制:1 申请:500Mi 限制:1Gi thanosSidecar 申请:500m 限制:1 申请:500Mi 限制:2Gi thanosQuery 申请:2 限制:4 申请:2Gi 限制:16Gi adapter 申请:2 限制:4 申请:4Gi 限制:16Gi kube-state-metrics 申请:500m 限制:1 申请:500Mi 限制:1Gi nodeExporter 申请:200m 限制:500m 申请:200Mi 限制:1Gi grafana 申请:200m 限制:500m 申请:200Mi 限制:2Gi clusterProblemDetector 申请:200m 限制:500m 申请:300Mi 限制:1Gi 中规格(5000容器以内) prometheusOperator 申请:500m 限制:1 申请:500Mi 限制:1Gi prometheus 申请:8 限制:16 申请:32Gi 限制:64Gi alertmanager 申请:500m 限制:1 申请:500Mi 限制:2Gi thanosSidecar 申请:1 限制:2 申请:1Gi 限制:4Gi thanosQuery 申请:2 限制:4 申请:2Gi 限制:16Gi adapter 申请:2 限制:4 申请:16Gi 限制:32Gi kube-state-metrics 申请:1 限制:2 申请:1Gi 限制:2Gi nodeExporter 申请:200m 限制:500m 申请:200Mi 限制:1Gi grafana 申请:200m 限制:500m 申请:200Mi 限制:2Gi clusterProblemDetector 申请:200m 限制:1 申请:400Mi 限制:2Gi 大规格(超过5000容器) prometheusOperator 申请:500m 限制:1 申请:500Mi 限制:2Gi prometheus 申请:8 限制:32 申请:64Gi 限制:128Gi alertmanager 申请:1 限制:2 申请:1Gi 限制:4Gi thanosSidecar 申请:2 限制:4 申请:2Gi 限制:8Gi thanosQuery 申请:2 限制:4 申请:2Gi 限制:32Gi adapter 申请:2 限制:4 申请:32Gi 限制:64Gi kube-state-metrics 申请:1 限制:3 申请:1Gi 限制:3Gi nodeExporter 申请:200m 限制:500m 申请:200Mi 限制:1Gi grafana 申请:200m 限制:500m 申请:200Mi 限制:2Gi clusterProblemDetector 申请:200m 限制:1 申请:400Mi 限制:2Gi
  • 插件简介 kube-prometheus-stack通过使用Prometheus Operator和Prometheus,提供简单易用的端到端Kubernetes集群监控能力,同时还具备自定义插件规格、对接Grafana、高可用、节点亲和等能力。 kube-prometheus-stack插件的核心组件包括prometheusOperator、prometheus、alertmanager、thanosSidecar、thanosQuery、adapter、kubeStateMetrics、nodeExporter、grafana。 prometheusOperator:根据自定义资源(Custom Resource Definition / CRDs)来部署和管理Prometheus Server,同时监控这些自定义资源事件的变化来做相应的处理,是整个系统的控制中心。 prometheus(Server):Operator根据自定义资源Prometheus类型中定义的内容而部署Prometheus Server集群,这些自定义资源可以看作是用来管理Prometheus Server集群的StatefulSets资源。 alertmanager:插件的告警中心,主要用于接收Prometheus发送的告警并通过去重、分组、分发等能力管理告警信息。 thanosSidecar:高可用场景和Prometheus运行在同一个Pod中,用于实现普罗指标数据的持久化存储。 thanosQuery:普罗高可用时PromQL查询的入口,能够对来自Store或Prometheus的相同指标进行重复数据删除。 adapter(custom-metrics-apiserver):将自定义指标聚合到原生的Kubernetes API Server。 kube-state-metrics:将Prometheus的metrics数据格式转换成Kubernetes API接口能识别的格式。kube-state-metrics组件在默认配置下,不采集Kubernetes资源的所有labels和annotation。如需采集,请参考如何修改kube-state-metrics组件的采集配置?章节进行配置。 nodeExporter:每个节点上均有部署,收集Node级别的监控数据。 grafana:可视化浏览普罗监控数据。Grafana会默认创建大小为5 GiB的存储卷,卸载插件时Grafana的存储卷不随插件被删除。 clusterProblemDetector:用于监控集群异常。
  • 相关操作 密钥创建完成后,您还可以执行表2中的操作。 kube-system命名空间下的密钥资源不能通过控制台更新,也不能删除,只能查看。 表2 其他操作 操作 说明 编辑YAML 单击密钥名称后的“编辑YAML”,可编辑当前密钥的YAML文件。 更新密钥 选择需要更新的密钥名称,单击“更新”。 根据表1更改信息。 单击“确定”。 删除密钥 选择要删除的密钥,单击“删除”。 根据系统提示删除密钥。 批量删除密钥 勾选需要删除的密钥名称。 单击页面左上角的“批量删除”,删除勾选的密钥。 根据系统提示删除密钥。
  • Secret资源文件配置说明 本章节主要介绍Secret类型的资源描述文件的配置示例。 例如现在有一个工作负载需要获取账号密码,可以通过Secret来实现: yaml文件格式 定义的Secret文件secret.yaml内容如下。其中Value需要用Base64,Base64编码方法请参见如何进行Base64编码。 apiVersion: v1 kind: Secret metadata: name: mysecret # secret的名称 namespace: default #命名空间,默认为default data: username: bXktdXNlcm5hbWUK #用户名,需要用Base64编码 password: ****** #需要用Base64编码 type: Opaque # type建议不要做修改 json文件格式 定义的Secret文件secret.json内容如下。 { "apiVersion": "v1", "kind": "Secret", "metadata": { "name": "mysecret", "namespace": "default" }, "data": { "username": "bXktdXNlcm5hbWUK", "password": "******" }, "type": "Opaque" }
  • 准备网络环境 伙伴云集群的数据接入方式支持公网接入和私网接入。 公网接入是通过公网Internet接入,要求集群能够访问公网,具有弹性灵活、成本低、易接入的优势。如果对网络质量没有要求,只想采用更简便的方式接入,那么公网接入是个不错的选择。 公网接入要求集群能够访问公网,请确保集群已符合此条件,否则会接入失败。 私网接入是通过云专线(DC)或 虚拟专用网络 (VPN)服务将伙伴云网络与云上虚拟私有云(VPC)连通,并利用VPC终端节点通过内网与容器智能分析建立连接,具有高速、低时延、安全的优势。 图1 私网接入原理 因此,在开启之前,您需要准备满足一个云上虚拟私有云(VPC),并将伙伴云厂商的网络环境与该VPC连通。VPC子网网段不能与伙伴云中已使用的网络网段重叠,否则将无法接入集群,例如,伙伴云中已使用的VPC子网为192.168.1.0/24,那么华为云VPC中不能使用192.168.1.0/24这个子网。 网络连通可以选用如下两种方案: 虚拟专用网络(VPN)方案:请参见通过VPN连接云下数据中心与云上VPC。 云专线(DC)方案:请参见用户通过单专线静态路由访问VPC或用户通过单专线BGP协议访问VPC。
  • 策略实例 策略实例用于告知Gatekeeper应执行哪个策略定义以及如何执行。策略实例的详细说明请参见官方文档。 下面是一个策略实例示例,该示例使用先前提到的K8sRequiredLabels策略定义,确保Gatekeeper在所有命名空间上强制执行指定的标签。 apiVersion: constraints.gatekeeper.sh/v1beta1 kind: K8sRequiredLabels metadata: name: ns-must-have-gk spec: enforcementAction: deny match: kinds: - apiGroups: [""] kinds: ["Namespace"] parameters: labels: ["gatekeeper"] 改策略实例示例指定了使用“K8sRequiredLabels”策略定义并将执行策略的操作设置为“deny”,这意味着Gatekeeper将拒绝违反策略的请求。“match”部分限制了此策略实例仅适用于命名空间资源。“parameters”部分指定了必须存在于资源上的标签,本例中为“gatekeeper”。
  • 集群联邦支持的资源及操作 集群联邦支持的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
  • YAML示例 apiVersion: v1 kind: Pod metadata: labels: test: liveness name: liveness-http spec: containers: - name: liveness image: nginx:alpine args: - /server livenessProbe: httpGet: path: /healthz port: 80 httpHeaders: - name: Custom-Header value: Awesome initialDelaySeconds: 3 periodSeconds: 3 readinessProbe: exec: command: - cat - /tmp/healthy initialDelaySeconds: 5 periodSeconds: 5
  • 公共参数说明 表1 公共参数说明 参数 参数说明 检测周期(periodSeconds) 探针检测周期,单位为秒。 例如,设置为30,表示每30秒检测一次。 延迟时间(initialDelaySeconds) 延迟检查时间,单位为秒,此设置与业务程序正常启动时间相关。 例如,设置为30,表明容器启动后30秒才开始健康检查,该时间是预留给业务程序启动的时间。 超时时间(timeoutSeconds) 超时时间,单位为秒。 例如,设置为10,表明执行健康检查的超时等待时间为10秒,如果超过这个时间,本次健康检查就被视为失败。若设置为0或不设置,默认超时等待时间为1秒。 成功阈值(successThreshold) 探测失败后,被视为成功的最小连续成功数。 默认值是 1,最小值是 1。 存活探测的这个值必须是 1。 最大失败次数(failureThreshold) 当探测失败时重试的次数。 存活探测情况下的放弃就意味着重新启动容器。就绪探测情况下的放弃 Pod 会被打上未就绪的标签。 默认值是 3。最小值是 1。
  • 检查方式 HTTP 请求检查 HTTP 请求方式针对的是提供HTTP/HTTPS服务的容器,集群周期性地对该容器发起HTTP/HTTPS GET请求,如果HTTP/HTTPS response返回码属于200~399范围,则证明探测成功,否则探测失败。使用HTTP请求探测必须指定容器监听的端口和HTTP/HTTPS的请求路径。 例如:提供HTTP服务的容器,HTTP检查路径为:/health-check;端口为:80;主机地址可不填,默认为容器实例IP,此处以172.16.0.186为例。那么集群会周期性地对容器发起如下请求:GET http://172.16.0.186:80/health-check。 图1 HTTP请求检查 TCP 端口检查 对于提供TCP通信服务的容器,集群周期性地对该容器建立TCP连接,如果连接成功,则证明探测成功,否则探测失败。选择TCP端口探测方式,必须指定容器监听的端口。 例如:有一个nginx容器,它的服务端口是80,对该容器配置了TCP端口探测,指定探测端口为80,那么集群会周期性地对该容器的80端口发起TCP连接,如果连接成功则证明检查成功,否则检查失败。 图2 TCP 端口检查 执行命令检查 命令检查是一种强大的检查方式,该方式要求用户指定一个容器内的可执行命令,集群会周期性地在容器内执行该命令,如果命令的返回结果是0则检查成功,否则检查失败。 对于上面提到的TCP端口检查和HTTP请求检查,都可以通过执行命令检查的方式来替代: 对于TCP端口探测,可以使用程序来对容器的端口进行connect,如果connect成功,脚本返回0,否则返回-1。 对于HTTP请求探测,可以使用脚本来对容器进行wget。 wget http://127.0.0.1:80/health-check 并检查response 的返回码,如果返回码在200~399 的范围,脚本返回0,否则返回-1。如下图: 图3 执行命令检查 必须把要执行的程序放在容器的镜像里面,否则会因找不到程序而执行失败。 如果执行的命令是一个shell脚本,由于集群在执行容器里的程序时,不在终端环境下,因此不能直接指定脚本为执行命令,需要加上脚本解析器。比如脚本是/data/scripts/health_check.sh,那么使用执行命令检查时,指定的程序应该是sh /data/scripts/health_check.sh。究其原因是集群在执行容器里的程序时,不在终端环境下。
  • 操作场景 健康检查是指容器运行过程中,根据用户需要,定时检查容器健康状况。若不配置健康检查,如果容器内应用程序异常,Pod将无法感知,也不会自动重启去恢复。最终导致虽然Pod状态显示正常,但Pod中的应用程序异常的情况。 Kubernetes提供了两种健康检查的探针: 存活探针:livenessProbe,用于检测容器是否正常,类似于执行ps命令检查进程是否存在。如果容器的存活检查失败,集群会对该容器执行重启操作;若容器的存活检查成功则不执行任何操作。 就绪探针:readinessProbe,用于检查用户业务是否就绪,如果未就绪,则不转发流量到当前实例。一些程序的启动时间可能很长,比如要加载磁盘数据或者要依赖外部的某个模块启动完成才能提供服务。这时候程序进程在,但是并不能对外提供服务。这种场景下该检查方式就非常有用。如果容器的就绪检查失败,集群会屏蔽请求访问该容器;若检查成功,则会开放对该容器的访问。
  • 步骤一:注册集群 登录UCS控制台。 在左侧导航栏中选择“容器舰队”,单击附着集群选项卡中的“注册集群”按钮。 参考表1填写待添加集群的基础信息,其中带“*”的参数为必填参数。 表1 注册集群基础信息配置 参数 参数说明 集群名称* 输入集群的自定义名称,需以小写字母开头,由小写字母、数字、中划线(-)组成,且不能以中划线(-)结尾。 集群服务商* 选择一个集群服务商。 所属区域* 选择集群所在的区域。 集群标签 非必填项,以键值对的形式为集群添加标签,可以通过标签实现集群的分类。键值对可自定义,以字母或者数字开头和结尾,由字母、数字、连接符(-)、下划线(_)、点号(.)组成,且63个字符之内。 上传KubeConfig* 上传kubectl的配置文件来完成集群认证,支持JSON或YAML格式。获取KubeConfig文件的操作步骤因厂商而异,请参见KubeConfig。 选择Context* 选择对应的Context。在完成KubeConfig文件上传后,选项列表将自动获取文件中的“contexts”字段。 默认值为KubeConfig文件中“current-context”字段指定的Context,若文件中无此字段则需要从列表中手动选择。 容器舰队 选择集群所属的舰队。 舰队用于权限精细化管理,一个集群只能加入一个舰队。若不选择舰队,集群注册成功后将显示在“未加入舰队的集群”页签下,后续还可以再添加至舰队中。 不支持在注册集群阶段选择已开通集群联邦能力的舰队,如果一定要加入这个舰队,请在集群注册成功后,再添加到该舰队中。关于集群联邦的介绍,请参见开通集群联邦章节。 如需新建舰队,请参见管理容器舰队。 单击“确定”,集群注册成功后如图1所示,请在30分钟内接入网络。您可选择集群的接入方式或单击右上角按钮查看详细的网络接入流程。 如您未在30分钟内接入网络,将会导致集群注册失败,可单击右上角按钮重新注册集群。如果已经接入但数据未采集上来,请等待2分钟后刷新集群。 图1 集群等待接入状态
  • 插件状态说明 kube-prometheus-stack和log-agent插件的状态说明如表1所示。部分状态将影响集群进行监控开启、监控配置修改和监控关闭操作,详见后续章节的约束与限制部分。 表1 插件状态说明 状态 说明 插件未安装 插件未安装 运行中 插件全部实例状态都在运行中,插件正常使用 安装中 插件正在安装中 升级中 插件正在更新中 回滚中 插件正在回滚中 回滚失败 插件回滚失败,可重试回滚或卸载后重新安装 删除中 插件正在删除中 部分就绪 插件下只有部分实例状态为运行中,插件部分功能可用 不可用 插件状态异常,插件不可使用。可单击插件名称查看实例异常事件 安装失败 插件安装失败,需要卸载后重新安装 升级失败 插件升级失败,可重试升级或卸载后重新安装 删除失败 插件删除失败,可重试卸载 未知 插件处于未知状态,需要卸载后重新安装
共100000条