华为云用户手册

  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 tags Array of TagDto objects 标签列表。 page_info PageInfoDto object 分页信息 表5 TagDto 参数 参数类型 描述 key String 标签键的密钥标识符或名称。 value String 与标签键关联的字符串值。您可以将标签的值设置为空字符串,但不能将标签的值设置为NULL。 表6 PageInfoDto 参数 参数类型 描述 next_marker String 如果存在,则表示可用的输出比当前响应中包含的输出多。在对操作的后续调用中,在标签请求参数中使用此值,以获取输出的下一部分。您应该重复此操作,直到next_marker响应元素返回为null。 current_count Integer 本页返回条目数量
  • 成分分析的开源软件风险如何分析? 成分分析基于静态风险检测,会对用户上传的软件包/固件进行解压并分析其中的文件,识别包中文件包含的开源软件清单,并分析是否存在已知漏洞、License合规等风险。用户扫描完成后,建议按照以下步骤进行分析排查: 开源软件分析,分析开源软件是否存在以及软件版本是否准确。 基于报告详情页面或导出的报告中开源软件所在文件全路径找到对应文件,然后分析该文件中开源软件是否存在或准确(可由相关文件的开发或提供人员协助分析),如果否,则无需后续分析。 已知漏洞分析,分析已知漏洞是否准确。 通过NVD、CVE、CNVD等社区搜索相关CVE已知漏洞编号,获取漏洞详情。 概要分析:查看影响的软件范围,如CVE-2021-3711在NVD社区中的Known Affected Software Configurations,如下图,确认漏洞是否影响当前使用的软件版本,如果当前使用的软件版本不在影响范围内,则初步说明漏洞可能不涉及/影响。 精细化分析:漏洞通常存在于某些函数中,可以通过社区中的漏洞修复补丁确认漏洞详情、涉及函数以及修复方式,如下图,用户可以结合自身软件对于相关开源软件功能的使用是否涉及相关漏洞 License合规分析。基于报告中开源软件及对应的License分析软件是否合规,满足公司或准入要求。 风险解决方式: 已知漏洞:如果当前使用的软件版本存在漏洞,可通过升级软件版本至社区推荐版本解决。紧急情况下也可以通过社区推荐的patch修复方式临时解决。 License合规:如果使用的软件存在合规风险,则需要寻找相似功能且合规的开源软件进行替代。 父主题: 二进制成分分析类
  • 响应示例 状态码: 200 Successful. { "policies" : [ { "is_builtin" : true, "description" : "NFZ", "id" : "p-M5lVaiMgFXD6Hmq6o4dvqbGk", "urn" : "string", "name" : "9`P41WII9Yn]", "type" : "service_control_policy" } ], "page_info" : { "next_marker" : "ou-taowxgy4xbme6m4x3c2iijbxw7yj8fcw", "current_count" : 100 }}
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 policies Array of PolicySummaryDto objects 组织中的策略列表。 page_info PageInfoDto object 分页信息 表4 PolicySummaryDto 参数 参数类型 描述 is_builtin Boolean 一个布尔值,指示指定的策略是否为系统策略。如果为true,即为系统策略,则可以将策略附加到根、组织单元或账号,但不能编辑它。 description String 策略说明。 id String 策略的唯一标识符(ID)。 urn String 策略的统一资源名称。 name String 策略的名称。 type String 策略的类型,service_control_policy:服务控制策略;tag_policy:标签策略。 表5 PageInfoDto 参数 参数类型 描述 next_marker String 如果存在,则表示可用的输出比当前响应中包含的输出多。在对操作的后续调用中,在标签请求参数中使用此值,以获取输出的下一部分。您应该重复此操作,直到next_marker响应元素返回为null。 current_count Integer 本页返回条目数量
  • 成分分析的信息泄露问题如何分析? 成分分析基于静态风险检测,会对用户上传的软件包/固件进行解压并分析其中的文件,识别包中是否存在信息泄露类风险,如敏感IP、GIT/SVN仓、弱口令、硬编码密钥等风险。 针对已识别的信息泄露类风险,可以通过查看导出报告中的告警详情,如PDF报告,可以在结果概览中确认是否有信息泄露风险。如果有,则可以查看相应信息泄露明细,每个告警都会包含以下几个说明,针对工具扫描出的风险清单,用户可以基于自身实际使用情况判断是否有信息泄露风险,如存在,则采取不同措施屏蔽或修改即可。 问题类型:IP泄露/硬编码密码/Git地址泄露等。 文件路径:发现信息泄露的文件在包中的全路径。 上下文内容:发现风险的文本行内容,包含风险内容和上下文内容。 匹配内容:实际发现的风险内容。 匹配位置:在文件中x行,x位置发现的信息泄露风险。 父主题: 二进制成分分析类
  • 成分分析的任务扫描失败怎么办? 任务扫描失败可能由多种原因造成,需要针对具体情况进行分析,常见的失败原因如下: 表1 常见失败原因分析 失败原因 解决方案 文件解析异常 文件本身存在不完整、结构异常等问题,导致服务无法正常解析。提供通用的压缩、固件、包格式文件重新创建扫描任务即可。 文件上传中损坏 文件在传送过程中损坏,导致无法正确解析。重新创建扫描任务进行扫描即可。 其它原因导致任务失败 多次重复创建任务后扫描任务仍然失败,可联系服务运维团队。 若用户使用“按需套餐包”创建正式版任务,如果任务扫描失败,不会扣除套餐包配额;若用户使用免费版配额创建免费版任务,如果任务扫描失败,不会扣除免费版配额。 父主题: 二进制成分分析类
  • 成分分析的安全配置类问题如何分析? 成分分析会检测用户包中一些安全配置项是否合规,主要如下: 用户上传的软件包/固件中存在的敏感文件,如(密钥文件,证书文件,源码文件,调试工具等)。 用户上传的软件包/固件中操作系统中的用户与组配置、硬编码凭证、认证和访问控制等配置类问题。若不存在操作系统,则不涉及。 安全配置类检查问题分析指导: 导出PDF报告,搜索【安全配置检查概览】关键字,可以看到各检查项的结果,pass表示通过,failed表示未通过,NA表示不涉及(若无操作系统,则针对操作系统配置检查项为不涉及)。搜索【安全配置检查】关键字,可以查看具体每项的检查结果。 检查结果说明: 审视项:检查的方式/方法。 问题:存在问题的文件列表,若无问题则显示暂无问题。 建议值:针对检查出的问题给出的修改建议。 描述:审视项描述。 父主题: 二进制成分分析类
  • 成分分析的主要扫描规格有哪些? 支持的编程语言类型:C/C++/Java/Go/JavaScript/Python/Rust/Swift/C#/PHP。 支持的文件:.7z、.arj、.cpio、.phar、.rar、.tar、.xar、.zip、.jar、.apk、.war等格式文件,及Android OTA Images、Android sparse、Intel HEX、RockChip、U-Boot等固件。 支持上传的文件大小:不超过5GB。 平均扫描时间预估:根据不同的压缩格式或者文件类型扫描时长会有一定的差异,平均100MB/6min。 服务采用基于软件版本的方式检测漏洞,不支持补丁修复漏洞场景的检测。 父主题: 二进制成分分析类
  • 如何解决Roles with READONLY_USER或其他角色权限报错问题? 用户需要具有Tenant Administrator或VSS Administrator权限才能使用二进制成分分析相关业务,请分别联系具有Tenant Administrator或VSS Administrator权限的用户进行授权,可参考如何查看用户组是否具有Tenant Administrator或VSS Administrator权限,及如何对用户组进行授权?查看具有权限的用户。 使用具有Tenant Administrator或VSS Administrator权限的账号登录华为云,在右上角单击“控制台”。 鼠标移动至右上方的账号名,在下拉列表中选择“ 统一身份认证 ”。 选择待授权的用户,单击“授权”。 进入“选择授权方式”步骤,选择“继承所选用户组的策略”,然后勾选具有Tenant Administrator或VSS Administrator权限的用户组。 单击“确定”完成授权。 父主题: 二进制成分分析类
  • 如何查看用户组是否具有Tenant Administrator或VSS Administrator权限,及如何对用户组进行授权? 登录华为云,在右上角单击“控制台”。 鼠标移动至右上方的账号名,在下拉列表中选择“统一身份认证”。 选择“用户组”,单击用户组名称即可查看角色授权记录。 切换至“用户管理”页签,可以查看该用户组下的所有用户,也可以将其他用户添加至该用户组。 如果该用户组缺少相应角色权限,单击“授权”,进入“选择策略”步骤,模糊搜索“Tenant Administrator”或“VSS Administrator”权限的关键字,勾选相应策略。 单击“下一步”,设置最小授权范围,然后单击“确定”,即可完成用户组角色授权。 父主题: 二进制成分分析类
  • 成分分析的安全编译选项类问题如何分析? 成分分析会检查用户包中的C/C++、Go文件在构建编译过程中是否添加了保护性的编译选项,来保护文件运行时免受到攻击者的攻击。 安全编译选项类问题分析指导: 导出Excel报告,查看安全编译选项Sheet页。 根据filepath列寻找目标文件在扫描包中位置,确认文件来源。 查看目标文件对应的安全编译选项结果。 如果对应项结果底色为绿色或结果值为“YES”或“NA”(rpath项禁选结果值为“No”或“NA”),则说明目标文件满足安全编译选项要求,无需处理。 对于不满足要求的项,排查目标文件的构建脚本,添加对应的编译选项,其中Ftrapv和FS两项由于可能影响性能,请根据实际情况确认是否添加对应选项。 表1 安全编译选项检查项参考说明 检查项 检查项描述 安全编译选项参数 BIND_NOW 立即绑定 -Wl、-z、now NX 堆栈不可执行 -WI、-z、noexecstack PIC 地址无关 -fPIC PIE 随机化 -fPIE或-pie RELRO GOT表保护 -WI、-z、relro SP 栈保护 -fstack-protector-strong或-fstack-protector-all NO Rpath/Runpath 动态库搜索路径(禁选) 脚本中删除--rpath FS Fortify Source(缓冲区溢出检查) -D_FORTIFY_SOURCE=2 Ftrapv 整数溢出检查 -ftrapv Strip 删除符号表 -s 父主题: 二进制成分分析类
  • 成分分析的扫描原理是什么,主要识别哪些风险? 对用户提供的软件包/固件进行全面分析,通过解压获取包中所有待分析文件,基于组件特征识别技术以及各种风险检测规则,获得相关被测对象的组件BOM清单和潜在风险清单。主要包括以下几类: 开源软件风险:检测包中的开源软件风险,如已知漏洞、License合规等。 安全配置风险:检测包中配置类风险,如硬编码凭证、敏感文件(如密钥、证书、调试工具等)问题、OS认证和访问控制类问题等。 信息泄露风险:检测包中信息泄露风险,如IP泄露、硬编码密钥、弱口令、 GIT/SVN仓泄露等风险。 安全编译选项:支持检测包中二进制文件编译过程中相关选项是否存在风险。 图1 风险项 父主题: 二进制成分分析类
  • CCI如何配置DNS服务? 如果用户负载需要使用k8s内部 域名 解析,则需要安装coredns插件。此时pod的dnsPolicy需要设置为ClusterFirst。 在插件市场界面可以单击,将coredns插件安装在指定的namesapce下。 图1 创建插件 如果用户负载不需要k8s内部域名解析服务,但是需要使用域名解析服务,此时pod的dnsPolicy需要设置为Default。 除了以上两种配置方式用户还可以通过设置dnsPolicy为None使用自定义dns服务。yaml示例如下: apiVersion: v1kind: Podmetadata: namespace: default name: dns-examplespec: containers: - name: test image: nginx dnsPolicy: "None" dnsConfig: nameservers: - 1.2.3.4 searches: - ns1.svc.cluster-domain.example - my.dns.search.suffix options: - name: ndots value: "2" - name: edns0 父主题: 网络管理类
  • 步骤一:申请AstroZero免费试用 注册华为账号 并实名认证。 使用AstroZero前,需要先注册一个华为账号并进行实名认证。如果您已有一个华为账号,可直接执行2。 进入华为云官网,单击页面右上角的“注册”。 参考注册华为账号并开通华为云中操作,完成注册。 注册后参考个人账号如何完成实名认证或企业账号如何完成实名认证中操作,完成个人或企业账号实名认证。 申请AstroZero免费试用。 使用1中的账号,登录华为云官网,在顶部导航栏右侧单击“控制台”,进入华为云控制台。 在左侧导航栏上方,单击,选择服务实例所在的区域项目(当前仅支持华北-北京四)。 单击,在查找框中搜索“Astro轻应用”,单击查找到的结果,进入AstroZero服务控制台。 在AstroZero服务控制台的主页中,单击“免费试用”。 图1 免费试用 在弹出的页面,单击“免费开通”,即可免费开通AstroZero实例。 成功后,在主页中,可查看到已开通的AstroZero免费版实例。 图2 查看已开通的免费版实例
  • 创建方式 表2 创建方式不同 云容器引擎CCE 云容器实例CCI CCE是基于Kubernetes的托管式容器管理服务,可以提供原生Kubernetes体验,可以一键创建原生Kubernetes集群,与社区能力基本一致。 使用CCE,您需要创建集群和节点,简单、低成本、高可用,无需管理Master节点。 CCI提供 Serverless Container引擎,在华为云上部署容器时,您不需要购买和管理E CS ,可以直接在华为云上运行容器和Pod,为您省去底层ECS的运维和管理工作。 使用CCI,您无需创建集群,无需创建和管理Master节点及Work节点,可直接启动应用程序。
  • 排查项一:kubectl创建工作负载时未指定imagePullSecret 以创建一个名为nginx的deployment为例,请排查yaml文件中是否存在imagePullSecrets字段(如下yaml示例中的加粗字段),表示pull镜像时的secret名称。 需要使用 容器镜像服务 的镜像时,参数值固定为imagepull-secret。 apiVersion: apps/v1kind: Deploymentmetadata: name: nginxspec: replicas: 1 selector: matchLabels: app: nginx strategy: type: RollingUpdate template: metadata: labels: app: nginx spec: containers: - image: nginx:alpine imagePullPolicy: Always name: nginx imagePullSecrets: - name: imagepull-secret
  • 排查项三: IAM 用户没有镜像下载权限 如果您开通了企业管理,您需要在账号下的容器 镜像服务 中给IAM用户添加权限,IAM用户才能使用账号下的私有镜像。 给IAM用户添加权限有如下两种方法: 在镜像详情中为IAM用户添加授权,授权完成后,IAM用户享有读取/编辑/管理该镜像的权限,具体请参见在镜像详情中添加授权。 在组织中为IAM用户添加授权,使IAM用户对组织内所有镜像享有读取/编辑/管理的权限,具体请参见在组织中添加授权。
  • CCE与CCI两者的配合 通过安装Virtual-Kubelet插件,可以在短时高负载场景时,将部署在CCE上的无状态工作负载(Deployment)、有状态工作负载(StatefulSet)、普通任务(Job)三种资源类型的容器实例(Pod),弹性创建到华为云云容器实例CCI服务上,以减少集群扩容带来的消耗。 具体功能如下: 支持容器实例实现秒级弹性伸缩:在集群资源不足时,无需新增节点,virtual-kubelet插件将自动为您在云容器实例CCI侧创建容器实例,减少运维成本。 无缝对接华为云容器镜像服务SWR,支持使用公用镜像和私有镜像。 支持CCI容器实例的事件同步、监控、日志、exec、查看状态等操作。 支持查看虚拟弹性节点的节点容量信息。 支持CCE和CCI两侧实例的service网络互通。 详情请参见华为云 CCE弹性伸缩 至CCI。
  • 基本介绍 表1 CCE和CCI基本介绍 云容器引擎CCE 云容器实例CCI 云容器引擎(Cloud Container Engine,简称CCE)提供高度可扩展的、高性能的企业级Kubernetes集群,支持运行Docker容器,提供了Kubernetes集群管理、容器应用全生命周期管理、应用服务网格、Helm应用模板、插件管理、应用调度、监控与运维等容器全栈能力,为您提供一站式容器平台服务。借助云容器引擎,您可以在华为云上轻松部署、管理和扩展容器化应用程序。 详细介绍请查看什么是云容器引擎。 云容器实例(Cloud Container Instance, CCI)服务提供Serverless Container(无服务器容器)引擎,让您无需创建和管理服务器集群即可直接运行容器。通过CCI您只需要管理运行在Kubernetes上的容器化业务,无需管理集群和服务器即可在CCI上快速创建和运行容器负载,使容器应用零运维,使企业聚焦业务核心,为企业提供了Serverless化全新一代的体验和选择。 而Serverless是一种架构理念,是指不用创建和管理服务器、不用担心服务器的运行状态(服务器是否在工作等),只需动态申请应用需要的资源,把服务器留给专门的维护人员管理和维护,进而专注于应用开发,提升应用开发效率、节约企业IT成本。传统上使用Kubernetes运行容器,首先需要创建运行容器的Kubernetes服务器集群,然后再创建容器负载。 详细介绍请查看什么是云容器实例。
  • 使用CCI集群,在容器内部执行systemctl命令,需要以特权模式(--privileged=true)来启动容器是否支持? 目前,CCI尚不支持特权模式。 特权容器主要场景是让容器共享、操作宿主机的设备,CCI是基于kata的hypervisor虚拟化级别隔离,所以宿主机的资源对容器完全隔离。 其他场景,推荐通过k8s原生SecurityContext中更细粒度的权限策略来控制,按需使用,保障客户容器运行环境安全可靠。 父主题: 容器工作负载类
  • 如何解决Connection timed out问题? 问题现象: CCI实例创建正常,使用python django smtp服务发送邮件时,一直提示“[Errno 110] Connection timed out”错误。 问题原因: 客户仅购买了ELB服务未购买NAT网关服务,故只能从外部访问容器。购买NAT网关后,才可以从容器内部访问外部网络。 为了确保良好的网络安全环境,华为云对25端口对外发送做了限制。 解决方法: 方法一:使用NAT网关服务,该服务能够为VPC内的容器实例提供 网络地址转换 (Network Address Translation)服务,SNAT功能通过绑定弹性公网IP,实现私有IP向公有IP的转换,可实现VPC内的容器实例共享弹性公网IP访问Internet。详情请参见从容器访问公网。 方法二:联系技术人员,放通客户新申请的弹性公网IP的25端口。 父主题: 网络管理类
  • CCI资源包中的核时怎么理解? 1 核*时 = 1 * 3600(核*秒) 1 核*时 :1核的CPU连续跑1个小时所用的资源量 1 核*秒: 1核的CPU连续跑1秒所用的资源量 案例一: 假设用户的Deployment是2.5核的,连续运行了2个小时,那么它所消耗的资源量为:2.5 * 2 = 5(核*时)= 5* 3600(核*秒)。 案例二: 假设当前是730核*时,那么最大可以1小时内运行一个730核的容器,也可以730小时内运行一个1核的容器。 详细信息您可以参考计费说明。 父主题: 基本概念类
  • 排查项二:用户自身业务BUG 请检查工作负载启动命令是否正确执行,或工作负载本身bug导致容器不断重启。 按照使用kubectl配置好kubectl。 在页面单击失败的工作负载,进入负载详情界面,查看Pod列表,获取Pod名字。 查看失败的容器的名称。 kubectl describe pod $name -n $namespace | grep "Error syncing pod failed to" 图2 查看失败的容器的名称 查看退出容器的错误日志。 kubectl logs $podName -n $namespace -c $containerName 根据日志提示修复工作负载本身的问题。 图3 容器启动命令配置不正确 此种问题的解决方案是:重新创建工作负载,并配置正确的启动命令。
  • 排查项一:查看端口是否冲突 按照使用kubectl配置好kubectl。 在页面上单击失败的工作负载,进入负载详情界面,查看Pod列表,获取Pod名字。 查看失败的容器的名称。 kubectl describe pod $name -n $namespace | grep "Error syncing pod failed to" 图1 查看失败的容器的名称 查看退出容器的错误日志。 kubectl logs $podName -n $namespace -c $containerName 此种问题有如下解决方法:重新创建工作负载,并配置正确的端口,确保端口不冲突。
  • 负载访问504问题定位思路 负载访问504问题一般是因为ELB实例绑定的Port到后端 CCI 负载Pod的安全组没有放通。查看CCI负载Pod使用的安全组,确保安全组规则放通ELB实例绑定的Port。 Pod绑定的安全组可以通过查看负载对应Network获得,调用Network接口,响应里面metadata.annotations中的network.alpha.kubernetes.io/default-security-group即为安全组ID,如下所示。 { "kind": "Network", "apiVersion": "networking.cci.io/v1beta1", "metadata": { "name": "namespace-test-dc1-default-network", "namespace": "namespace-test", "selfLink": "/apis/networking.cci.io/v1beta1/namespaces/namespace-test/networks/namespace-test-dc1-default-network", "uid": "6fb85414-af6b-11e8-b6ef-f898ef6c78b4", "resourceVersion": "5016899", "creationTimestamp": "2018-09-03T11:21:00Z", "annotations": { "network.alpha.kubernetes.io/project-id": "51bf52609f2a49c68bfda3398817b376", "network.alpha.kubernetes.io/default-security-group": "19c5d024-aed5-4856-b958-c0f65ce70855", "network.alpha.kubernetes.io/domain-id": "aadb43c0b14c4cafbccfff483d075987" }, "enable": true }, "spec": { "cidr": "192.168.244.0/23", "attachedVPC": "0d4080e5-546a-46c4-86fe-f3e26d685177", "networkType": "underlay_neutron", "physicalNetwork": "phy_net0", "networkID": "0022e356-f730-4226-802e-9cdaa6e7da17", "subnetID": "1ffd839d-e534-4fa8-a59d-42356335bf74", "availableZone": "cnnorth1a" }, "status": { "state": "Active" }} 进入网络控制台,根据上述操作中已获取的安全组ID,查找对应的安全组。 单击安全组名称,在安全组的入方向规则中增加如下规则。 UDP类型的公网访问,健康检查依赖ICMP规则,请注意添加。 父主题: 网络管理类
  • CCI是否支持负载均衡? CCI支持负载均衡,当前在CCI创建工作负载的访问设置页面中,内网访问(使用私网ELB访问)和公网访问中的配置都是负载均衡方式。 通常所说的负载均衡一般指的是公网负载均衡,CCI对接负载均衡服务。 通过CCI创建工作负载时,在设置访问设置的页面,可以根据需要选择内网访问和外网访问,然后配置负载均衡。 公网访问负载均衡,请参见公网访问。 内网访问负载均衡,请参见内网访问。 父主题: 网络管理类
  • 排查项四:命名空间的资源类型错误 请检查创建命名空间时选择的资源类型是否正确,通用计算型和GPU加速型支持X86镜像。 登录控制台,在页面上单击失败的工作负载,进入负载详情界面。 查看Pod列表,单击实例异常Pod所在行“操作”列的“查看日志”。 查看报错信息如下。 ERROR: exec failed: Exec format error ERROR: hyper send process initiated event: error
  • 为什么exec进入容器后执行GPU相关的操作报错? 问题现象: exec进入容器后执行GPU相关的操作(例如nvidia-smi、使用tensorflow运行GPU训练任务等)报错“cannot open shared object file: No such file or directory”。 问题原因: 安全容器内的cuda库位置为/usr/local/nvidia/lib64,您需要添加/usr/local/nvidia/lib64到LD_LIBRARY_PATH,才能正确地找到cuda库。 解决方法: 使用kubectl exec或者前端console登录进入带GPU的容器时,先执行命令export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/nvidia/lib64,然后再执行其他GPU相关的操作命令。 父主题: 容器工作负载类
  • 日志出现重复/丢失的原因 日志出现重复 原因一:日志文件转储,且转储文件仍被匹配到。 详细说明:如果配置日志路径文件名中有通配符,如配置为/tmp/*.log,当/tmp/test.log文件转储为/tmp/test.001.log后,因仍被通配规则匹配到,会被视为新文件,则会被重新采集。 日志出现丢失 原因一:日志文件的存在时间小于5秒。 详细说明:CCI感知日志文件的周期为5秒。日志文件从创建到被删除或重命名的时间小于5秒,则可能该日志文件不会被采集。 父主题: 日志采集类
  • job的pod已经执行完成的情况下,为什么依然有实例在挂卷等事件,并且事件信息是失败的? 问题现象: job的Pod已经执行完成的情况下,依然有实例在挂卷等事件,并且事件信息是失败的。 图1 问题截图 问题原因: 各种类型的Pod(Deployment/StatefulSet/Job/CronJob)在Node上启动时: 由kubelet针对该Pod创建podWorker(独立协程)负责检测Pod与关联volume的挂载情况:每隔0.3s检测当前Pod所需挂载的volume都已经挂载成功,检测超时为2min3s;如果检测周期中以及最终超时到达时Pod关联volume都没有检测到挂载成功,则上报事件“Unable to mount volumes for pod …”。 由kubelet中VolumeManager(独立协程)负责具体实施Pod关联volume的挂载操作。 对于long running的Pod(Deployment/StatefulSet),除了类似镜像拉取失败、存储挂载失败、容器网络分配失败、当前节点CPU/Mem不满足Pod的实际使用要求等异常场景外,Pod容器如果最终都会启动成功时,上述podWorker在几次周期后都会判定挂载成功。 而对于短时运行的Pod(Job/CronJob),由于容器中业务存在正常退出(如问题场景的GCS Demo job只执行一些echo和ls命令,总体耗时1s不到),就存在短时Pod运行退出时如果刚好在两次podwork检测volume挂载周期中,那么就会出现本问题单所述的误报,但是不影响业务使用,且实际的Job业务还是会运行超过上述时间的。 当前kubelet上述能力属于社区挂载框架既有能力。 解决方法: 针对短时运行的Pod(Job/CronJob),可能存在由于运行时间过短而误报卷挂载超时的情况,如果这类短时运行任务属于正常退出,则该误报对业务没有影响可以忽略。 父主题: 存储管理类
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全