云服务器内容精选

  • 与其他服务的关系 云容器实例需要与其他云服务协同工作,云容器实例需要获取如下云服务资源的权限。 图1 云容器实例与其他服务的关系 容器镜像服务 容器 镜像服务 (Software Repository for Container,SWR)是一种支持容器镜像全生命周期管理的服务, 提供简单易用、安全可靠的镜像管理功能,帮助用户快速部署容器化服务。 您可以使用容器镜像服务中的镜像创建负载。 虚拟私有云 虚拟私有云(Virtual Private Cloud,VPC)是用户在云平台上申请的隔离的、私密的虚拟网络环境。用户可以自由配置VPC内的IP地址段、子网、安全组等子服务,也可以申请弹性带宽和弹性IP搭建业务系统。 您创建命名空间时,需要创建或关联VPC,创建在命名空间的容器都运行在VPC之内。 弹性负载均衡 弹性负载均衡( Elastic Load Balance,ELB)将访问流量自动分发到多台云服务器,扩展应用系统对外的服务能力,实现更高水平的应用容错。 您可以通过弹性负载均衡,从外部网络访问容器负载。 应用运维管理 应用运维管理(Application Operations Management, AOM )为运维人员提供一站式立体运维平台,实时监控应用、资源运行状态,通过数十种指标、告警与日志关联分析,快速锁定问题根源,保障业务顺畅运行。 云容器实例对接了AOM,AOM会采集容器日志存储中的“.log”等格式日志文件,转储到AOM中,方便您查看和检索;并且云容器实例基于AOM进行资源监控,为您提供弹性伸缩能力。 云硬盘服务 云硬盘(Elastic Volume Service,EVS)提供持久性块存储的服务,通过数据冗余和缓存加速等多项技术,提供高可用性和持久性,以及稳定的低时延性能。您可以对云硬盘做格式化、创建文件系统等操作,并对数据做持久化存储。 您可以使用云硬盘作为容器的持久化存储,在创建负载的时候挂载到容器上。 对象存储服务 对象存储服务(Object Storage Service,OBS)是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力,包括:创建、修改、删除桶,上传、下载、删除对象等。 您可以使用对象存储服务作为容器的持久化存储,在创建任务的时候挂载到容器上。 弹性文件服务 弹性文件服务(Scalable File Service)为用户提供托管的共享文件存储,符合标准文件协议(NFS),能够弹性伸缩至PB规模,具备可扩展的性能,为海量数据、高带宽型应用提供有力支持。 您可以使用弹性文件服务作为容器的持久化存储,在创建任务负载的时候挂载到容器上。 弹性云服务器 弹性云服务器(Elastic Cloud Server)是一种可随时自助获取、可弹性伸缩的云服务器,帮助用户打造可靠、安全、灵活、高效的应用环境。 云容器实例通过E CS 将数据导入到SFS,进而供容器业务使用。 NAT网关 NAT网关能够为VPC内的容器实例提供 网络地址转换 (Network Address Translation)服务,SNAT功能通过绑定弹性公网IP,实现私有IP向公有IP的转换,可实现VPC内的容器实例共享弹性公网IP访问Internet。 您可以通过NAT网关设置SNAT规则,使得容器能够访问Internet。 数据加密 服务 数据加密服务(Data Encryption Workshop, DEW)是一个综合的云上数据加密服务。它提供密钥管理(KMS)、凭据管理(C SMS )、密钥对管理(KPS)、专属加密(DHSM)四个微服务,安全可靠的为您解决数据安全、密钥安全、密钥管理复杂等问题。其密钥由硬件安全模块(Hardware Security Module,HSM) 保护,并与多个华为云服务集成。您也可以借此服务开发自己的加密应用。
  • 策略授权系统权限 CCI服务支持基于策略授权的授权模型。如表4所示,包括了CCI基于策略授权中的所有系统策略。策略授权的系统策略与角色授权的系统策略并不互通。 表4 CCI系统策略 系统策略名称 描述 策略类别 CCIFullAccessPolicy 云容器实例服务所有权限 系统策略 CCIReadOnlyPolicy 云容器实例服务只读访问权限 系统策略 表5列出了CCI常用操作与系统策略的授权关系,您可以参照该表选择合适的系统策略。 表5 常用操作与系统策略的关系 操作 CCIFullAccessPolicy CCIReadOnlyPolicy 创建Pod √ x 删除Pod √ x 查看Pod √ √ 查看资源使用率 √ √ 创建文件存储卷 x x 删除文件存储卷 x x 查看文件存储卷 √ √ 创建ConfigMap √ x 删除ConfigMap √ x 查看ConfigMap √ √ 创建Secret √ x 删除Secret √ x 查看Secret √ √ 查看日志 √ √ 获取指定namespace √ √ 创建namespace √ x 删除namespace √ x
  • 角色授权系统权限 CCI服务支持基于角色授权的授权模型。默认情况下,管理员创建的 IAM 用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 CCI部署时通过物理区域划分,为项目级服务。授权时,“授权范围”需要选择“指定区域项目资源”,然后在指定区域(如华北-北京四)对应的项目(cn-north-4)中设置相关权限,并且该权限仅对此项目生效;如果“授权范围”选择“所有资源”,则该权限在所有区域项目中都生效。访问CCI时,需要先切换至授权区域。 如表2所示,包括了CCI的所有系统权限。基于角色授权场景的系统策略与基于策略授权场景的并不互通。 表2 CCI系统权限 系统策略名称 描述 类别 CCI FullAccess 云容器实例所有权限,拥有该权限的用户可以执行云容器实例所有资源的创建、删除、查询、更新操作。 说明: 对象存储服务OBS为全局级服务,若需要使用对象存储服务请为其单独授予权限,授权操作请参见对象存储服务权限控制。 系统策略 CCI ReadOnlyAccess 云容器实例只读权限,拥有该权限的用户仅能查看云容器实例资源。 系统策略 CCI CommonOperations 云容器实例普通用户,拥有该权限的用户可以执行除RBAC、network和namespace子资源创建、删除、修改之外的所有操作。 系统策略 CCI Administrator 云容器实例管理员权限,拥有该权限的用户可以执行云容器实例所有资源的创建、删除、查询、更新操作。 系统角色 表3列出了CCI常用操作与系统权限的授权关系,您可以参照该表选择合适的系统权限。 表3 常用操作与系统策略的关系 操作 CCI FullAccess CCI ReadOnlyAccess CCI CommonOperations 创建无状态负载 √ x √ 删除无状态负载 √ x √ 查看无状态负载 √ √ √ 升级负载 √ x √ 伸缩负载 √ x √ 删除Pod √ x √ 查看Pod √ √ √ 创建任务 √ x √ 删除任务 √ x √ 查看任务 √ √ √ 创建定时任务 √ x √ 删除定时任务 √ x √ 查看定时任务 √ √ √ 查看资源使用率 √ √ √ 添加云硬盘卷 √ x √ 删除云硬盘卷 √ x √ 查看云硬盘卷 √ √ √ 创建文件存储卷 √ x √ 删除文件存储卷 √ x √ 查看文件存储卷 √ √ √ 创建ConfigMap √ x √ 删除ConfigMap √ x √ 查看ConfigMap √ √ √ 创建Secret √ x √ 删除Secret √ x √ 查看Secret √ √ √ 添加SSL证书 √ x √ 删除SSL证书 √ x √ 查看SSL证书 √ √ √ 添加日志存储 √ x √ 查看日志 √ √ √ 安装插件 √ x √ 删除插件 √ x √ 查看插件 √ √ √ 查看授权 √ √ √ 新增授权 √ x x 删除授权 √ x x 获取指定namespace √ √ √ 创建namespace √ x x 删除namespace √ x x 创建network √ x x 删除network √ x x 查询network列表 √ √ √ 查询network详情 √ √ √
  • 责任共担 华为云秉承“将公司对网络和业务安全性保障的责任置于公司的商业利益之上”。针对层出不穷的 云安全 挑战和无孔不入的云安全威胁与攻击,华为云在遵从法律法规业界标准的基础上,以安全生态圈为护城河,依托华为独有的软硬件优势,构建面向不同区域和行业的完善云服务安全保障体系。 安全性是华为云与您的共同责任,如图1所示。 华为云:负责云服务自身的安全,提供安全的云。华为云的安全责任在于保障其所提供的IaaS、PaaS和SaaS类云服务自身的安全,涵盖华为云数据中心的物理环境设施和运行其上的基础服务、平台服务、应用服务等。这不仅包括华为云基础设施和各项云服务技术的安全功能和性能本身,也包括运维运营安全,以及更广义的安全合规遵从。 租户:负责云服务内部的安全,安全地使用云。华为云租户的安全责任在于对使用的IaaS、PaaS和SaaS类云服务内部的安全以及对租户定制配置进行安全有效的管理,包括但不限于虚拟网络、 虚拟主机 和访客虚拟机的操作系统,虚拟防火墙、API网关和高级安全服务,各项云服务,租户数据,以及身份账号和密钥管理等方面的安全配置。 《华为云安全白皮书》详细介绍华为云安全性的构建思路与措施,包括云安全战略、责任共担模型、合规与隐私、安全组织与人员、基础设施安全、租户服务与租户安全、工程安全、运维运营安全、生态安全。 图1 华为云安全责任共担模型 父主题: 安全
  • 审计 云审计 服务(Cloud Trace Service, CTS ),是华为云安全解决方案中专业的日志审计服务,提供对各种云资源操作记录的收集、存储和查询功能,可用于支撑安全分析、合规审计、资源跟踪和问题定位等常见应用场景。 用户开通云审计服务并创建和配置追踪器后,CTS可记录您从云管理控制台或者开放API发起的云服务资源操作请求以及每次请求的结果。 CTS的详细介绍和开通配置方法,请参见CTS快速入门。 CTS支持追踪的CCI操作列表,请参见云审计服务支持的CCI操作列表。 CCI记录的审计日志会上报到CTS,供用户查询和分析,详细介绍和配置方法,请参见查看云审计日志。
  • 命名空间权限 Kubernetes RBAC API定义了四种类型:Role、ClusterRole、RoleBinding与ClusterRoleBinding。当前CCI仅支持ClusterRole、RoleBinding,这两种类型之间的关系和简要说明如下: ClusterRole:描述角色和权限的关系。在Kubernetes的RBAC API中,一个角色定义了一组特定权限的规则。整个Kubernetes集群范围内有效的角色则通过ClusterRole对象实现。 RoleBinding:描述subjects(包含users,groups)和角色的关系。角色绑定将一个角色中定义的各种权限授予一个或者一组用户,该用户或用户组则具有对应绑定ClusterRole定义的权限。 表1 RBAC API所定义的两种类型 类型名称 说明 ClusterRole ClusterRole对象可以授予整个集群范围内资源访问权限。 RoleBinding RoleBinding可以将同一Namespace中的subject(用户)绑定到某个具有特定权限的ClusterRole下,则此subject即具有该ClusterRole定义的权限。 当前仅支持用户使用ClusterRole在Namespace下创建RoleBinding。
  • 什么是区域、可用区? 区域和可用区用来描述数据中心的位置,您可以在特定的区域、可用区创建资源。 区域(Region):从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region。 可用区(AZ,Availability Zone):一个AZ是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 图1阐明了区域和可用区之间的关系。 图1 区域和可用区 目前,华为云已在全球多个地域开放云服务,您可以根据需求选择适合自己的区域和可用区。更多信息请参见华为云全球站点。
  • CCI权限 默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 CCI部署时通过物理区域划分,为项目级服务。授权时,“作用范围”需要选择“区域级项目”,然后在指定区域(如华北-北京四)对应的项目(cn-north-4)中设置相关权限,并且该权限仅对此项目生效;如果在“所有项目”中设置权限,则该权限在所有区域项目中都生效。访问CCI时,需要先切换至授权区域。 根据授权精细程度分为角色和策略。 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于云平台各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。例如:针对CCI服务,管理员能够控制IAM用户仅能对某一类云容器实例资源进行指定的管理操作。多数细粒度策略以API接口为粒度进行权限拆分,CCI支持的API授权项请参见权限策略和授权项。
  • Pod规格限制 云容器实例当前支持使用GPU,您可以根据需要选择,实例收费详情请参见产品价格详情。 当不使用GPU时,Pod规格需满足如下要求: 表1 Pod规格限制要求 Pod规格限制项 限制取值范围 Pod的CPU 0.25核-32核,或者自定义选择48核、64核。 CPU必须为0.25核的整数倍。 Pod的内存 1GiB-512GiB。 内存必须为1GiB的整数倍。 Pod的CPU/内存配比值 在1:2至1:8之间。 Pod的容器 一个Pod内最多支持5个容器。 Pod中所有容器和InitContainer(启动容器) 两者规格中的request和limit相等。 Pod规格计算详情请参见Pod规格计算方式。 InitContainer是一种特殊容器,在 Pod 内的应用容器启动之前运行。有关InitContainer更多解释请参见对容器进行初始化操作。
  • Kubernetes应用限制 基于华为云的安全性带来的限制,CCI目前还不支持Kubernetes中HostPath、DaemonSet等功能,具体如下表所示。 不支持的功能 说明 推荐替代方案 HostPath 挂载本地宿主机文件到容器中 使用云盘或者SFS文件系统 HostNetwork 将宿主机端口映射到容器上 使用type=LoadBalancer的负载均衡 DaemonSet DaemonSet(守护进程集)在集群的每个节点上运行一个Pod,且保证只有一个Pod 通过sidecar形式在Pod中部署多个容器 Privileged权限 容器拥有privileged权限 使用Security Context为Pod添加Capability type=NodePort的Service 将宿主机端口映射到容器上 使用type=LoadBalancer的负载均衡
  • Init容器(Init-Containers) Init-Containers,即初始化容器,顾名思义容器启动的时候,会先启动一个或多个容器,如果有多个,那么这几个Init Container按照定义的顺序依次执行,只有所有的Init Container执行完后,主容器才会启动。由于一个Pod里的存储卷是共享的,所以Init Container里产生的数据可以被主容器使用到。 Init Container可以在多种K8S资源里被使用到如Deployment、Job等,但归根结底都是在Pod启动时,在主容器启动前执行,做初始化工作。 详细信息请参见Init容器。
  • 无状态负载(Deployment) Deployment是Pod Controller的一种。 一个Deployment可以包含一个或多个Pod,每个Pod的角色相同,所以系统会自动为Deployment的多个Pod分发请求。Deployment中的所有Pod共享存储卷。 使用Deployment时,您只需要在Deployment中描述您想要的目标状态是什么,Deployment就会帮您将Pod的状态改变到目标状态。 详细信息请参见Deployment。
  • 标签 Label(标签)是一组附加在对象上的键值对,用来传递用户定义的属性。 标签常用来从一组对象中选取符合条件的对象,这也是Kubernates中目前为止最重要的节点分组方法。 比如,您可能创建了一个“tier”和“app”标签,通过Label(tier=frontend,app=myapp)来标记前端Pod容器,使用Label(tier=backend,app=myapp)标记后台Pod。然后可以使用Selectors选择带有特定Label的Pod,并且将Service或者Deployment应用到上面。 详细信息请参见Label。 图2 使用Label组织的Pod
  • Pod Pod是Kubernetes创建或部署的最小单位。一个Pod封装一个或多个容器、存储资源、一个独立的网络IP以及管理控制容器运行方式的策略选项。 图1 Pod Pod使用主要分为两种方式: Pod中运行一个容器。这是Kubernetes最常见的用法,您可以将Pod视为单个封装的容器,但是Kubernetes是直接管理Pod而不是容器。 Pod中运行多个需要耦合在一起工作、需要共享资源的容器。 实际使用中很少直接创建Pod,而是使用Kubernetes中称为Controller的抽象层来管理Pod实例,例如Deployment。Controller可以创建和管理多个Pod,提供副本管理、滚动升级和自愈能力。通常,Controller会使用Pod Template来创建相应的Pod。 详细信息请参见Pod。
  • 服务(Service) Pod是有生命周期的,它们可以被创建,也可以被销毁,然而一旦被销毁生命就永远结束。通过Pod Controller能够动态地创建和销毁Pod(例如,需要进行扩缩容,或者执行滚动升级)。每个Pod都会获取它自己的IP地址,但这些IP地址不总是稳定可依赖的。 这会导致一个问题:如果一组Pod(称为backend)为其它Pod(称为frontend)提供服务,那么那些frontend该如何发现,并连接到这组Pod中的哪些backend呢? Service定义了这样一种抽象:一个Pod的逻辑分组,一种可以访问它们的策略(通常称为微服务)。 这一组Pod能够被Service访问到,通常是通过Label Selector实现的。 举个例子,考虑一个图片处理backend,它运行了3个Pod副本。这些副本是可互换的(frontend不需要关心它们调用了哪个backend副本)。 然而组成这一组backend的Pod实际上可能会发生变化,frontend不应该也没必要知道,而且也不需要跟踪这一组backend的状态。Service定义的抽象就是用来解耦这种关联。 详细信息请参见Service。