华为云用户手册

  • 问题一:用户负载无法调度到CCI,登录CCE节点执行kubectl get node发现virtual-kubelet节点状态为不可调度。 问题原因:CCI资源售罄导致弹性到CCI的资源调度失败,bursting节点会被锁定半小时(状态变为SchedulingDisabled),期间无法调度至CCI。 解决方案:用户可通过CCE集群控制台,使用kubectl工具查看bursting节点状态,如果节点被锁定,可手动解锁bursting节点。
  • 问题三:插件由1.5.18及以上版本回退至低于1.5.18后,Pod通过Service访问出现异常 问题原因:插件升级到1.5.18及以上版本之后,新弹性到CCI的Pod中的sidecar无法兼容1.5.18以下版本的插件,因此插件回退版本后会导致这些Pod中的Service访问异常。插件在低于1.5.18版本时弹性到CCI的Pod不受影响。 解决方案: 方案一:将插件再升级到1.5.18及以上版本。 方案二:将Service访问异常的Pod删除重建,重建后弹性到CCI的Pod Service访问将恢复正常。
  • 约束与限制 调度到CCI的实例的存储类型支持ConfigMap、Secret、EmptyDir、DownwardAPI、Projected、PersistentVolumeClaims几种Volume类型,其中Projected和DownwardAPI类型仅bursting 1.3.25版本及以上支持。 EmptyDir:不支持子路径。 PersistentVolumeClaims:只支持SFS、SFS Turbo 云存储 类型,且只支持使用 CS I类型的StorageClass。1.17.10及以下版本的Volcano调度器不支持调度所有云存储类型。 Projected:如配置了serviceAccountToken类型的source,那么弹性到CCI后挂载的会是对应service-account-token secret中的token,该token为长期有效的token且没有预期受众,即expirationSeconds和audience两项配置不会生效。
  • 负载Hostpath配置方式 操作场景 在使用CCE或者其他K8s集群时,用户使用HostPath类型存储。但CCI是共享集群,不开放HostPath能力,因此使用HostPath的Pod通过bursting弹到CCI时,会被拦截。如无法改变Pod spec.volumes中配置的HostPath,可通过配置Annotation的形式,允许让使用HostPath的Pod弹性到CCI上,bursting在校验时需要去掉Pod中的HostPath或者将HostPath替换为emptyDir。 约束与限制 EmptyDir的sizeLimit需为1Gi的整数倍,且不能大于Pod CPU核数的10倍。 LocalDir和flexVolume当前暂不支持。 操作步骤 通过在Pod.Annotations中加入注解可以做到hostPath转emptydir。 单个hostPath替换为emptyDir配置方式: "coordinator.cci.io/hostpath-replacement": '[{"name":"source-hostpath-volume-3","policyType":"replaceByEmptyDir","emptyDir":{"sizeLimit":"10Gi"}}]' 单个hostPath忽略: "coordinator.cci.io/hostpath-replacement": '[{"name":"source-hostpath-volume-1","policyType":"remove"}]' 全部HostPath都忽略: "coordinator.cci.io/hostpath-replacement": '[{"name":"*","policyType":"remove"}]' 多个HostPath差异化替换策略: "coordinator.cci.io/hostpath-replacement": '[{"name":"source-hostpath-volume-1","policyType":"remove"},{"name":"source-hostpath-volume-3","policyType":"replaceByEmptyDir","emptyDir":{"sizeLimit":"10Gi"}}]' 对于path为/etc/localtime的HostPath存储,会被单个HostPath替换的策略(策略name为具体的volume name)替换,不会被全部HostPath替换的策略(策略name为"*")替换。 参考deployment yaml示例: apiVersion: apps/v1 kind: Deployment metadata: annotations: description: '' labels: virtual-kubelet.io/burst-to-cci: enforce appgroup: '' version: v1 name: test namespace: default spec: replicas: 2 selector: matchLabels: app: test version: v1 template: metadata: labels: app: test version: v1 annotations: coordinator.cci.io/hostpath-replacement: '[{"name": "test-log2", "policyType": "remove"}, {"name": "test-log", "policyType": "replaceByEmptyDir", "emptyDir":{"sizeLimit":"10Gi"}}, {"name": "test-log1", "policyType": "remove" }]' spec: containers: - name: container-1 image: nginx imagePullPolicy: IfNotPresent resources: requests: cpu: 250m memory: 512Mi limits: cpu: 250m memory: 512Mi volumeMounts: - name: test-log mountPath: /tmp/log - name: test-log1 mountPath: /tmp/log1 - name: test-log2 mountPath: /tmp/log2 volumes: - hostPath: path: /var/paas/sys/log/virtual-kubelet type: "" name: test-log - hostPath: path: /var/paas/sys/log type: "" name: test-log1 - hostPath: path: /var/paas/sys/log2 type: "" name: test-log2
  • 支持的存储类型 用户在配置负载存储类型时,CCE的console有如下选项。 弹性CCI的负载对存储类型的支持情况如下: volume类型 是否支持 特殊场景说明 HostPath 否 CCI是共享集群,不直接开放HostPath能力。 1.5.9及以上版本可支持配置path为/etc/localtime的HostPath存储,配置后CCI侧容器中挂载的时区将会与CCE节点的时区一致。 ConfigMap 是 - Secret 是 - EmptyDir 是 挂载EmptyDir不支持子路径。 EmptyDir的sizeLimit需为1Gi的整数倍,且不能大于Pod CPU核数的10倍。 DownwardAPI 是 - Projected 是 如配置了serviceAccountToken类型的source,弹性到CCI后会挂载对应service-account-token secret中的token,该token为长期有效,且token没有预期受众,即expirationSeconds和audience两项配置不会生效。 PersistentVolumeClaims 是 只支持SFS、SFS Turbo云存储类型,且只支持使用CSI类型的StorageClass。
  • 创建CronJob 相比Job,CronJob就是一个加了定时的Job,CronJob执行时是在指定的时间创建出Job,然后由Job创建出Pod。 apiVersion: batch/v1beta1 kind: CronJob metadata: name: cronjob-example namespace: cci-namespace-test1 spec: schedule: "0,15,30,45 * * * *" # 定时相关配置 jobTemplate: # Job的定义 spec: template: spec: restartPolicy: OnFailure containers: - name: main image: pi cron的格式从前到后就是: Minute Hour Day of month Month Day of week 如 "0,15,30,45 * * * * " ,前面逗号隔开的是分钟,后面第一个* 表示每小时,第二个 * 表示每个月的哪天,第三个表示每月,第四个表示每周的哪天。 如果你想要每个月的第一天里面每半个小时执行一次,那就可以设置为" 0,30 * 1 * * " 如果你想每个星期天的3am执行一次任务,那就可以设置为 "0 3 * * 0"。
  • 创建Job 以下是一个Job配置,其计算π到2000位并打印输出。Job结束需要运行50个Pod,这个示例中就是打印π 50次,并行运行5个Pod,Pod如果失败最多重试5次。 apiVersion: batch/v1 kind: Job metadata: name: pi-with-timeout namespace: cci-namespace-test1 spec: completions: 50 # 运行的次数,即Job结束需要成功运行的Pod个数 parallelism: 5 # 并行运行Pod的数量,默认为1 backoffLimit: 5 # 表示失败Pod的重试最大次数,超过这个次数不会继续重试。 activeDeadlineSeconds: 10 # 表示Pod超期时间,一旦达到这个时间,Job即其所有的Pod都会停止。 template: # Pod定义 spec: containers: - name: pi image: perl command: - perl - "-Mbignum=bpi" - "-wle" - print bpi(2000) restartPolicy: Never 根据completions和parallelism的设置,可以将Job划分为以下几种类型。 表1 任务类型 Job类型 说明 使用示例 一次性Job 创建一个Pod直至其成功结束 数据库迁移 固定结束次数的Job 依次创建一个Pod运行直至completions个成功结束 处理工作队列的Pod 固定结束次数的并行Job 依次创建多个Pod运行直至completions个成功结束 多个Pod同时处理工作队列 并行Job 创建一个或多个Pod直至有一个成功结束 多个Pod同时处理工作队列
  • 什么是Pod Pod是Kubernetes创建或部署的最小单位。一个Pod封装一个或多个容器(container)、存储资源(volume)、一个独立的网络IP以及管理控制容器运行方式的策略选项。 Pod使用主要分为两种方式: Pod中运行一个容器。这是Kubernetes最常见的用法,您可以将Pod视为单个封装的容器,但是Kubernetes是直接管理Pod而不是容器。 Pod中运行多个需要耦合在一起工作、需要共享资源的容器。通常这种场景下是应用包含一个主容器和几个辅助容器(SideCar Container),如图1所示,例如主容器为一个web服务器,从一个固定目录下对外提供文件服务,而辅助的容器周期性的从外部下载文件存到这个固定目录下。 图1 Pod 实际使用中很少直接创建Pod,而是使用Kubernetes中称为Controller的抽象层来管理Pod实例,例如Deployment和Job。Controller可以创建和管理多个Pod,提供副本管理、滚动升级和自愈能力。通常,Controller会使用Pod Template来创建相应的Pod。
  • 创建Pod kubernetes资源可以使用YAML描述(如果您对YAML格式不了解,可以参考YAML语法),也可以使用JSON,如下示例描述了一个名为nginx的Pod,这个Pod中包含一个名为container-0的容器,使用nginx:alpine镜像,使用的资源为0.5核CPU、1024M内存。 apiVersion: v1 # Kubernetes的API Version kind: Pod # Kubernetes的资源类型 metadata: name: nginx # Pod的名称 spec: # Pod的具体规格(specification) containers: - image: nginx:alpine # 使用的镜像为 nginx:alpine name: container-0 # 容器的名称 resources: # 申请容器所需的资源,云容器实例中limits与requests的值必须相同 limits: cpu: 500m # 0.5核 memory: 1024Mi requests: cpu: 500m # 0.5核 memory: 1024Mi imagePullSecrets: # 拉取镜像使用的证书,必须为imagepull-secret - name: imagepull-secret 如上面YAML的注释,YAML描述文件主要为如下部分: metadata:一些名称/标签/namespace等信息 spec:Pod实际的配置信息,包括使用什么镜像,volume等 如果去查询Kubernetes的资源,您会看到还有一个status字段,status描述kubernetes资源的实际状态,创建时不需要配置。这个示例是一个最小集,其他参数定义后面会逐步介绍。 Pod定义好后就可以使用kubectl创建,如果上面YAML文件名称为nginx.yaml,则创建命令如下所示,-f 表示使用文件方式创建。 $ kubectl create -f nginx.yaml -n $namespace_name pod/nginx created
  • 查询Pod详情 Pod创建完成后,可以使用kubectl get pods命令查询Pod的状态,如下所示。 $ kubectl get pods -n $namespace_name NAME READY STATUS RESTARTS AGE nginx 1/1 Running 0 40s 可以看到此处nginx这个Pod的状态为Running,表示正在运行;READY为1/1,表示这个Pod中有1个容器,其中1个容器的状态为Ready。 可以使用kubectl get命令查询具体Pod的配置信息,如下所示,-o yaml表示以YAML格式返回,还可以使用 -o json,以JSON格式返回。 $ kubectl get pod nginx -o yaml -n $namespace_name 您还可以使用kubectl describe命令查看Pod的详情。 $ kubectl describe pod nginx -n $namespace_name
  • 使用GPU 云容器实例支持使用GPU(必须在GPU类型命名空间下),申请GPU资源的方法非常简单,只需要在容器定制中申请GPU字段即可。 您需要设置Pod的metadata.annotations中添加cri.cci.io/gpu-driver字段,指定使用哪个版本显卡驱动,取值如下: gpu-460.106 gpu-418.126 如下示例创建一个容器规格为NVIDIA V100 16G x 1,CPU 4核,内存32GiB的Pod。 apiVersion: v1 kind: Pod metadata: name: gpu-test annotations: cri.cci.io/gpu-driver: gpu-418.126 # 指定GPU显卡的驱动版本 spec: containers: - image: tensorflow:latest name: container-0 resources: limits: cpu: 4000m # 4核 memory: 32Gi nvidia.com/gpu-tesla-v100-16GB: 1 # 申请GPU资源,支持 1、2、4、8,代表几块显卡 requests: cpu: 4000m # 4核 memory: 32Gi nvidia.com/gpu-tesla-v100-16GB: 1 imagePullSecrets: - name: imagepull-secret
  • 删除Pod 删除pod时,Kubernetes终止Pod中所有容器。 Kubernetes向进程发送SIGTERM信号并等待一定的秒数(默认为30)让容器正常关闭。 如果它没有在这个时间内关闭,Kubernetes会发送一个SIGKILL信号杀死该进程。 Pod的停止与删除有多种方法,比如按名称删除,如下所示。 $ kubectl delete po nginx -n $namespace_name pod "nginx" deleted 同时删除多个Pod。 $ kubectl delete po pod1 pod2 -n $namespace_name 删除所有Pod。 $ kubectl delete po --all -n $namespace_name pod "nginx" deleted 根据Label删除Pod,Label详细内容将会在下一个章节介绍。 $ kubectl delete po -l app=nginx -n $namespace_name pod "nginx" deleted
  • 约束与限制 该解决方案部署前,需 注册华为账号 并开通华为云,完成实名认证,且账号不能处于欠费或冻结状态。如果计费模式选择“包年包月”,请确保账户余额充足以便一键部署资源的时候可以自动支付;或者在一键部署的过程进入费用中心,找到“待支付订单”并手动完成支付。 如果选用 IAM 委托权限部署资源,请确保使用的华为云账号有IAM的足够权限,具体请参考创建rf_admin_trust委托;如果使用华为主账号或admin用户组下的IAM子账户可不选委托,将采用当前登录用户的权限进行部署。
    AI
  • 方案架构 该解决方案帮助您快速部署Dify LLM应用开发平台。 图1 方案架构图(社区版单机部署) 图2 方案架构图(知识库搜索增强版) 图3 方案架构图(CCE容器高可用版) 该解决方案将会部署如下资源: 社区版单机部署: 创建1台华为云Flexus云服务器X实例(FlexusX),用于搭建Dify-LLM应用开发平台。 创建1个弹性公网IP EIP并关联FlexusX实例,提供访问公网和被公网访问能力。 创建1个安全组,通过配置安全组规则,为云服务器提供安全防护。
    AI
  • 方案优势 成本优化 提供高性价比的云服务器,按需选择资源规格、支持自动扩展,减少资源闲置,优化成本投入,进一步降低客户的运营成本。 高可用性 通过云容器引擎 CCE、云数据库 RDS for PostgreSQL、 云搜索服务 CSS OpenSearch部署应用,更好地托管与简化维护应用实例,确保系统的高性能和可扩展性。 一键部署 一键轻松部署,即可完成云服务资源的创建及Dify-LLM应用开发平台的搭建。
    AI
  • 创建工作流 单击“工作室”,访问dify平台工作室。 图28 工作室 导入工作流。在工作室页面,单击“导入DSL文件”,在弹出的页面中选择“URL”,复制下面的地址,粘贴到DSL URL路径里,如下图所示: https://documentation-samples.obs.cn-north-4.myhuaweicloud.com/solution-as-code-publicbucket/solution-as-code-moudle/building-a-dify-llm-application-development-platform/workflow/DeepSeek_searXNG%E8%81%94%E7%BD%91%E6%90%9C%E7%B4%A2_%E7%9F%A5%E8%AF%86%E5%BA%93.yml 图29 导入工作流 图30 工作流模板 配置知识库。添加知识库:单击“知识检索”节点,单击“+”按钮添加知识库,选择知识库,单击“添加”。 图31 配置知识库 选择联网搜索插件,单击授权按钮,并添加URL。单机版部署填写Dify服务器私网IP:http://{ECS私网IP}:8080;高可用部署填写URL:http://searxng:8080。如下图所示,单击“保存”后,即可设置成功。(ECS私网IP是部署Dify的虚机的内网ip,如连接不通,请检查虚机的安全组是否放通8080端口号)。 图32 授权联网搜索 图33 单机版URL 图34 高可用版URL 调整模型。若大模型处有提示感叹号如下图所示,即表示该模型不存在,需要调整为Dify平台已经添加好的模型。单击大模型名称,在右侧弹窗继续单击模型名称旁边的下拉列表,继续单击模型名称,在下拉列表中选择一个模型即可。其余大模型按照此步骤重复操作即可。 图35 模型不存在提示 图36 替换模型 至此,工作流配置已完成,单击右上角“预览”进行对话。 图37 联网搜索 图38 知识检索
    AI
  • Dify配置公网 域名 (社区版单机部署) 您需要在域名解析系统中,添加一条A记录,值为Dify服务器的公网IP。本文档以华为云云解析服务 DNS为例。如在华为云购买域名,默认直接添加到公网域名,可供管理华为云域名购买链接:https://www.huaweicloud.com/product/domain.html。如果不是通过华为云购买的域名,可参考创建公网域名。 进入公网域名列表页面,选择要使用的域名,单击“管理解析”。 图46 管理解析 单击“添加记录集”,填写配置信息如下 记录类型:“A – 将域名指向IPv4地址” 主机记录:解析域名的前缀。 例如创建的域名为“example.com”,其“主机记录”设置包括: www:用于网站解析,表示解析的域名为“www.example.com”。 空:用于网站解析,表示解析的域名为“example.com”。 主机记录置为空,还可用于为空头域名“@”添加解析。 abc:用于子域名解析,表示解析的域名为“example.com”的子域名“abc.example.com”。 mail:用于邮箱解析,表示解析的域名为“mail.example.com”。 *:用于泛解析,表示解析的域名为“*.example.com”,匹配“example.com”的所有子域名。 记录值:域名对应的IPv4地址。最多可以输入50个不重复地址,多个地址之间以换行符分隔。本文值为Dify的公网ip地址。 图47 添加记录集 登录弹性云服务 ECS控制台,选择部署Dify的服务器,单击“远程登录”。选择“VNC登录”,输入服务器密码,登录服务器。 图48 远程登录 图49 VNC登录 将SSL证书文件命名为dify.crt、dify.key并上传至:/dify/docker/nginx/ssl 图50 上传SSL证书 修改环境变量,在命令行执行如下命令,解析的域名为步骤二获取,例如www.example.com: sh /dify/docker/configure_dify_domain_name.sh ${解析的域名} 图51 配置环境变量 浏览器即可通过配置的域名访问Dify平台。 图52 访问Dify平台
    AI
  • 安全组规则修改(可选) 该解决方案使用80端口用来访问Dify,默认全放通,请参考修改安全组规则,配置IP地址白名单。 该解决方案使用22端口用来以SSH方式远程登录云服务器,若需远程登录云服务器,请参考修改安全组规则,配置IP地址白名单,以便能正常访问服务。 该解决方案部署成功后,环境初始化预计5-10分钟,受网络、带宽影响,部署时间会有波动部署完成之后方可正常访问。 安全组实际是网络流量访问策略,包括网络流量入方向规则和出方向规则,通过这些规则为安全组内具有相同保护需求并且相互信任的云服务器、云容器、云数据库等实例提供安全保护。 如果您的实例关联的安全组策略无法满足使用需求,比如需要添加、修改、删除某个TCP端口,请参考以下内容进行修改。 添加安全组规则:根据业务使用需求需要开放某个TCP端口,请参考添加安全组规则添加入方向规则,打开指定的TCP端口。 修改安全组规则:安全组规则设置不当会造成严重的安全隐患。您可以参考修改安全组规则,来修改安全组中不合理的规则,保证云服务器等实例的网络安全。 删除安全组规则:当安全组规则入方向、出方向源地址/目的地址有变化时,或者不需要开放某个端口时,您可以参考删除安全组规则进行安全组规则删除。
    AI
  • 与MaaS服务对接 登录ModelArts Studio 平台,本文以部署华东二的DeepSeek-R1-Distill-Qwen-32B-4K为例。 图4 ModelArts Studio 在ModelArts Studio左侧导航栏中,选择“在线推理”进入“预置服务”服务列表,选择“免费服务”。 图5 免费服务 领取免费调用额度。在免费服务列表,选择所需的服务,单击右侧操作列的“领取额度”。当领取置灰时,表示该服务的免费额度已领取。 图6 领取额度 成功领取后,在免费服务列表,选择所需的服务,单击“调用说明”,在调用弹窗中接口类型选择“OpenAI SDK”获取API地址和模型名称。 图7 调用说明 免费服务中单个模型提供200万token推理额度,额度消耗完后可开通使用商用级别的推理 API服务 (仅限贵阳一),或前往我的服务部署为我的服务后付费使用。 图8 商用服务 图9 调用说明 在调用MaaS部署的模型服务时,需要填写API Key用于接口的鉴权认证。在左侧导航栏,单击“API Key管理”(最多可创建30个密钥。每个密钥仅在创建时显示一次,请确保妥善保存。如果密钥丢失,无法找回,需要重新创建API Key以获取新的访问密钥)。 图10 API Key管理 在“API Key管理”页面,单击右上角“创建API Key”,填写标签(自定义API Key的标签,标签具有唯一性,不可重复。仅支持大小写英文字母、数字、下划线、中划线,长度范围为1~100个字符)和描述(自定义API Key的描述,长度范围为1~100个字符)信息后,单击“确定”。标签和描述信息在创建完成后,不支持修改。 图11 创建API Key 对接Dify平台。打开您的Dify平台界面,单击右上角用户名称,下拉并单击“设置”。 进入模型供应商页签,选择OpenAI-API-compatible供应商。 图12 选择供应商 Dify 1.0版本以上,需先安装模型供应商插件再添加模型。 配置模型信息:“模型名称”及“API endpoint URL”填写上述本节步骤4或步骤5“调用说明”中的“模型名称”及“API地址”;"API Key"填写步骤7中创建的API Key,填写完成后单击“保存”。 图13 设置
    AI
  • 与一键部署DeepSeek对接 该章节为成功部署快速搭建DeepSeek推理系统解决方案后,将DeepSeek大模型对接至Dify平台时参考使用。 右侧单击用户名称,下拉并单击“设置”。 图14 设置 单击左侧“模型供应商”,在Ollama下单击“添加模型”。 图15 添加Ollama模型 模型名称填写快速部署中选择部署的模型,如“deepseek-r1:7b”,基础URL填写中获取的私网IP地址(如果部署的Dify应用和DeepSeek-R1蒸馏版模型不在同一服务器且不在同一VPC下,需填写DeepSeek-R1蒸馏版模型所在服务器的公网IP),端口号11434(使用公网连接时,模型服务器所在安全组需放通11434端口),单击右下角“保存”并关闭“设置”。 图16 模型配置
    AI
  • CCE容器高可用版 表5 资源和成本规划(按需计费) 华为云服务 配置示例 数量 每月预估花费 虚拟私有云 VPC 区域:华北-北京四 VPC网段:192.168.0.0/16 1 0.00 子网 Subnet 区域:华北-北京四 子网网段:192.168.1.0/24, 192.168.2.0/24, 192.168.3.0/24, 192.168.4.0/24 网关:192.168.0.1, 192.168.1.1,192.168.2.1,192.168.3.1 4 0.00 安全组 SecurityGroup 区域:华北-北京四 4 0.00 华为云Flexus云服务器X实例 按需计费:1.42元/小时 区域:华北-北京四 规格:Flexus云服务器X实例 | 性能模式(关闭)| x1.16u.16g | 16核 | 16 GB 镜像:Ubuntu 22.04 server 64bit 系统盘:高IO | 40GB 数据盘:高IO | 100 GiB 3 3064.18元 华为云Flexus云服务器X实例 按需计费:4.53元/小时 区域:华北-北京四 规格:Flexus云服务器X实例 | 性能模式(开启)| x1e.32u.32g | 32核 | 32 GB 镜像:Ubuntu 22.04 server 64bit 系统盘:通用型SSD | 40GB 1 3262.18元 弹性公网IP EIP 区域:华北-北京四 计费模式:按需计费 线路:动态BGP 公网带宽:按流量计费 带宽大小:300Mbit/s 3 0.80元/GB 对象存储服务 OBS 区域:华北-北京四 存储空间:数据存储(多AZ存储) 默认存储类别:标准存储 桶策略:私有 请求费用:GET/PUT 0.01元/万次,DELETE 免费 存储空间:0.1390元/GB/月 流量费用: 内/公网流入流量(数据上传到OBS):0元 内网流出流量(通过 ECS云服务器 下载OBS的数据): 0元公网流出流量 / 00:00-08:00(闲时):0.2500元/GB 公网流出流量 / 08:00-24:00(忙时): 0.5000元/GB 1 详细请参考每月账单。计费说明参考价格详情 云容器引擎 CCE 按需计费:2.91元/小时 区域:华北-北京四 计费模式:按需计费 规格:cce.s2.small(50节点) 集群 master 实例数: 3 集群 node 实例数: 3 类型:CCE 1 2095.20元 分布式缓存服务Redis®*版 按需计费:0.58元/小时 区域:华北-北京四 计费模式:按需计费 规格:4G (基础版)| 副本数:2 实例类型:Redis(主备) 1 414.72元 云数据库 RDS for PostgreSQL 按需计费:1.24元/小时 区域:华北-北京四 计费模式:按需计费 规格:rds.pg.n1.large.2.ha | 2 vCPU | 4 GB (通用型) 储存:SSD云盘 | 100GB 数据库引擎:PostgreSQL(主备) 1 892.80元 云搜索 服务 CSS 按需计费:3.98元/小时 区域:华北-北京四 计费模式:按需计费 规格: ess.spec-4u8g | 4 vCPUs | 8 GB 节点存储总容量:超高I/O | 120GB 集群类型:OpenSearch 节点数:3 1 2864.16元 弹性负载均衡 ELB 区域:华北-北京四 可用区数量:2 计费模式:按需计费 独享型负载均衡 网络型 | 弹性规格、应用型 | 弹性规格 按需计费:¥0.15/小时+应用型LCU费用:¥0.05/个·小时(按实际使用量收取LCU费用) 1 108元 + 应用型LCU费用 NAT网关 NAT 按需计费:12元/天 区域:华北-北京四 规格:小型 SNAT规则数:3 1 360元 合计 - - 13061.24元 + 应用型LCU费用 + 弹性公网IP EIP费用 + 对象存储服务OBS存储及流量费用
    AI
  • (可选)创建rf_admin_trust委托 进入华为云官网,打开控制台管理界面,鼠标移动至个人账号处,打开“ 统一身份认证 ”菜单。 图1 控制台管理界面 图2 统一身份认证菜单 进入“委托”菜单,搜索“rf_admin_trust”委托。 图3 委托列表 如果委托存在,则不用执行接下来的创建委托的步骤 如果委托不存在时执行接下来的步骤创建委托 单击步骤2界面中的“创建委托”按钮,在委托名称中输入“rf_admin_trust”,委托类型选择“云服务”,输入“ RFS ”,单击“完成”。 图4 创建委托 单击“立即授权”。 图5 委托授权 在搜索框中输入”Tenant Administrator”并勾选搜索结果,单击“下一步”。 图6 选择策略 选择“所有资源”,并单击“确定”完成配置。 图7 设置最小授权范围 “委托”列表中出现“rf_admin_trust”委托则创建成功。 图8 委托列表
  • 什么是项目群? 项目群是为了实现一个共同目标而将一组相互关联的项目/子项目群放在同一项目群中相互协作、统一跟踪管理,以便获取单独管理这些项目/子项目群时无法取得的收益。 一个项目群中可添加多个子项目群/项目,一个项目仅可加入一个项目群,也可以独立存在,不归属于任何项目群。 在CodeArts中,用户可以可以创建两种类型项目群:IPD-系统设备类、IPD独立软件类。 项目群本身也可以看作一个项目实体,可以在项目群中完成普通IPD类项目中的全部操作。 图1 项目群与项目之间的关系
  • IAM细粒度权限 默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 表1展示了CodeArts各服务支持的所有系统策略。 表1 CodeArts系统权限 服务 系统角色/策略名称 描述 类别 策略详情 CodeArts控制台 DevCloud Console FullAccess 软件开发生产线控制台全部权限。 系统策略 参考CodeArts控制台权限说明。 DevCloud Console ReadOnlyAccess 软件开发生产线控制台只读权限。 系统策略 需求管理 ProjectMan ConfigOperations 软件开发生产线项目配置的所有权限。 系统策略 参考需求管理云服务级权限。 流水线 CloudPipeline Tenant Extensions FullAccess 流水线服务租户扩展插件全部权限。 系统策略 参考流水线租户级权限。 CloudPipeline Tenant Pipeline Templates FullAccess 流水线服务租户流水线模板全部权限。 系统策略 CloudPipeline Tenant Rule Templates FullAccess 流水线服务租户策略设置全部权限。 系统策略 CloudPipeline Tenant Rules FullAccess 流水线服务租户规则设置全部权限。 系统策略 性能测试 CodeArts PerfTest Administrator 性能测试服务管理员,拥有该服务下的所有权限。 系统角色 参考性能测试权限管理。 CodeArts PerfTest Developer 性能测试服务开发人员,拥有该服务下当前用户的所有权限,但无权操作租户下其他用户的资源。 系统角色 CodeArts PerfTest Operator 性能测试服务操作员,拥有该服务下的只读权限。 系统角色 CodeArts PerfTest Resource Administrator 性能测试服务测试资源管理员,拥有该服务下测试资源相关的所有权限。 系统角色 CodeArts PerfTest Resource Developer 性能测试服务测试资源开发者,拥有该服务下测试资源查看和使用权限,但无基础设施创建、更新、删除权限。 系统角色 漏洞管理服务 VSS Administrator 漏洞管理服务管理员,拥有该服务下的所有权限。 系统角色 参考漏洞管理服务权限管理。 VSS ReadOnlyAccess 漏洞管理服务只读权限。 系统策略 VSS UseOnlyAccess 漏洞管理服务的使用权限(无法更新 漏洞扫描服务 订单)。 系统策略 CodeArts IDE Online CloudIDE FullAccess CodeArts IDE Online所有权限。 系统策略 参考CodeArts IDE Online权限说明。 CloudIDE ReadOnlyAccess CodeArts IDE Online只读权限。 系统策略 CloudIDE InstanceManagement CodeArts IDE Online实例管理权限,用户可以管理自己拥有的实例、访问被分发给自己的实例。 系统策略 CloudIDE Development CodeArts IDE Online开发权限,包括查看、启动、停止、访问实例等操作。 系统策略 CodeArts IDE CodeArts IDE FullAccess CodeArts IDE全部权限。 系统策略 参考CodeArts IDE权限说明。 CodeArts IDE ReadOnly CodeArts IDE只读权限。 系统策略
  • 产品规格差异 CodeArts采用包年/包月计费模式,提供体验版、基础版、专业版、企业版四种套餐,以满足不同规模用户的使用需求。 套餐中包含需求管理、代码托管、流水线、代码检查、编译构建、部署、测试计划、制品仓库、软件建模(软件建模服务只支持“华北-北京四”区域)服务资源,不同版本套餐中,各服务提供的功能特性及资源规格略有不同,差异详情请参考CodeArts套餐规格特性差异。 表1 CodeArts套餐概览 分类 体验版 基础版 专业版 企业版 可购买人数 50人 5~9999人 5~9999人 5~9999人 可购买时长 1个月 1~9个月、1年、2年、3年 1~9个月、1年、2年、3年 1~9个月、1年、2年、3年 是否支持变更购买人数 不支持 支持 支持 支持 是否支持变更购买时长 不支持 支持 支持 支持 是否支持购买资源扩展 不支持 支持 支持 支持 是否支持增值特性 不支持 支持购买除“代码安全检查增强包”之外的增值特性 支持 支持
  • 通用限制 表1 通用限制说明 指标 限制说明 浏览器 目前适配的主流浏览器类型包括: Chrome浏览器:支持最新的3个稳定版本。 Firefox浏览器:支持最新的3个稳定版本。 Edge浏览器:Win10默认浏览器,支持最新的3个稳定版本。 推荐使用Chrome、Firefox浏览器,效果会更好。 分辨率 推荐使用1920*1080及以上。 授权 不支持企业项目维度、区域项目维度的授权。 关于企业项目、区域项目维度的授权说明,请参见创建用户组并授权。
  • 各服务使用限制 表2 服务使用限制 服务名称 限制说明 需求管理 参考需求管理约束与限制。 软件建模 参考软件建模约束与限制。 代码托管 参考代码托管约束与限制。 流水线 参考流水线约束与限制。 代码检查 参考代码检查约束与限制。 编译构建 参考编译构建约束与限制。 制品仓库 参考制品仓库约束与限制。 部署 参考部署约束与限制。 测试计划 参考测试计划约束与限制。 性能测试 参考性能测试约束与限制。 漏洞管理服务 参考漏洞管理服务使用约束。 CodeArts 盘古助手 参考CodeArts 盘古助手约束与限制。 开源治理服务 参考开源治理服务约束与限制。 联接 参考联接约束与限制。
  • 高校/培训机构 研发挑战 受应试教育影响,学生接受课堂理论知识能力强,运用知识解决实际问题偏弱,多数学生忽略了对动手能力、职业素养、团队协作意识等方面的培养;教师精心制定的教学计划与内容难以跟随IT行业快速变化的技术理论与前沿趋势;学科竞赛、实验项目推进、综合实训缺少统一规范化的流程与平台。 推荐搭配 需求管理、代码托管、代码检查、编译构建、测试计划、部署。 实现结果 在实践中学习软件开发,用实践项目培养人才。
  • 什么是软件开发生产线(CodeArts) 软件开发生产线(CodeArts)是面向开发者提供的一站式云端平台,即开即用,随时随地在云端交付软件全生命周期,覆盖需求下发、代码提交、代码检查、代码编译、验证、部署、发布,打通软件交付的完整路径,提供软件研发流程的端到端支持。 图1 CodeArts服务构成 表1 CodeArts服务构成 服务名称 服务简介 需求管理 提供需求管理与团队协作服务,支撑多种研发模式,包含跨项目协同、需求管理、缺陷管理、知识库管理等功能。 软件建模 提供可视化、协同、规范、复用于一体的专业UML和4+1视图建模能力。 代码托管 基于Git提供分布式代码管理和协同开发能力。 流水线 提供可视化、可定制的持续交付流水线服务。 代码检查 提供代码风格、通用质量与网络安全风险等丰富的检查能力,以及全面质量报告、便捷的问题闭环处理流程。 编译构建 基于云端大规模分布式加速,提供高速、低成本、配置简单的混合语言构建能力。 制品仓库 支持多种制品包类型,提供开源 漏洞扫描 和制品生命周期管理。可以与主流持续构建、持续部署工具无缝集成。 部署 支持主机、容器、Serverless多种形态的一键式自动化部署。 测试计划 覆盖测试管理、接口测试,融入DevOps敏捷测试理念,助力高效管理测试活动。 性能测试 为应用接口、链路提供性能测试,支持HTTP/HTTPS/TCP/UDP等协议。 漏洞管理服务 一站式漏洞管理服务,通过实时持续资产评估,提供安全风险量化与在线分析处置能力。 CodeArts IDE Online 基于云计算的轻量级WebIDE,通过浏览器即可实现环境快速获取和环境访问,完成编码、构建、调试、运行、访问代码仓库和命令执行等工作,支持第三方业务集成,支持插件扩展并提供独立插件市场。 CodeArts IDE 面向开发者提供的智能化可扩展桌面 集成开发环境 (IDE)。 CodeArts 盘古助手 基于智能生成、智能问答2大核心能力,覆盖代码生成、研发知识问答、单元测试用例生成、代码解释、代码注释、代码翻译、代码调试、代码检查等八大研发场景。 开源镜像站 提供开源组件、开源操作系统及开源DevOps工具等主流镜像站下载服务。 开源治理服务 提供软件成分分析、恶意代码检测等能力。 效能洞察 提供从需求、缺陷、代码、构建、测试、部署、发布到运营等研发各阶段作业数据的分析洞察能力。 联接 一站打通CodeArts与业界生态研发工具或应用,实现研发协同自动化和数据同步。
  • 准备工作 已注册华为账号并开通华为云并实名认证。 参考购买弹性云服务器,购买满足以下配置的ECS。 计费模式:建议选择按需计费。 CPU架构:x86计算。 节点规格:2vCPUs | 4GiB或以上规格,系统盘≥80GiB。 操作系统:公共镜像-CentOS 7.6 弹性公网IP:自动创建。 完成购买后,参考配置安全组规则添加两条入方向规则。 协议为“TCP”、端口为“22”、源地址为“0.0.0.0/0”。 协议为“TCP”、端口为“8080”、源地址为“0.0.0.0/0”。
共100000条