华为云用户手册

  • CCI自定义策略样例 示例1:更新命名空间 { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "cci:namespace:update" ] } ] } 示例2:拒绝用户删除命名空间 拒绝策略需要同时配合其他策略使用,否则没有实际作用。用户被授予的策略中,一个授权项的作用如果同时存在Allow和Deny,则遵循Deny优先原则。 如果您给用户授予CCIFullAccess的系统策略,但不希望用户拥有CCIFullAccess中定义的删除命名空间权限(cci:namespace:delete),您可以创建一条相同Action的自定义策略,并将自定义策略的Effect设置为Deny,然后同时将CCIFullAccess和拒绝策略授予用户,根据Deny优先原则,则用户可以对CCI执行除了删除命名空间外的所有操作。拒绝策略示例如下: { "Version": "1.1", "Statement": [ { "Action": [ "cci:namespace:delete" ], "Effect": "Deny" } ] } 示例3:多个授权项策略 一个自定义策略中可以包含多个授权项,且除了可以包含本服务的授权项外,还可以包含其他服务的授权项,可以包含的其他服务必须跟本服务同属性,即都是项目级服务或都是全局级服务。多个授权语句策略描述如下: { "Version": "1.1", "Statement": [ { "Action": [ "ecs:cloudServers:resize", "ecs:cloudServers:delete", "ecs:cloudServers:delete", "ims:images:list", "ims:serverImages:create" ], "Effect": "Allow" } ] }
  • 漏洞详情 2019年6月18日,Redhat发布安全公告,Linux内核处理器TCP SACK模块存在3个安全漏洞(CVE-2019-11477、CVE-2019-11478、CVE-2019-11479),这些漏洞与最大分段大小(MSS)和TCP选择性确认(SACK)功能相关,攻击者可远程发送特殊构造的攻击包造成拒绝服务攻击,导致服务器不可用或崩溃。 参考链接: https://www.suse.com/support/kb/doc/?id=7023928 https://access.redhat.com/security/vulnerabilities/tcpsack https://www.debian.org/lts/security/2019/dla-1823 https://wiki.ubuntu.com/SecurityTeam/KnowledgeBase/SACKPanic? https://lists.centos.org/pipermail/centos-announce/2019-June/023332.html https://github.com/Netflix/security-bulletins/blob/master/advisories/third-party/2019-001.md 表1 漏洞信息 漏洞类型 CVE-ID 披露/发现时间 华为云修复时间 输入验证错误 CVE-2019-11477 2019-06-17 2019-07-11 资源管理错误 CVE-2019-11478 2019-06-17 2019-07-11 资源管理错误 CVE-2019-11479 2019-06-17 2019-07-11
  • 附:TCP SACK介绍 TCP是面向连接的协议。当双方希望通过TCP连接进行通信时,他们通过TCP握手交换某些信息建立连接,例如发起一个TCP请求,通过SYN发送初始序列ID、确认ID、连接使用的最大数据包段大小(MSS)、认证信息和处理选择性确认(SACK)等。整体TCP连接通过我们熟知的三次握手最终建立。 TCP通过一个数据段单元发送和接收用户数据包。 TCP数据段由TCP头、选项和用户数据组成。每个TCP段都有序列号(SEQ)和确认号(ACK)。 接收方通过SEQ号和ACK号来跟踪成功接收了哪些段。ACK号下一个预期接受的段。 示例: 上图中用户A通过13个100字节的段发送1k字节的数据,每个段具有20字节的TCP头,总计是13个段。在接收端,用户B接收了段1,2,4,6,8-13,而段3,5和7丢失,B没有接收到。 通过使用ACK号,用户B告诉A,他需要段3,用户A读取到B接收到2后没有收到3,A将重新发送全部段,尽管B已经收到了4,6和8-13段。这就导致了网络的低效使用。
  • PersistentVolumeClaim(PVC) 云容器实例使用PVC申请并管理持久化存储,PVC可以让您无需关心底层存储资源如何创建、释放等动作,而只需要申明您需要何种类型的存储资源、多大的存储空间。 在实际使用中,您可以通过Pod中的Volume来关联PVC,通过PVC使用持久化存储,如图1所示。 图1 使用持久化存储 在云容器实例控制台,您可以导入已经创建的EVS、SFS和SFS Turbo,导入这些存储资源的同时会创建一个PVC用于这些存储资源。 您还可以在云容器实例控制台直接购买EVS和SFS,购买动作不仅购买实际的存储资源,同时还会创建PVC,也就是在这里购买就会直接导入到云容器实例中。
  • 查看Pod 有时,您也许会通过调用创建Pod接口或者使用kubectl直接创建Pod,这些Pod并不在某个负载或任务之下,不方便通过控制台管理。云容器实例提供了Pod管理功能,您可以通过“选择来源”更方便找到需要的Pod。 图2 选择Pod来源 您可以查看到所有Pod详情,包括基本信息、Pod中容器组成、Pod的监控信息、事件,以及使用远程终端访问Pod。您还可以对Pod进行删除操作,并查看Pod的日志。 图3 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。
  • 网络访问概述 负载访问可以分为如下几种场景: 内网访问:访问内网资源。 使用“Service”方式访问:该方式适合CCI中同一个命名空间中的负载相互访问。 使用ELB(私网)访问:该方式适合云服务内部资源(云容器实例以外的资源,如E CS 等)且与负载在同一个VPC内互相访问,另外在同一个VPC不同命名空间的负载也可以选择此种方式。通过内网 域名 或ELB的“IP:Port”为内网提供服务,支持HTTP/HTTPS和TCP/UDP协议。如果是内网且与负载不在同一个VPC内,也可以选择创建VPC对等连接,使得两个VPC之间网络互通。 公网访问:即给负载绑定ELB(ELB必须与负载在同一个VPC内),通过ELB从公网访问负载。 从容器访问公网:通过在NAT网关服务中配置SNAT规则,使得容器能够访问公网。 图1 网络访问示意图 父主题: 负载网络访问
  • CoreDNS域名解析插件版本发布记录 表2 CoreDNS域名解析插件版本记录 插件版本 支持的集群版本 更新特性 社区版本 1.29.5 v1.21 v1.23 v1.25 v1.27 v1.28 v1.29 修复部分问题 1.10.1 1.29.4 v1.21 v1.23 v1.25 v1.27 v1.28 v1.29 适配CCE v1.29集群 1.10.1 1.28.7 v1.21 v1.23 v1.25 v1.27 v1.28 支持插件热更新配置,无需滚动升级 1.10.1 1.28.5 v1.21 v1.23 v1.25 v1.27 v1.28 修复部分问题 1.10.1 1.28.4 v1.21 v1.23 v1.25 v1.27 v1.28 适配CCE v1.28集群 1.10.1 1.27.4 v1.19 v1.21 v1.23 v1.25 v1.27 - 1.10.1 1.27.1 v1.19 v1.21 v1.23 v1.25 v1.27 适配CCE v1.27集群 1.10.1 1.25.1 v1.19 v1.21 v1.23 v1.25 适配CCE v1.25集群 1.8.4 1.23.3 v1.15 v1.17 v1.19 v1.21 v1.23 插件依赖例行升级 1.8.4 1.23.2 v1.15 v1.17 v1.19 v1.21 v1.23 插件依赖例行升级 1.8.4 1.23.1 v1.15 v1.17 v1.19 v1.21 v1.23 适配CCE v1.23集群 1.8.4 1.17.15 v1.15 v1.17 v1.19 v1.21 适配CCE v1.21集群 1.8.4 1.17.9 v1.15 v1.17 v1.19 插件依赖例行升级 1.8.4 1.17.7 v1.15 v1.17 v1.19 同步至社区v1.8.4版本 1.8.4 1.17.4 v1.17 v1.19 适配CCE v1.19集群 1.6.5 1.17.3 v1.17 支持v1.17集群,修复存根域配置问题 1.6.5 1.17.1 v1.17 支持v1.17集群 1.6.5
  • 为CoreDNS配置存根域 集群管理员可以修改CoreDNS Corefile的ConfigMap以更改服务发现的工作方式。使用插件proxy可对CoreDNS的存根域进行配置。 如果集群管理员有一个位于10.150.0.1的Consul域名解析服务器,并且所有Consul的域名都带有.consul.local的后缀。在CoreDNS的ConfigMap中添加如下信息即可将该域名服务器配置在CoreDNS中: consul.local:5353 { errors cache 30 proxy . 10.150.0.1 } 修改后最终的ConfigMap如下所示: apiVersion: v1 data: Corefile: |- .:5353 { cache 30 errors health kubernetes cluster.local in-addr.arpa ip6.arpa { pods insecure upstream /etc/resolv.conf fallthrough in-addr.arpa ip6.arpa } loadbalance round_robin prometheus 0.0.0.0:9153 proxy . /etc/resolv.conf reload } consul.local:5353 { errors cache 30 proxy . 10.150.0.1 } kind: ConfigMap metadata: name: coredns namespace: kube-system
  • 为CoreDNS配置日志输出选项 CoreDNS使用log插件将域名解析日志打印到标准输出,可通过配置日志输出选项灵活定义输出的日志内容,可在 AOM 中查看解析日志。在域名解析请求量较大的业务场景下,频繁打印域名解析日志到标准输出可能会对CoreDNS的性能造成明显的影响。 当前log插件支持解析成功、解析失败和解析错误三种日志输出选项配置,如图: 图3 选项配置 对应的后端配置格式如下: log [NAMES...] [FORMAT] { class CLASSES... } CLASSES表示应记录的响应类别,是一个以空格分隔的列表。 日志输出选项配置具体含义如下: 输出解析成功日志: 勾选后将在log插件CLASSES中添加success响应参数,CoreDNS会将解析成功的日志打印到标准输出。 输出解析失败日志: 勾选后将在log插件CLASSES中添加denial响应参数, CoreDNS会将解析失败的日志,例如NXDOMAIN或nodata响应(名称存在,类型不存在)打印到标准输出。 输出解析错误日志: 勾选后将在log插件CLASSES中添加error响应参数,CoreDNS会将解析错误的日志打印到标准输出,例如SERVFAIL、NOTIMP、REFUSED等任何表示远程服务器不解析的请求消息,便于及时发现DNS服务器不可用等问题。 全不勾选: 如果未选中上述任一配置,则将关闭日志插件。 关闭日志插件仅影响CoreDNS的解析记录,而CoreDNS服务进程的日志记录依然会显示,不过该部分日志量极小,对性能无影响。 以勾选“输出解析成功日志”与“输出解析失败日志”为例,其后端log插件配置为: log . { class success denial } 创建成功的CoreDNS对应的ConfigMap如下: apiVersion: v1 data: Corefile: |- .:5353 { cache 30 errors log . { classes success denial } health kubernetes cluster.local in-addr.arpa ip6.arpa { pods insecure upstream /etc/resolv.conf fallthrough in-addr.arpa ip6.arpa } loadbalance round_robin prometheus 0.0.0.0:9153 proxy . /etc/resolv.conf reload } kind: ConfigMap metadata: name: coredns namespace: kube-system
  • kubernetes中的域名解析逻辑 DNS策略可以在每个pod基础上进行设置,目前,Kubernetes支持Default、ClusterFirst、ClusterFirstWithHostNet和None四种DNS策略,具体请参见https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/。这些策略在pod-specific的dnsPolicy 字段中指定。 “Default”:如果dnsPolicy被设置为“Default”,则名称解析配置将从pod运行的节点继承。 自定义上游域名服务器和存根域不能够与这个策略一起使用。 “ClusterFirst”:如果dnsPolicy被设置为“ClusterFirst”,任何与配置的集群域后缀不匹配的DNS查询(例如,www.kubernetes.io)将转发到从该节点继承的上游名称服务器。集群管理员可能配置了额外的存根域和上游DNS服务器。 “ClusterFirstWithHostNet”:对于使用hostNetwork运行的Pod,您应该明确设置其DNS策略“ClusterFirstWithHostNet”。 “None”:它允许Pod忽略Kubernetes环境中的DNS设置。应使用dnsConfigPod规范中的字段提供所有DNS设置 。 Kubernetes 1.10及以上版本,支持Default、ClusterFirst、ClusterFirstWithHostNet和None四种策略;低于Kubernetes 1.10版本,仅支持default、ClusterFirst和ClusterFirstWithHostNet三种。 “Default”不是默认的DNS策略。如果dnsPolicy的Flag没有特别指明,则默认使用“ClusterFirst”。 路由请求流程: 未配置存根域:没有匹配上配置的集群域名后缀的任何请求,例如 “www.kubernetes.io”,将会被转发到继承自节点的上游域名服务器。 已配置存根域:如果配置了存根域和上游 DNS 服务器,DNS 查询将基于下面的流程对请求进行路由: 查询首先被发送到 coredns 中的 DNS 缓存层。 从缓存层,检查请求的后缀,并根据下面的情况转发到对应的 DNS 上: 具有集群后缀的名字(例如“.cluster.local”):请求被发送到 coredns。 具有存根域后缀的名字(例如“.acme.local”):请求被发送到配置的自定义 DNS 解析器(例如:监听在 1.2.3.4)。 未能匹配上后缀的名字(例如“widget.com”):请求被转发到上游 DNS。 图7 路由请求流程
  • 概述 公网访问是指使用外部网络访问负载,您可以给负载绑定共享型ELB实例(ELB必须与负载在同一个VPC内),通过ELB实例访问负载,当前外部访问支持四层和七层负载公网访问。 四层公网访问支持TCP和UDP两种协议,设置完成后可以通过“elb公网ip:elb端口”访问负载。 七层公网访问支持HTTP和HTTPS两种协议访问,设置完成后,可以通过“http://公网域名(或elb 公网ip):elb端口/映射路径”访问负载。 Service是基于四层TCP和UDP协议转发的,Ingress可以基于七层的HTTP和HTTPS协议转发,可以通过域名和路径做到更细粒度的划分,如下图所示。 图1 Ingress-Service 下图是一个通过HTTP协议访问负载的示例。 图2 公网访问
  • 配置公网访问-创建工作负载时设置 在云容器实例中,您只需要在创建负载时选择“公网访问”,然后配置如下参数。 服务名称:服务名称即Service的名称,Service是用于管理Pod访问的对象。Service的详细信息请参见https://support.huaweicloud.com/devg-cci/cci_05_0007.html。 安装coredns:coredns插件为您的其他负载提供内部域名解析服务,如果不安装coredns则无法通过“服务名称:负载访问端口”访问负载。 ELB实例:选择ELB实例,如没有ELB实例可以单击“创建共享型ELB实例”去创建。 此处创建的ELB需要与负载所在命名空间在同一个VPC内。 CCI暂时不支持独享型负载均衡,建议您创建共享型ELB实例。 ELB协议:即公网访问使用的通信协议,支持HTTP、HTTPS、TCP和UDP协议。 Ingress名称:Ingress是用于管理七层协议访问的对象。此处如果不配置,云容器实例会默认负载名称作为Ingress名称。Ingress的详细信息请参见https://support.huaweicloud.com/devg-cci/cci_05_0008.html。 公网域名(选择HTTP/HTTPS协议时可配置):通过域名访问负载,公网域名需要您自行购买,并将域名解析指向所选的ELB实例弹性公网IP。 证书(选择HTTPS协议时必填):SSL证书的导入方法请参见SSL证书。 ELB端口:选择使用的ELB访问的具体协议和端口。 负载端口协议:访问负载的通信协议,可选择TCP或UDP,如果ELB协议选择为HTTP/HTTPS,则负载端口协议为TCP。 负载端口配置: 负载访问端口:负载提供的访问端口。 容器端口:容器监听的端口,负载访问端口映射到容器端口。 HTTP路由配置 映射路径:URL访问的路径,必须以“/”开头,如“/api/web”,也可以是根路径“/”。 负载访问端口:前面设置的负载访问端口。 如下图所示,假如ELB实例的IP地址为“10.10.10.10”,则通过“http://10.10.10.10:6071/”就可以从公网访问到负载。 图3 配置公网访问参数
  • 如何处理公网无法访问 公网能正常访问的前提是负载已处于运行中状态,如果您的负载处于未就绪或异常状态,公网访问将无法正常使用。 从负载开始创建到公网可以正常访问可需要1分钟到3分钟的时间,在此时间内网络路由尚未完成配置,请稍作等待。 负载创建3分钟以后仍然无法访问。单击创建的负载进入详情页,在详情页单击访问配置下面的“事件”标签,查看访问事件,查看是否有告警事件。如下两种常见的事件。 Listener port is repeated:ELB监听器端口重复,是由于之前发布公网访问的负载,删除之后立刻创建使用相同ELB端口的公网访问负载,ELB实际删除端口需要一定的时间,因此首次创建失败,可以选择删除负载重新创建,也可以等待5-10分钟,公网访问可正常使用。 Create listener failed:创建ELB监听器失败,创建监听器失败的原因一般是超过配额限度,请选择其他配额充足的ELB实例。 负载创建3分钟以后仍然无法访问,且无告警事件,可能原因是用户配置的容器端口实际上没有相应进程在监听,目前云容器实例服务无法检测出该类使用异常,需要您排查镜像是否有监听该容器端口。如果容器端口监听正确,此时无法访问的原因可能为ELB实例本身有问题,请排查ELB实例状态。
  • 使用Service方式访问-创建工作负载时设置 在云容器实例中,您只需要在创建负载时,填写服务名称和负载的端口配置,即可通过“服务名称:负载访问端口”访问到该负载。 服务名称:服务名称即Service的名称,Service是用于管理Pod访问的对象。Service的详细信息请参见https://support.huaweicloud.com/devg-cci/cci_05_0007.html。 安装coredns:coredns插件为您的其他负载提供内部域名解析服务,如果不安装coredns则无法通过“服务名称:负载访问端口”访问负载。 负载端口配置 协议:访问负载的通信协议,可选择TCP或UDP。 负载访问端口:负载提供的访问端口。 容器端口:容器监听的端口,负载访问端口映射到容器端口。
  • 容器启动命令 启动容器就是启动主进程,但有些时候,启动主进程前,需要一些准备工作。比如MySQL类的数据库,可能需要一些数据库配置、初始化的工作,这些工作要在最终的MySQL服务器运行之前解决。这些操作,可以在制作镜像时通过在Dockerfile文件中设置ENTRYPOINT或CMD来完成,如下所示的Dockerfile中设置了ENTRYPOINT ["top", "-b"]命令,其将会在容器启动时执行。 FROM ubuntu ENTRYPOINT ["top", "-b"] 启动命令必须为容器镜像支持的命令,否则会导致容器启动失败。 在云容器实例中同样可以设置容器的启动命令,例如上面Dockerfile中的命令,只要在创建负载时配置容器的高级设置,先单击“添加”,输入“top”命令,再单击“添加”,输入参数“-b”,如下图所示。 图1 启动命令 由于容器引擎运行时只支持一条ENTRYPOINT命令,云容器实例中设置的启动命令会覆盖掉制作镜像时Dockerfile中设置的ENTRYPOINT和CMD命令,其规则如下表所示。 镜像Entrypoint 镜像CMD 容器运行命令 容器运行参数 最终执行 [touch] [/root/test] 未设置 未设置 [touch /root/test] [touch] [/root/test] [mkdir] 未设置 [mkdir] [touch] [/root/test] 未设置 [/opt/test] [touch /opt/test] [touch] [/root/test] [mkdir] [/opt/test] [mkdir /opt/test] 父主题: 工作负载
  • 添加日志存储 在创建负载的时候设置为容器添加日志存储。 容器内日志路径:即日志存储挂载到容器内的挂载路径,需要保证应用程序的日志输出路径与该路径一致,这样日志才能写入到日志存储卷中。 请确保日志存储卷路径在当前容器内是不存在的,否则会把容器内这个路径下的内容清空。 目前只支持日志路径下的“.log”、“.trace”、“.out”日志文件。 最多只能采集20个日志文件,也就是说您的日志最多只能输出到日志路径下的20个文件中。 日志存储空间:日志的存储空间大小。 AOM每月赠送每个租户500M的免费日志存储空间,超过500M时将根据实际使用量进行收费,计费规则请参见产品价格详情。 日志存储空间取值请确保为1或2,后台调api接口创建负载时,请确保取值为1GiB或2GiB。 该空间为免费空间,超时不采集,如果日志文件超过2G,请您提前做好转储。 图2 使用日志存储
  • 使用限制 待挂载的云硬盘必须是按需付费,更多信息,请参见云硬盘计费。 云容器实例无法导入以下条件的磁盘:非当前可用区、状态非可用、系统盘、被CCE关联、非SCSI盘、共享盘、专属存储、冻结盘、HANA服务器专属类型盘(高IO性能优化型/超高IO时延优化型)。 云硬盘存储卷只能当一个新盘来用。对于云容器实例没有挂载过的云硬盘存储卷,云硬盘存储卷中的内容对容器不可见。 对于已导入的云硬盘,如果在云硬盘控制台中删除该硬盘,云容器实例无法感知,建议您确定没有负载使用时再删除云硬盘。 一个云硬盘存储卷只能挂载到一个实例下,否则会存在数据丢失的情况。 云容器实例场景下不感知云硬盘扩容,如果需要扩容,请先在云容器实例控制台的“云硬盘存储卷”页面解关联对应的云硬盘,待云硬盘扩容完成后重新导入。
  • SSL证书介绍 SSL证书就是遵守SSL(Secure Socket Layer)协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。服务器通过安装SSL证书可以实现数据信息在客户端和服务器之间的加密传输,可以防止数据信息的泄露,保证了双方传递信息的安全性,而且可以通过服务器证书验证他所访问的网站是否是真实可靠。 SSL证书分为权威证书和自签名证书。权威证书由权威的数字证书认证机构签发,您可向第三方证书代理商购买,使用权威证书的Web网站,默认客户端都是信任的。自签名证书是由用户自己颁发给自己的,一般可以使用openssl生成,默认客户端是不信任的,浏览器访问时会弹出告警,选择忽略告警可继续正常访问。
  • 使用SSL证书 当服务有公网访问时,可以使用SSL证书,设置ELB为HTTPS协议。 在创建负载的过程中,负载访问方式选择“公网访问”,ELB协议选择“HTTP/HTTPS”,证书选项选择SSL证书,负载创建过程中会将SSL证书自动安装到弹性负载均衡器上,从而实现数据传输加密。 图2 使用SSL证书 负载创建完成后,云容器实例将会在ELB中创建与负载名字相同证书。云容器实例服务创建以“beethoveen-cci-ingress”开头名称的证书,请勿删除或更新该类证书,否则引起访问异常。
  • Secret文件格式说明 secret.yaml资源描述文件 例如现在有一个应用需要获取下面的key-value并加密,可以通过Secret来实现: key1: value1 key2: value2 定义的Secret文件secret.yaml内容如下。其中Value需要进行Base64编码,Base64编码方法请参见如何进行Base64编码。 apiVersion: v1 kind: Secret metadata: name: mysecret # secret的名称 annotations: description: "test" labels: label-01: value-01 label-02: value-02 data: key1: dmFsdWUx #需要用Base64编码 key2: dmFsdWUy #需要用Base64编码 type: Opaque # 必须为Opaque secret.json资源描述文件 定义的Secret文件secret.json内容如下。 { "apiVersion": "v1", "kind": "Secret", "metadata": { "annotations": { "description": "test" }, "labels": { "label-01": "value-01", "label-02": "value-02" }, "name": "mysecret" }, "data": { "key1": "dmFsdWUx", "key2": "dmFsdWUy" }, "type": "Opaque" }
  • ConfigMap文件格式要求 ConfigMap资源文件支持json和yaml两种格式,且数据值大小不得超过1MB。 json格式 文件名称为configmap.json,配置示例如下: { "kind": "ConfigMap", "apiVersion": "v1", "metadata": { "name": "nginxconf", "namespace": "cci-namespace-demo" }, "data": { "nginx.conf": "server {\n listen 80;\n server_name localhost;\n\n location / {\n root html;\n index index.html index.htm;\n }\n}" } } yaml格式 文件名称为configmap.yaml,配置示例如下: kind: ConfigMap apiVersion: v1 metadata: name: nginxconf namespace: cci-namespace-demo data: nginx.conf: |- server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } }
  • 弹性伸缩 当前仅支持无状态负载弹性伸缩。 您可以根据业务需求自行定义伸缩策略,降低人为反复调整资源以应对业务变化和高峰压力的工作量,帮助您节约资源和人力成本。当前支持三种弹性伸缩策略: 告警策略:支持根据CPU/内存的使用率,进行工作负载的自动伸缩。工作负载创建完成后即可设置,在CPU/内存超过或少于一定值时,自动增减实例。 定时策略:支持在特定时间点进行工作负载的自动伸缩。适用于秒杀周年庆等活动,例如在秒杀这个时间点增加一定数量的实例个数。 周期策略:支持以天、周、月为周期的伸缩策略。适用于周期性的流量变化。
  • 设置容器生命周期 云容器实例基于Kubernetes,提供了容器生命周期钩子,在容器的生命周期的特定阶段执行调用,比如容器在停止前希望执行某项操作,就可以注册相应的钩子函数。目前提供的生命周期钩子函数如下所示。 启动后处理(PostStart):容器启动后触发。 停止前处理(PreStop):容器停止前触发。 当前云容器实例仅支持命令行类型(Exec)钩子函数。 登录云容器实例控制台,在创建负载配置生命周期过程中,选择“启动后处理”或者“停止前处理”页签。 例如需要在容器中执行“/postStart.sh all”命令,则在界面上做如下配置即可,第一行是命令行脚本名称,第二行是参数。 图1 命令行脚本
  • (可选)准备SSL证书 云容器实例支持使用HTTPS访问负载,在创建负载时,您可以使用自己的SSL证书。 SSL证书分为权威证书和自签名证书。权威证书由权威的数字证书认证机构签发,您可向第三方证书代理商购买,使用权威证书的Web网站,默认客户端都是信任的。自签名证书是由用户自己颁发给自己的,一般可以使用openssl生成,默认客户端是不信任的,浏览器访问时会弹出告警,选择忽略告警可继续正常访问。 SSL证书具体信息请参见SSL证书。
  • (可选)上传镜像 云平台提供了 容器镜像服务 ,您可以上传容器镜像到容器镜像仓库中,创建负载时使用该镜像,具体使用方法请参见客户端上传镜像。 CCI当前暂不支持对接第三方镜像仓库。 如果您开通了企业管理,使用账号登录云容器实例控制台时,您需要在账号下的容器 镜像服务 中给 IAM 用户添加权限,IAM用户才能使用账号下的私有镜像。 给IAM用户添加权限有如下两种方法: 在镜像详情中为IAM用户添加授权,授权完成后,IAM用户享有读取/编辑/管理该镜像的权限,具体请参见在镜像详情中添加授权。 在组织中为IAM用户添加授权,使IAM用户对组织内所有镜像享有读取/编辑/管理的权限,具体请参见在组织中添加授权。
  • 命名空间与网络的关系 从网络角度,命名空间对应一个虚拟私有云(VPC)中一个子网,如图1所示,在创建命名空间时会关联已有VPC或创建一个新的VPC,并在VPC下创建一个子网。后续在该命名空间下创建的容器及其他资源都会在对应的VPC及子网之内。 通常情况下,如果您在同一个VPC下还会使用其他服务的资源,您需要考虑您的网络规划,如子网网段划分、IP数量规划等,确保有可用的网络资源。 图1 命名空间与VPC子网的关系
  • 推理加速型Pi1 概述 Pi1型弹性云服务器采用专为AI推理打造的NVIDIA Tesla P4 GPU,能够提供超强的实时推理能力。Pi1型弹性云服务器借助P4的INT8运算器,能够将推理延时降低15倍。配备硬件解码引擎,能够同时支持35路高清视频流的实时转码与推理。 规格 表13 Pi1型弹性云服务器的规格 规格名称 vCPU 内存 (GiB) 最大带宽/基准带宽 (Gbps) 最大收发包能力 (万PPS) 网卡多队列数 GPU 显存 (GiB) 本地盘 虚拟化类型 pi1.2xlarge.4 8 32 5/1.6 40 2 1 × P4 1 × 8GiB - KVM pi1.4xlarge.4 16 64 8/3.2 70 4 2 × P4 2 × 8GiB - KVM pi1.8xlarge.4 32 128 10/6.5 140 8 4 × P4 4 × 8GiB - KVM Pi1型弹性云服务器功能如下: 处理器:英特尔® 至强® 处理器 E5-2697 v4,主频2.3GHz,睿频3.5GHz。 支持开启/关闭超线程功能,详细内容请参见开启/关闭超线程。 支持NVIDIA Tesla P4 GPU卡,单实例最大支持4张P4 GPU卡。 提供GPU硬件直通能力。 单GPU单精度计算能力最高5.5 TFLOPS。 单GPU INT8计算能力最高22 TOPS。 单GPU提供8GiB ECC显存,带宽192GiB/s。 GPU内置硬件视频编解码引擎,能够同时进行35路高清视频解码与实时推理。 常规支持软件列表 Pi1实例主要用于GPU推理计算场景,例如图片识别、 语音识别 自然语言处理 等场景。 常用的软件支持列表如下: Tensorflow、Caffe、PyTorch、MXNet等深度学习框架 使用须知 Pi1型云服务器,在按需付费的模式下,关机后基础资源(包括vCPU、内存、镜像、GPU)不计费,但系统盘仍会收取容量对应的费用。 如有其他绑定的产品,如云硬盘、弹性公网IP、带宽等,按各自产品的计费方法进行收费。具体请参见产品价格详情。 Pi1型云服务器,在按需付费的模式下,关机后会释放资源,下次开机时如果后台资源不足,可能会导致云服务器开机失败。如果您需要长期使用该云服务器,建议保持开机状态或者选择“包年/包月”计费模式。 Pi1型弹性云服务器不支持规格变更。 Pi1型云服务器,所在物理机发生故障时,云服务器支持自动恢复。 使用公共镜像创建的Pi1型云服务器,默认已安装Tesla驱动。 使用私有镜像创建的Pi1型云服务器,请确认在制作私有镜像时已安装Tesla驱动。如果未安装,请在云服务器创建完成后安装驱动,以实现计算加速功能。详细操作请参考安装Tesla驱动及CUDA工具包。 GPU型弹性云服务器因通用算力和异构算力差异大,仅支持变更规格至同类型规格内的细分规格。 GPU型弹性云服务器不支持热迁移。
  • 推理加速型Pi2 概述 Pi2型弹性云服务器采用专为AI推理打造的NVIDIA Tesla T4 GPU,能够提供超强的实时推理能力。Pi2型弹性云服务器借助T4的INT8运算器,能够提供最大130TOPS的INT8算力。Pi2也可以支持轻量级训练场景。 规格 表12 Pi2型弹性云服务器的规格 规格名称 vCPU 内存 (GiB) 最大带宽/基准带宽(Gbps) 最大收发包能力 (万PPS) 网卡多队列数 网卡个数上限 GPU 显存 (GiB) 本地盘 虚拟化类型 pi2.2xlarge.4 8 32 10/4 50 4 4 1 × T4 1 × 16 - KVM pi2.4xlarge.4 16 64 15/8 100 8 8 2 × T4 2 × 16 - KVM pi2.8xlarge.4 32 128 25/15 200 16 8 4 × T4 4 × 16 - KVM Pi2型弹性云服务器功能如下: 处理器:第二代英特尔® 至强® 可扩展处理器 6278,主频2.6GHz,睿频3.5GHz,或英特尔® 至强® 可扩展处理器 6151,主频3.0GHz,睿频3.4GHz。 支持开启/关闭超线程功能,详细内容请参见开启/关闭超线程。 支持NVIDIA Tesla T4 GPU卡,单实例最大支持4张T4 GPU卡。 提供GPU硬件直通能力。 单GPU单精度计算能力最高8.1 TFLOPS。 单GPU INT8计算能力最高130 TOPS。 单GPU提供16GiB GDDR6显存,带宽320GiB/s。 内置1个NVENC和2个NVDEC。 常规支持软件列表 Pi2实例主要用于GPU推理计算场景,例如图片识别、语音识别、自然语言处理等场景。也可以支持轻量级训练场景。 常用的软件支持列表如下: Tensorflow、Caffe、PyTorch、MXNet等深度学习框架。 使用须知 Pi2型云服务器,关机后基础资源(包括vCPU、内存、镜像、GPU)不计费,但系统盘仍会收取容量对应的费用。 如有其他绑定的产品,如云硬盘、弹性公网IP、带宽等,按各自产品的计费方法进行收费。 Pi2型云服务器,关机后资源会被释放,下次开机时如果后台资源不足,可能会导致云服务器开机失败。如果您需要长期使用该云服务器,建议保持开机状态或者选择“包年/包月”计费模式。 Pi2型云服务器,所在物理机发生故障时,云服务器支持自动恢复。 使用公共镜像创建的Pi2型云服务器,默认已安装Tesla驱动。 使用私有镜像创建的Pi2型云服务器,请确认在制作私有镜像时已安装Tesla驱动。如果未安装,请在云服务器创建完成后安装驱动,以实现计算加速功能。详细操作请参考安装Tesla驱动及CUDA工具包。 GPU型弹性云服务器因通用算力和异构算力差异大,仅支持变更规格至同类型规格内的细分规格。 GPU型弹性云服务器不支持热迁移。
  • 计算加速型P2s 概述 P2s型弹性云服务器采用NVIDIA Tesla V100 GPU,在提供云服务器灵活性的同时,提供高性能计算能力和优秀的性价比。P2s型弹性云服务器能够提供超高的通用计算能力,适用于AI深度学习、科学计算,在深度学习训练、科学计算、计算流体动力学、计算金融、地震分析、分子建模、基因组学等领域都能表现出巨大的计算优势。 规格 表9 P2s型弹性云服务器的规格 规格名称 vCPU 内存 (GiB) 最大带宽/基准带宽(Gbps) 最大收发包能力(万PPS) 网卡多队列数 网卡个数上限 GPU GPU连接技术 显存(GiB) 虚拟化类型 p2s.2xlarge.8 8 64 10/4 50 4 4 1 × V100 PCIe Gen3 1 × 32GiB KVM p2s.4xlarge.8 16 128 15/8 100 8 8 2 × V100 PCIe Gen3 2 × 32GiB KVM p2s.8xlarge.8 32 256 25/15 200 16 8 4 × V100 PCIe Gen3 4 × 32GiB KVM p2s.16xlarge.8 64 512 30/30 400 32 8 8 × V100 PCIe Gen3 8 × 32GiB KVM P2s型弹性云服务器功能如下: 处理器:第二代英特尔® 至强® 可扩展处理器 6278,主频2.6GHz,睿频3.5GHz,或英特尔® 至强® 可扩展处理器 6151,主频3.0GHz,睿频3.4GHz。 支持开启/关闭超线程功能,详细内容请参见开启/关闭超线程。 支持NVIDIA Tesla V100 GPU卡,每台云服务器支持最大8张Tesla V100显卡。 支持NVIDIA CUDA并行计算,支持常见的深度学习框架Tensorflow、Caffe、PyTorch、MXNet等。 单精度能力14 TFLOPS,双精度能力7 TFLOPS。 支持NVIDIA Tensor Core能力,深度学习混合精度运算能力达到112 TFLOPS。 单实例最大网络带宽30Gb/s。 使用32GiB HBM2显存,显存带宽900Gb/s。 完整的基础能力: 网络自定义,自由划分子网、设置网络访问策略。 海量存储,弹性扩容,支持备份与恢复,让数据更加安全。 弹性伸缩,快速增加或减少云服务器数量。 灵活选择: 与普通云服务器一样,P2s型云服务器可以做到分钟级快速发放。 优秀的超算生态: 拥有完善的超算生态环境,用户可以构建灵活弹性、高性能、高性价比的计算平台。大量的HPC应用程序和深度学习框架已经可以运行在P2s实例上。 常规软件支持列表 P2s型云服务器主要用于计算加速场景,例如深度学习训练、推理、科学计算、分子建模、地震分析等场景。应用软件如果使用到GPU的CUDA并行计算能力,可以使用P2s型云服务器。常用的软件支持列表如下: Tensorflow、Caffe、PyTorch、MXNet等常用深度学习框架 RedShift for Autodesk 3dsMax、V-Ray for 3ds Max等支持CUDA的GPU渲染 Agisoft PhotoScan MapD 使用须知 P2s型云服务器,关机后基础资源(包括vCPU、内存、镜像、GPU)不计费,但系统盘仍会收取容量对应的费用。 如有其他绑定的产品,如云硬盘、弹性公网IP、带宽等,按各自产品的计费方法进行收费。 P2s型云服务器,关机后资源会被释放,下次开机时如果后台资源不足,可能会导致云服务器开机失败。如果您需要长期使用该云服务器,建议保持开机状态或者选择“包年/包月”计费模式。 使用公共镜像创建的P2s型云服务器,默认已安装Tesla驱动。 使用私有镜像创建的P2s型云服务器,请确认在制作私有镜像时已安装Tesla驱动。如果未安装,请在创建完成后安装驱动,以实现计算加速功能。详细操作请参考安装Tesla驱动及CUDA工具包。 GPU型弹性云服务器因通用算力和异构算力差异大,仅支持变更规格至同类型规格内的细分规格。 GPU型弹性云服务器不支持热迁移。
共100000条