华为云用户手册

  • 卸载插件 登录CCE控制台,进入集群,在左侧导航栏选择“插件管理”,在右侧“已安装插件”页签下,单击virtual kubelet下的“卸载”。 在弹出的窗口中,单击“是”,可卸载该插件。(卸载插件会自动删除CCI侧的所有资源,以确保不会有资源残留造成额外计费) 由于virtual-kubelet插件卸载时会在集群中启动Job用于清理资源,卸载插件时请保证集群中至少有一个可以调度的节点,否则卸载插件会失败。若已经因无可调度节点造成插件卸载失败,需要在有可调度节点后重新单击插件卸载。 如果在未卸载virtual-kubelet插件的情况下直接删除集群,CCI侧的资源不会被自动清理,会导致CCI侧资源残留,可能会造成额外计费。因此请确保完成以下任意一操作。 在删除集群前先卸载virtual-kubelet插件。 在直接删除集群后登录CCI控制台删除名为cce-burst-${CLUSTER_ID}的命名空间。 集群休眠时CCI侧正在运行的实例不会自动停止,会持续运行并计费。因此如不需要实例继续运行,请确保在集群休眠前将弹性到CCI的负载实例数缩至0。
  • 使用profile管理线下IDC和云上分配数量 使用profile配置管理集群内pod,通过labelSelector类方式关联profile和pod,并配置关联pod的分配策略,实现pod在线下IDC和云上的分配或数量限制。 约束与限制 客户可通过Profile配置管理集群内pod策略,仍兼容原有pod的label内burst-to-cci的配置方式,优先级比profile高。 localPrefer不可同时配置local、cci。 auto和localPrefer策略允许关联未被profile关联过的pod,enforce策略不允许关联未被profile关联过的pod。 目前profile在配置localPrefer策略下,为避免全局性问题,在极限场景下限制local数量的配置可能会失效。 在deployment滚动升级场景下,推荐配置尽可能小的maxSurge值(如直接配置为0),避免出现升级时限制maxNum的区域调度量少于预期的现象。 pod只能关联一个profile,即关联度最大的profile。若pod创建后,对其label进行修改导致与原profile不匹配,pod会重新选择关联度最大的profile进行关联。关联度最大的profile确定方法: 根据profile中obejectLables计算labelSelector内matchLabels的数量及matchExpression的数量之和,和最大的profile即为pod关联度最大的profile; 若出现和相同的profile,选择profile的name字母序最小的profile为pod关联度最大的profile。 不支持使用log-agent插件采集profile管理的负载日志。 使用方式 配置local maxNum和scaleDownPriority apiVersion: scheduling.cci.io/v1 kind: ScheduleProfile metadata: name: test-cci-profile namespace: default spec: objectLabels: matchLabels: app: nginx strategy: localPrefer location: local: maxNum: 20 # 当前暂不支持local/cci同时配置maxNum scaleDownPriority: 10 cci: {} status: phase: initialized restrict: local: 20 # restrict内随着location内配置进行填写,即不会同时出现 local/cci used: local: 20 cci: 0 配置cci maxNum和scaleDownPriority apiVersion: scheduling.cci.io/v1 kind: ScheduleProfile metadata: name: test-cci-profile namespace: default spec: objectLabels: matchLabels: app: nginx strategy: localPrefer location: local: {} cci: maxNum: 20 # 当前暂不支持local/cci同时配置maxNum scaleDownPriority: 10 status: phase: initialized restrict: cci: 20 # restrict内随着location内配置进行填写,即不会同时出现 local/cci used: local: 0 cci: 20
  • 通过标签labels设置弹性策略 您成功安装virtual-kubelet插件后,在工作负载中添加virtual-kubelet.io/burst-to-cci这个标签即可设置弹性到CCI。 apiVersion: apps/v1 kind: Deployment metadata: name: test namespace: default labels: virtual-kubelet.io/burst-to-cci: 'auto' # 弹性到CCI spec: replicas: 2 selector: matchLabels: app: test template: metadata: labels: app: test spec: containers: - image: 'nginx:perl' name: container-0 resources: requests: cpu: 250m memory: 512Mi limits: cpu: 250m memory: 512Mi volumeMounts: [] imagePullSecrets: - name: default-secret 创建弹性至CCI的负载时需要在工作负载或Pod的labels中添加如下字段: virtual-kubelet.io/burst-to-cci: "auto" 其中,value值支持以下选项: auto:根据用户集群内调度器实际打分结果自动决定是否弹性至CCI,其中在TaintToleration算法上会优先选择调度到CCE节点。 localPrefer:集群资源不足时,将Pod部署到CCI。 enforce:强制调度至CCI。 off:不调度至CCI。
  • 插件简介 CCE容器存储(FlexVolume),即storage-driver,是一款云存储驱动插件,北向遵循标准容器平台存储驱动接口。实现Kubernetes Flex Volume标准接口,提供容器使用EVS块存储、SFS文件存储、OBS 对象存储、SFS Turbo 极速文件存储的能力。通过安装升级云存储插件可以实现云存储功能的快速安装和更新升级。 该插件为系统资源插件,Kubernetes 1.13及以下版本的集群在创建时默认安装。
  • 约束与限制 在CCE所创的集群中,Kubernetes v1.15.11版本是Flexvolume插件被CSI插件(everest)兼容接管的过渡版本,v1.17及之后版本的集群中将彻底去除对Flexvolume插件的支持,请您将Flexvolume插件的使用切换到CSI插件上。 CSI插件(everest)兼容接管Flexvolume插件后,原有功能保持不变,但请注意不要新建Flexvolume插件(storage-driver)的存储,否则将导致部分存储功能异常。 本插件仅支持在v1.13及以下版本的集群中安装,v1.15及以上版本的集群在创建时默认安装everest插件。 在v1.13及以下版本的集群中,当存储功能有升级或者BUG修复时,用户无需升级集群或新建集群来升级存储功能,仅需安装或升级storage-driver插件。
  • 解决方案 方案一:推荐使用Agent模式,对接AOM实例。使用AOM托管指标数据,无需管理存储。 方案二:在左侧导航栏中选择“存储”,并切换至monitoring命名空间,选中pvc-prometheus-server-0的磁盘,扩容对应的存储资源。扩容完成后前往有状态负载页面,将prometheus-server的实例重启。 图2 扩容PVC 在磁盘空间不足后已无法写入Prometheus指标,将导致数据无法采集,因此扩容完成重启后,该时段的监控数据将会丢失。
  • 通过控制台创建MySQL 登录CCE控制台。 单击集群进入集群控制台。 在左侧菜单栏选择“工作负载”,单击右上角“创建工作负载”。 填写工作负载基本信息。 负载类型:选择有状态负载。 负载名称:mysql。 命名空间:default。 实例数量:本例中修改数量为1,即创建单实例的MySQL。 图1 MySQL工作负载基本信息 填写容器基本信息。 在基本信息中单击“选择镜像”,在弹出的窗口中选择“镜像中心”,并搜索“mysql”,选择mysql镜像,并设置镜像版本为“5.7”。 图2 选择镜像版本 在“环境变量”下添加如下环境变量,此处一共需要设置四个环境变量。您可以在MySQL查看MySQL可以设置哪些环境变量。 MYSQL_ROOT_PASSWORD:MySQL的root用户密码,可自定义。 MYSQL_DATABASE:镜像启动时要创建的数据库名称,可自定义。 MYSQL_USER:数据库用户名称,可自定义。 MYSQL_PASSWORD:数据库用户密码,可自定义。 图3 设置环境变量 在“生命周期”下设置“启动命令”,如图4。 运行命令: /bin/bash 运行参数: -c rm -rf /var/lib/mysql/lost+found;docker-entrypoint.sh mysqld; 图4 设置启动命令 在“数据存储”下选择“动态挂载 (VolumeClaimTemplate)”,添加云硬盘存储作为MySQL的存储。 单击“创建存储卷声明PVC”,并填写以下关键参数,其余参数可保持默认: 存储卷声明类型:选择“云硬盘”类型。 PVC名称:自定义PVC名称,如mysql。 创建方式:仅支持“动态创建”。 存储类:默认为csi-disk。 可用区:选择一个可用区,云硬盘只能挂载到同一可用区的节点上,创建后不支持更换可用区,请谨慎选择。 云硬盘类型:请根据需求自定义选择合适的云硬盘类型。 容量(GiB):请根据需求填写容量,默认为10GiB。 单击“创建”,然后填写存储挂载到容器的路径, MySQL默认使用的路径为“/var/lib/mysql”。 图5 挂载mysql存储 在“实例间发现服务配置”设置Headless Service。 有状态负载需要配置一个用于实例间发现的Headless Service,Headless Service会生成每个Pod的集群DNS地址,可以实现对有状态负载某个特定实例的访问,对于多副本具有主副关系的MySQL 数据库,需要使用Headless Service对MySQL主服务器进行读写,并对其他副本进行数据复制。本示例中MySQL为单实例,因此并未使用Headless Service的相关功能,填写3306端口即可。关于多实例MySQL的示例请参见运行一个有状态的应用程序。 图6 Headless Service 在“服务配置”中单击加号,创建服务(Service),用于从WordPress访问MySQL。 访问类型选择集群内访问(ClusterIP),服务名称设置为mysql,容器端口和服务端口都配置为3306,单击“确定”。 mysql镜像的默认访问端口默认为3306,所以容器端口的ID设置为3306,访问端口可以设置为其他端口号,但这里也设置成3306是为了方便使用。 这样在集群内部,通过服务名称:访问端口就可以访问MySQL负载,也就是mysql:3306。 图7 创建服务 单击右下角“创建工作负载”。 等待工作负载创建成功。 创建成功后在有状态负载下会显示一个运行中的工作负载。 图8 MySQL负载创建成功
  • 创建节点 集群创建成功后,您还需要在集群中创建运行工作负载的节点。 登录CCE控制台。 单击创建的集群,进入集群控制台。 在左侧菜单栏选择节点管理,切换至“节点”页签,单击右上角“创建节点”,在弹出的页面中配置节点的参数。 本例中大多数配置保留默认值,仅解释必要参数。 计算配置 可用区:默认即可。 节点类型:选择“弹性云服务器-虚拟机”。 节点规格:请根据业务需求选择相应的节点规格。 容器引擎:请根据业务需要选择相应的容器引擎。 操作系统:请选择节点对应的操作系统。 节点名称:自定义节点名称。 登录方式: 选择“密码”:用户名默认为“root”,请输入登录节点的密码,并确认密码。 请妥善管理密码,登录节点时需要使用该密码,系统无法获取您设置的密码内容。 选择“密钥对”:在选项框中选择用于登录本节点的密钥对,并单击勾选确认信息。 密钥对用于远程登录节点时的身份认证。若没有密钥对,可单击选项框右侧的“创建密钥对”来新建,创建密钥对操作步骤请参见创建密钥对。 存储配置 系统盘:按您的业务需求选择,缺省值为50GB。 数据盘:按您的业务需求选择,缺省值为100GB。 网络配置 虚拟私有云:使用默认,即创建集群时选择的子网。 节点子网:选择节点所在的子网。 节点IP:节点的私网IP,选择随机分配。 节点弹性IP:弹性公网IP为节点提供访问外网的能力。添加弹性IP后,节点可访问外网,如从外网镜像仓库下载镜像等。 默认为“暂不使用”。支持“选择已有”和“自动创建”。 在页面最下方选择节点的数量和计费模式,单击“下一步: 规格确认”。 查看节点规格无误后,阅读页面上的使用说明,勾选“我已阅读并知晓上述使用说明”,单击“提交”。 等待节点创建成功,添加节点预计需要6-10分钟左右,请耐心等待。 创建成功后在节点管理下会显示一个运行中的节点。 图2 创建节点成功
  • 创建集群 登录CCE控制台。 如果您的账号还未创建过集群,请在引导页面中单击CCE集群下的“创建”。 如果您的账号已经创建过集群,请在左侧菜单栏选择集群管理,单击右上角“购买集群”,并选择CCE Standard集群。 在购买CCE Standard集群页面中配置集群参数: 本例中大多数配置保留默认值,仅解释必要参数,参照表1设置服务选型参数。 表1 创建集群参数配置 参数 参数说明 基础配置 * 集群名称 新建集群的名称。集群名称长度范围为4-128个字符,以小写字母开头,由小写字母、数字、中划线(-)组成,且不能以中划线(-)结尾。 * 企业项目 该参数仅对开通企业项目的企业客户账号显示,不显示时请忽略。 * 集群版本 建议选择最新的版本。 * 集群规模 当前集群可以管理的最大Node节点规模。若选择50节点,表示当前集群最多可管理50个Node节点。 * 高可用 默认选择“是”。 网络配置 * 网络模型 支持选择“VPC网络”和“容器隧道网络”,默认即可。 * 虚拟私有云 新建集群所在的虚拟私有云。 若没有可选虚拟私有云,单击“新建虚拟私有云”进行创建,完成创建后单击刷新按钮。 * 控制节点子网 集群Master节点所在的子网。 * 容器网段 设置容器使用的网段,决定了集群下容器的数量上限。 按默认配置即可。 * IPv4 服务网段 同一集群下容器互相访问时使用的Service资源的网段。决定了Service资源的上限。 创建后不可修改。 按默认配置即可。 单击“下一步:插件配置”,配置默认插件即可。 单击“下一步:规格确认”,显示集群资源清单,确认无误后,单击“提交”。 等待集群创建成功,创建集群预计需要6-10分钟左右,请耐心等待。 创建成功后在集群管理下会显示一个运行中的集群,且集群节点数量为0。 图1 集群创建成功
  • 问题根因 出现该问题的原因是Kubernetes在处理Event事件时,为了后端服务etcd的可用性,会对事件进行限流、聚合、计数的预处理,因此Kubernetes Event事件并非100%打印,在遇到大批量打印相同事件时,可能会出现上述问题。 以上逻辑通过Kubernetes源码中的EventCorrelate方法实现,您可以查看社区的设计方案了解详情。 该问题为Kubernetes设计机制导致,因此您可以无需关注。
  • 路由到多个服务 Ingress可以同时路由到多个服务,配置如下所示。 当访问“http://foo.bar.com/foo”时,访问的是“s1:80”后端。 当访问“http://foo.bar.com/bar”时,访问的是“s2:80”后端。 Ingress转发策略中的path路径要求后端应用内存在相同的路径,否则转发无法生效。 例如,Nginx应用默认的Web访问路径为“/usr/share/nginx/html”,在为Ingress转发策略添加“/test”路径时,需要应用的Web访问路径下也包含相同路径,即“/usr/share/nginx/html/test”,否则将返回404。 ... spec: rules: - host: foo.bar.com # host地址 http: paths: - path: "/foo" backend: service: name: s1 port: number: 80 - path: "/bar" backend: service: name: s2 port: number: 80 ...
  • 创建Ingress 下面例子中,使用http协议,关联的后端Service为“nginx:8080”,使用ELB作为Ingress控制器(metadata.annotations字段都是指定使用哪个ELB实例),当访问“http://192.168.10.155:8080/”时,流量转发“nginx:8080”对应的Service,从而将流量转发到对应Pod。 示例如下(适用于v1.23及以上版本的集群): apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: test-ingress annotations: kubernetes.io/elb.class: union kubernetes.io/elb.port: '8080' kubernetes.io/elb.id: aa7cf5ec-7218-4c43-98d4-c36c0744667a spec: rules: - host: '' http: paths: - path: / backend: service: name: nginx port: number: 8080 property: ingress.beta.kubernetes.io/url-match-mode: STARTS_WITH pathType: ImplementationSpecific ingressClassName: cce
  • Ingress工作机制 要想使用Ingress功能,必须在Kubernetes集群上安装Ingress Controller。Ingress Controller有很多种实现,最常见的就是Kubernetes官方维护的NGINX Ingress Controller;不同厂商通常有自己的实现,例如CCE使用弹性负载均衡服务ELB实现Ingress的七层负载均衡。 外部请求首先到达Ingress Controller,Ingress Controller根据Ingress的路由规则,查找到对应的Service,进而通过Endpoint查询到Pod的IP地址,然后将请求转发给Pod。 图2 Ingress工作机制
  • 命名空间权限(kubernetes RBAC授权) 命名空间权限是基于Kubernetes RBAC能力的授权,通过权限设置可以让不同的用户或用户组拥有操作不同Kubernetes资源的权限。Kubernetes RBAC API定义了四种类型:Role、ClusterRole、RoleBinding与ClusterRoleBinding,这四种类型之间的关系和简要说明如下: Role:角色,其实是定义一组对Kubernetes资源(命名空间级别)的访问规则。 RoleBinding:角色绑定,定义了用户和角色的关系。 ClusterRole:集群角色,其实是定义一组对Kubernetes资源(集群级别,包含全部命名空间)的访问规则。 ClusterRoleBinding:集群角色绑定,定义了用户和集群角色的关系。 Role和ClusterRole指定了可以对哪些资源做哪些动作,RoleBinding和ClusterRoleBinding将角色绑定到特定的用户、用户组或ServiceAccount上。如下图所示。 图1 角色绑定 在CCE控制台可以授予用户或用户组命名空间权限,可以对某一个命名空间或全部命名空间授权,CCE控制台默认提供如下ClusterRole。 view(只读权限):对全部或所选命名空间下大多数资源的只读权限。 edit(开发权限):对全部或所选命名空间下多数资源的读写权限。当配置在全部命名空间时能力与运维权限一致。 admin(运维权限):对全部命名空间下大多数资源的读写权限,对节点、存储卷,命名空间和配额管理的只读权限。 cluster-admin(管理员权限):对全部命名空间下所有资源的读写权限。 drainage-editor:节点排水操作权限,可执行节点排水。 drainage-viewer:节点排水只读权限,仅可查看节点排水状态,无法执行节点排水。
  • 集群权限(IAM系统策略授权) 默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 CCE部署时通过物理区域划分,为项目级服务。授权时,“作用范围”需要选择“区域级项目”,然后在指定区域对应的项目中设置相关权限,并且该权限仅对此项目生效;如果在“所有项目”中设置权限,则该权限在所有区域项目中都生效。访问CCE时,需要先切换至授权区域。 权限根据授权精细程度分为角色和策略。 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于云各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。例如:针对CCE服务,租户(Domain)能够控制用户仅能对某一类集群和节点资源进行指定的管理操作。多数细粒度策略以API接口为粒度进行权限拆分,CCE支持的API授权项请参见权限策略和授权项。 如表1所示,包括了CCE的所有系统权限。 表1 CCE系统权限 系统角色/策略名称 描述 类别 依赖关系 CCE Administrator 具有CCE集群及集群下所有资源(包含集群、节点、工作负载、任务、服务等)的读写权限。 系统角色 拥有该权限的用户必须同时拥有以下权限: 全局服务:OBS Buckets Viewer、OBS Administrator。 区域级项目:Tenant Guest、Server Administrator、ELB Administrator、SFS Administrator、SWR Admin、APM FullAccess。 说明: 如果同时拥有NAT Gateway Administrator权限,则可以在集群中使用NAT网关的相关功能。 如果IAM子用户需要对其他用户或用户组进行集群命名空间授权,则该用户需要拥有IAM只读权限。 CCE FullAccess CCE服务集群相关资源的普通操作权限,不包括集群(启用Kubernetes RBAC鉴权)的命名空间权限,不包括委托授权、生成集群证书等管理员角色的特权操作。 策略 无 CCE ReadOnlyAccess CCE服务集群相关资源的查看权限,不包括集群(启用Kubernetes RBAC鉴权)的命名空间权限。 策略 无 表2 CCE常用操作与系统权限的关系 操作 CCE ReadOnlyAccess CCE FullAccess CCE Administrator 创建集群 x √ √ 删除集群 x √ √ 更新集群,如后续允许集群支持RBAC,调度参数更新等 x √ √ 升级集群 x √ √ 唤醒集群 x √ √ 休眠集群 x √ √ 查询集群列表 √ √ √ 查询集群详情 √ √ √ 添加节点 x √ √ 删除节点/批量删除节点 x √ √ 更新节点,如更新节点名称 x √ √ 查询节点详情 √ √ √ 查询节点列表 √ √ √ 查询任务列表(集群层面的job) √ √ √ 删除任务/批量删除任务(集群层面的job) x √ √ 查询任务详情(集群层面的job) √ √ √ 创建存储 x √ √ 删除存储 x √ √ 操作所有kubernetes资源。 √(需Kubernetes RBAC授权) √(需Kubernetes RBAC授权) √ 容器智能分析所有资源查看权限 √ √ √ 容器智能分析所有资源操作权限 x √ √ 告警助手所有资源查看权限 √ √ √ 告警助手所有资源操作权限 x √ √ ECS(弹性云服务器)服务的所有权限。 x √ √ EVS(云硬盘)的所有权限。 可以将云硬盘挂载到云服务器,并可以随时扩容云硬盘容量 x √ √ VPC(虚拟私有云)的所有权限。 创建的集群需要运行在虚拟私有云中,创建命名空间时,需要创建或关联VPC,创建在命名空间的容器都运行在VPC之内。 x √ √ ECS(弹性云服务器)所有资源详情的查看权限。 CCE中的一个节点就是具有多个云硬盘的一台弹性云服务器 √ √ √ ECS(弹性云服务器)所有资源列表的查看权限。 √ √ √ EVS(云硬盘)所有资源详情的查看权限。可以将云硬盘挂载到云服务器,并可以随时扩容云硬盘容量 √ √ √ EVS(云硬盘)所有资源列表的查看权限。 √ √ √ VPC(虚拟私有云)所有资源详情的查看权限。 创建的集群需要运行在虚拟私有云中,创建命名空间时,需要创建或关联VPC,创建在命名空间的容器都运行在VPC之内 √ √ √ VPC(虚拟私有云)所有资源列表的查看权限。 √ √ √ ELB(弹性负载均衡)服务所有资源详情的查看权限。 x x √ ELB(弹性负载均衡)服务所有资源列表的查看权限。 x x √ SFS(弹性文件服务)服务所有资源详情的查看权限。 √ √ √ SFS(弹性文件服务)服务所有资源列表额查看权限。 √ √ √ AOM(应用运维管理)服务所有资源详情的查看权限。 √ √ √ AOM(应用运维管理)服务所有资源列表的查看权限。 √ √ √ AOM(应用运维管理)服务自动扩缩容规则的所有操作权限。 √ √ √
  • 责任共担 华为云秉承“将公司对网络和业务安全性保障的责任置于公司的商业利益之上”。针对层出不穷的云安全挑战和无孔不入的云安全威胁与攻击,华为云在遵从法律法规业界标准的基础上,以安全生态圈为护城河,依托华为独有的软硬件优势,构建面向不同区域和行业的完善云服务安全保障体系。 安全性是华为云与您的共同责任,如图1所示。 华为云:负责云服务自身的安全,提供安全的云。华为云的安全责任在于保障其所提供的 IaaS、PaaS 和 SaaS 类云服务自身的安全,涵盖华为云数据中心的物理环境设施和运行其上的基础服务、平台服务、应用服务等。这不仅包括华为云基础设施和各项云服务技术的安全功能和性能本身,也包括运维运营安全,以及更广义的安全合规遵从。 租户:负责云服务内部的安全,安全地使用云。 华为云租户的安全责任在于对使用的 IaaS、PaaS 和 SaaS 类云服务内部的安全以及对租户定制配置进行安全有效的管理,包括但不限于虚拟网络、虚拟主机和访客虚拟机的操作系统,虚拟防火墙、API 网关和高级安全服务,各项云服务,租户数据,以及身份账号和密钥管理等方面的安全配置。 《华为云安全白皮书》详细介绍华为云安全性的构建思路与措施,包括云安全战略、责任共担模型、合规与隐私、安全组织与人员、基础设施安全、租户服务与租户安全、工程安全、运维运营安全、生态安全。 图1 华为云安全责任共担模型 父主题: 安全
  • 计费模式 云容器引擎提供包年/包月、按需计费两种计费模式,以满足不同场景下的用户需求。关于计费模式的详细介绍请参见计费模式概述。 包年/包月是一种预付费模式,即先付费再使用,按照订单的购买周期进行结算,因此在购买之前,您必须确保账户余额充足。 按需计费是一种后付费模式,即先使用再付费,按照实际使用时长计费。 在购买集群或集群内资源后,如果发现当前计费模式无法满足业务需求,您还可以变更计费模式。详细介绍请参见变更计费模式概述。
  • 后续操作(可选) 已部署的实例,支持查看创建实例、删除实例、升级实例、添加组织、扩容节点、创建通道、节点加入通道等操作记录。左侧操作状态栏会展示已有操作记录的状态,操作状态类型包括:进行中、升级中、删除中、成功和失败(截图仅供参考,请以实际环境为准)。 图2 操作记录 系统将保留最近三天的操作记录。 登录区块链服务管理控制台,单击左侧导航栏中的“实例管理”。 单击“操作记录”,查看各个资源的操作记录。 您可以按资源名称关键词搜索操作记录,还可以在资源所在行进行“操作详情”及“删除”操作。 部署BCS的集群节点支持增加反亲和标签,在您需要将应用部署到区块链集群中时作区分隔离,以保证系统正常工作。 登录CCE控制台。 在“集群管理”页面,单击集群名称进入集群信息页面。 选择“节点管理”,在“节点”页签,勾选节点,单击“标签与污点管理”。 在弹出的窗口中,在“批量操作”下方单击“新增批量操作”,然后选择“添加/更新”。填写需要增加标签的键为“nodeScope”,值为“userApplication”。 单击“确定”。 标签添加成功后,再次单击“标签与污点管理”,在“节点数据”下方单击“查看”即可显示已经添加的标签。
  • 使用引导 华为云区块链引擎服务(Huawei Cloud Blockchain Service,简称HBS)提供实例部署、区块链管理、业务链管理等功能。以下为华为云区块链引擎服务使用全景图,希望对您的使用有所引导及帮助。 华为云区块链引擎本身不涉及用户敏感信息。使用华为云区块链引擎处理数据的目的、范围、处理方式、时限等请遵从当地适用的法律法规。华为云区块链引擎本身不建议传输和存储敏感数据,如果传输和存储敏感数据,请自行加密后再传输和存储。 图1 使用引导 注册账号 新用户请先注册完成实名认证,具体请参见账号注册和账号实名认证。 权限管理 创建用户并授权使用华为云区块链引擎。 实例部署 购买华为云区块链引擎实例。 实例管理 提供华为云区块链引擎管理功能,可实时查看华为云区块链引擎运行状况,并对华为云区块链引擎做相应的操作。 区块链管理 提供界面化合约管理功能,包括合约安装、更新合约。 下载配置文件 开发应用之前需要进行配置文件下载,配置文件中包含用户证书和SDK。 插件管理(公测) 支持安装插件、卸载插件、查看插件实例的基本信息。 关于配额 支持查看服务的配额使用情况和扩大配额。 父主题: 华为云区块链引擎管理
  • 配置节点 由于边缘节点一般处于企业内网,与互联网不通且未安装必要的软件,所以需要对边缘节点进行如下配置。 使用远程登录工具分别登录准备好的边缘节点。 执行如下命令配置HTTPS代理,使边缘节点与互联网相通。其中IP和端口请根据实际情况填写。 export https_proxy=ip:port export http_proxy=ip:port 执行如下命令安装Docker。 yum install epel-release yum install docker 检查docker相关配置。 检查docker.sock的权限。 [root@localhost ~]# ll /var/run/docker.sock srwxrwxrwx. 1 root root 0 Apr 25 21:59 /var/run/docker.sock 注意:如果权限不是777,请执行以下命令修改: chmod 777 /var/run/docker.sock 检查docker配置文件。 [root@localhost ~]# cat /etc/sysconfig/docker # /etc/sysconfig/docker # Modify these options if you want to change the way the docker daemon runs OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false' OPTIONS行删除selinux-enabled配置,如下所示: OPTIONS='--log-driver=journald --signature-verification=false' 执行以下命令,检查docker容器是否安装成功。 docker version 显示如下回显信息,表示docker容器安装成功。 图1 结果显示信息 配置Docker代理。 创建目录和文件。 mkdir /etc/systemd/system/docker.service.d vim /etc/systemd/system/docker.service.d/http-proxy.conf 为http-proxy.conf文件增加以下配置内容。 [Service] Environment="HTTP_PROXY=http://proxy_id:proxy_port" 加载配置并重启Docker。 systemctl daemon-reload systemctl restart docker 检查变量是否加载成功。 systemctl show docker --property Environment
  • 部署区块链实例 完成环境准备工作后,可按照如下步骤购买并部署区块链实例。“集群”请选择“边缘集群”,并填写需要使用的边缘节点IP。 现网账号欠费会导致实例网盘被释放,已购买的实例不可用。 创建区块链实例和添加组织时,请务必保证弹性IP或私有IP与边缘节点一一对应,否则可能导致节点部署失败。 登录区块链服务管理控制台,进入“实例管理”,单击Hyperledger Fabric增强版的“购买”按钮。 根据界面提示,配置区块链基本信息,参数如表2所示。 表2 基本信息配置 参数 描述 示例 计费模式 区块链实例管理收费模式,支持包年/包月、按需计费。 包年/包月 区域 区块链基础设施所在的区域,建议选择与业务应用系统相同的地域。 使用默认区域 企业项目 请选择已创建的企业项目,将区块链服务BCS添加至企业项目中。 说明: 如果您没有开通企业管理服务,将无法看到企业项目选项。开通方法请参见如何开通企业项目 如果您使用已有CCE集群部署区块链服务BCS,建议您将区块链服务BCS添加至CCE集群的企业项目中,如果区块链服务BCS与部署区块链服务的CCE集群处于不同的企业项目,可能导致使用异常。 default 区块链实例名称 支持中英文字符、数字及中划线,不能以中划线开头,长度为4-24个字符。 说明: 目前区块链实例名称不支持修改,只能删除重新创建。 bcs-wh 版本类型 BCS提供基础版、专业版和企业版供您选择。 专业版 区块链类型 私有链指仅本租户内部使用的区块链实例,联盟链指可邀请其他租户一起组建联盟的区块链实例。 私有链 Hyperledger Fabric增强版内核 区块链实例的版本号。 区块链版本4.x.x对应社区Hyperledger Fabric v2.2。 v2.2 共识策略 区块链网络中节点之间达成共识需要遵从的规则。 支持快速拜占庭容错共识算法(FBFT)、Raft(CFT),各策略分别具有不同的特性及使用场景,请参见产品功能。 说明: raft共识基础版、专业版、企业版默认3个orderer节点。 Raft(CFT) 资源初始密码 登录区块链管理界面时的admin账户的密码、云主机的root密码和CouchDB密码。 高级配置中的区块链管理初始密码、云主机的root密码和CouchDB密码为选填项、如果您填写了就以填写值为准、如果您不填写就以资源初始密码的值为准。 - 资源初始密码确认 再次输入资源初始密码进行确认。 - 购买时长 选择区块链实例的购买时长。 一个月 单击“下一步:资源配置”,进行资源配置,参数如表3所示。 表3 资源配置 参数 描述 示例 集群 用于部署区块链实例。 选择边缘集群,需要先纳管边缘节点并检查边缘节点状态。 边缘集群 节点部署模式 根据实际选择模式: 随机模式:边缘集群纳管的节点名称无需和peer节点组织的名称保持一致。 节点组织绑定模式:边缘集群纳管的节点名称必须和peer节点组织的名称保持一致。 节点组织绑定模式 网络存储 默认“本地存储”。 本地存储 边缘集群实例 可以选择专业版。 专业版 边缘节点IP 输入边缘节点IP地址,请确保输入的IP地址正确(联盟链请务必使用公网IP),否则可能会导致区块链网络异常。 - 单击“下一步:区块链配置”,进行区块链配置,参数如表4所示。 表4 区块链配置 参数 描述 示例 区块链配置 根据实际需求选择“系统默认配置”或“自定义配置”。 自定义配置 区块链管理初始密码 输入登录区块链管理界面的admin账户的密码进行确认。 - 区块链管理确认密码 再次输入登录区块链管理界面的admin账户的密码进行确认。 - 部署方式 当版本类型选择“企业版”时需要设置该参数。 选择“全量部署”,则在购买区块链实例时需将全部Peer节点配置到节点组织中。 选择“部分部署”,则在购买区块链实例时只需将部分Peer节点配置到节点组织中,剩余Peer节点可在购买区块链实例以后任意时刻通过添加组织或添加节点方式部署。 部分部署 peer节点组织 为区块链实例添加peer节点组织。 organization,节点数量为2。 部署节点总数 当版本类型选择“企业版”且部署方式为“部分部署”时,需要设置该参数。最大可设置为企业版Peer节点配额。 说明: 所有Peer节点自购买区块链订单完成之后开始计费。 50 通道配置 通道主要用于实现联盟链中业务的隔离。通道内包含业务的参与方(联盟内的部分或全部组织)作为通道成员。每个通道可视为一条子链,并且对应一套分布式账本。 默认创建名为“channel”的实例通道,并将刚才创建的示例节点组织添加进此通道。 共识节点数量 区块链网络中参与交易共识的节点数量。 当共识策略是Raft(CFT)时,共识节点数量为3。 3 安全机制 保证数据安全的加密算法,支持ECDSA和国密算法。 ECDSA 账本数据存储方式 支持文件数据库(GoLevelDB)和NoSQL(CouchDB)存储方式。 文件数据库(GoLevelDB):使用Fabric原生存储方式,交易历史数据保存在区块链中,状态数据保存在LevelDB中。 NoSQL(CouchDB):使用Fabric原生支持的存储方式CouchDB存储交易数据和状态数据。CouchDB数据库是一个独立的文档集合,每一个文档维护其自己独立的数据和自包含的schema。 文件数据库(GoLevelDB) 区块生成配置 产生的区块配置可支持区块产生时间,区块交易数量和区块容量,其中任何一个条件满足,区块就会产生,可根据交易频率和业务量灵活配置。 否 单击“下一步:确认订单”。 确认配置信息无误后,勾选协议和免责声明,并单击“提交订单”。 请等待数分钟,安装页面提示安装成功,查看实例状态变为“正常”后,表示实例部署完成。 图2 查看实例状态
  • 通知管理 当别的租户邀请您加入联盟链时,您会在此页面收到通知消息。 同意加入联盟链:在通知管理页面,单击通知列表“操作”的“查看”,选择BCS实例、组织并单击“同意”。 拒绝加入联盟链:在通知管理页面,单击通知列表“操作”的“查看”,单击“拒绝”。 删除通知:在通知管理页面,单击通知列表“操作”的“删除”。 稍后处理:在通知管理页面,单击通知列表“操作”的“查看”,单击“稍后处理”。 作为被邀请方,选择实例前需要单击“创建BCS实例”来创建实例,否则无法加入联盟通道。 通知状态包含: “未处理”表示邀请通知待处理,您可以单击“查看”选择同意或拒绝。 “已完成”表示您已同意邀请并加入联盟链。 “已取消”表示邀请方已删除实例,您不能再加入此联盟链。 “已拒绝”表示您主动拒绝邀请方加入联盟链的邀请。 “已退出”表示您同意邀请并已加入联盟链后又退出联盟链。 “已解散”表示您加入联盟链后,邀请方删除了实例导致联盟链解散。 “已冻结”表示邀请者账号已被冻结。 “已升级”表示您加入联盟链后,该联盟链中某个实例已升级成功。 父主题: 联盟链管理
  • 示例流程 图1 为用户授予权限流程 创建用户组并授权 在IAM控制台创建用户组,选择授予“BCS Administrator”权限。 由于该权限有依赖,除了勾选BCS Administrator外,还需要同时勾选依赖的权限BSS Administrator、VPCEndpoint Administrator、VPC Administrator才能生效。 创建用户并加入用户组 在IAM控制台创建用户,并将其加入1中创建的用户组。 用户登录并验证权限 新创建的用户登录区块链服务BCS控制台,验证华为云区块链引擎服务的操作权限。
  • 示例流程 图1 给用户授予BCS权限流程 创建用户组并授权 在IAM控制台创建用户组,并授予区块链服务的操作权限“BCS Administrator”。 如果选择“BCS Administrator”,由于该权限有依赖,除了勾选BCS Administrator外,还需要同时勾选依赖的权限Tenant Guest、Server Administrator、ELB Administrator、SFS Administrator、SWR Admin、APM FullAccess、AOM FullAccess、CCE Administrator、VPC Administrator、EVS Administrator、CCE Cluster Admin才能生效。 如果还需要其他服务的操作权限,请联系账号管理员添加。 创建用户并加入用户组 在IAM控制台创建用户,并将其加入1中创建的用户组。 用户登录并验证权限 新创建的用户登录控制台,验证区块链服务的操作权限。
  • 部署Hyperledger Besu实例 完成环境准备工作后,可按照如下步骤购买并部署Hyperledger Besu实例。 进入购买华为云区块链引擎实例页面。 已部署的实例,单击左侧导航栏中的“实例管理”,单击右侧的“操作记录”,查看操作记录并在实例右侧进行“操作详情”及“删除”操作。 根据界面提示,配置区块链基本信息,参数如表1所示。 图1 云端管理页面 表1 基本信息配置 参数 描述 示例 管理模式 选择云端管理:使用华为云资源管理区块链数据。 云端管理 实例类型 区块链实例的类型。有两种实例类型,华为云区块链引擎和Hyperledger Besu。 Hyperledger Besu 计费模式 华为云区块链引擎的收费模式,支持包年/包月。 包年/包月 区域 区块链基础设施所在的区域,建议选择与业务应用系统相同的地域。 使用默认区域 区块链实例名称 支持英文字符、数字及中划线,不能以中划线开头,长度为4-24个字符。 说明: 目前区块链实例名称不支持修改,只能删除重新创建。 bcs-hw 版本类型 版本的类型,当前支持企业版。 企业版 节点配置 支持增加节点成员数。 支持最大成员节点数10个。 - 高级设置 共识策略:区块链网络中节点之间达成共识需要遵从的规则。默认为IBFT2.0策略。 安全机制:保证数据安全的加密算法,默认为ECDSA。 - 购买时长 支持自定义购买实例的使用时间,最短1个月。 您可根据需要选择勾选自动续费,按月购买的自动续费周期为1个月,按年购买的自动续费周期为1年。 1个月 单击“立即创建”。 确认配置信息无误后,勾选协议和免责声明,并单击“提交”。 进入支付页面,确认订单费用无误后,单击“确认付款”,订单支付成功后,即可返回区块链服务控制台查看正在创建的实例。 实例创建大概需要18-25分钟,请耐心等待。实例创建成功后,查看实例状态变为“正常”后,表示华为云区块链引擎实例部署完成。
  • 后续操作(可选) 已部署的实例,支持查看创建、删除等操作记录。在“操作记录”页面,左侧操作状态栏会展示已有操作记录的状态,操作状态类型包括:初始化、进行中、成功和失败。 登录区块链服务管理控制台,单击左侧导航栏中的“实例管理”,选择华为云区块链引擎页签。 单击“操作记录”,查看各个资源的操作记录。 您可以按资源名称搜索操作记录,还可以在资源所在行进行“操作详情”及“删除”操作。 图2 华为云区块链引擎操作记录 系统将保留最近三天的操作记录。
  • 后续操作(可选) 已部署的实例,支持查看创建、删除等操作记录。在“操作记录”页面,左侧操作状态栏会展示已有操作记录的状态,操作状态类型包括:初始化、进行中、成功和失败。 登录区块链服务管理控制台,单击左侧导航栏中的“实例管理”,选择华为云区块链引擎页签。 单击“操作记录”,查看各个资源的操作记录。 您可以按资源名称搜索操作记录,还可以在资源所在行进行“操作详情”及“删除”操作。 图2 华为云区块链引擎操作记录 系统将保留最近三天的操作记录。
  • 部署华为云区块链引擎实例 完成环境准备工作后,可按照如下步骤购买并部署华为云区块链引擎实例。 进入购买华为云区块链引擎实例页面。 已部署的实例,单击左侧导航栏中的“实例管理”,单击右侧的“操作记录”,查看操作记录并在实例右侧进行“操作详情”及“删除”操作。 根据界面提示,配置区块链基本信息,参数如表1所示。 图1 云端管理页面 表1 基本信息配置 参数 描述 示例 管理模式 选择云端管理:使用华为云资源管理区块链数据。 云端管理 计费模式 华为云区块链引擎的收费模式,支持包年/包月。 包年/包月 区域 区块链基础设施所在的区域,建议选择与业务应用系统相同的地域。 使用默认区域 区块链实例名称 支持英文字符、数字及中划线,不能以中划线开头,长度为4-24个字符。 说明: 目前区块链实例名称不支持修改,只能删除重新创建。 bcs-hw 版本类型 提供专业版、企业版和铂金版供您选择。 专业版 组织配置 支持增加组织成员数。 专业版支持最大成员组织数2个,企业版支持最大成员组织数10个,铂金版支持最大成员组织数100个。 - 高级设置 共识策略:区块链网络中节点之间达成共识需要遵从的规则。默认为Raft(CFT)策略。 安全机制:保证数据安全的加密算法,默认为ECDSA;支持国密算法。 - 购买时长 支持自定义购买实例的使用时间,最短1个月。 您可根据需要选择勾选自动续费,按月购买的自动续费周期为1个月,按年购买的自动续费周期为1年。 1个月 单击“立即创建”。 确认配置信息无误后,勾选协议和免责声明,并单击“提交”。 进入支付页面,确认订单费用无误后,单击“确认付款”,订单支付成功后,即可返回区块链服务控制台查看正在创建的实例。 实例创建大概需要18-25分钟,请耐心等待。实例创建成功后,查看实例状态变为“正常”后,表示华为云区块链引擎实例部署完成。
  • 操作步骤 登录区块链服务管理控制台。 在左侧导航栏中选择“实例管理”,选择Hyperledger Besu实例。 单击实例名称,进入实例详情页面。 在左侧导航栏中选择“认证凭据”,进入认证凭据页面。 单击“创建凭据”,在创建凭据页面中,填写描述信息。 单击“确定”,认证凭据创建完成,并自动下载认证凭据zip包。 每个认证凭据仅能下载一次,为了节点安全性,建议您定期更换并妥善保存认证凭据。 解压后,打开credential.csv文件,可获取认证凭据信息。 通过Authorization:Bearer $JwtToken调用Besu的接口,JwtToken为已获取的认证凭据信息。
  • 解决方案 登录区块链控制台,单击界面上方的“费用”进入费用中心界面。 在“续费资源”项下单击“立即续费”,进入续费管理界面,选择需要续费的目标资源,单击“续费”并支付。 续费完成后,在ECS控制台,查看目标区块链所在ECS云服务器状态(云服务器节点一般命名为:区块链服务所在集群名称-随机数),若云服务器状态为“关机”,开机后请等待大约5min再次尝试。 续费后订单状态为“已完成”,表示资源已解除冻结,资源状态恢复正常。
共100000条