华为云用户手册

  • 配置示例 域名 www.example.com开启回源跟随,配置如下: 用户请求www.example.com/cdn.jpg文件,未命中缓存,节点回源请求资源。如果源站返回HTTP Response状态码301/302,重定向跳转地址为www.example.com/test/cdn.jpg。 节点收到301/302状态码后,直接向需要跳转的地址发起请求。 节点获取到资源后,返回给用户,并缓存到节点。 如果用户B再请求www.example.com/cdn.jpg文件,直接命中缓存,节点将资源返回给用户。 域名www.example.com未开启回源跟随,配置如下: 用户请求www.example.com/cdn.jpg文件,未命中缓存,节点回源请求资源。如果源站返回HTTP Response状态码301/302,重定向跳转地址为www.example.com/test/cdn.jpg。 节点直接将HTTP Response状态码301/302返回给用户,由客户端向重定向跳转地址发起请求。 如果重定向跳转地址的域名未接入CDN,则节点不能缓存该资源,不会有加速效果。 如果用户B请求www.example.com/cdn.jpg文件,重复以上流程。
  • 背景信息 如果您的源站地址因业务需求做了301/302 重定向,CDN的回源请求会返回301/302状态码,当您开启回源跟随后,CDN节点会先跳转到301/302对应地址获取资源,缓存后再返回给用户。开启或未开启回源跟随CDN的处理如下: 未开启:CDN会将301/302对应跳转地址直接返回给用户,让用户自己去请求跳转地址的资源。如果该跳转地址域名未加入CDN,则该请求过程不会有加速效果。 已开启:CDN会先跳转到301/302对应地址获取用户所需资源后缓存至节点并返回给用户,当其他用户再次请求同样资源时会直接命中节点缓存。
  • 配置示例 示例1:加速域名www.example.com的回源URL改写配置如下图所示。 原始请求:https://www.example.com/test/a.txt 改写后的回源请求:https://www.example.com/test/b.txt 示例2:加速域名www.example.com的回源URL改写配置如下图所示。 原始请求:https://www.example.com/test/aaa/bbb.mp4 改写后的回源请求:https://www.example.com/newtest/aaa/bbb.mp4 示例3:加速域名www.example.com的回源URL改写配置如下图所示。 原始请求:https://www.example.com/test/aaa/bbb.txt 改写后的回源请求:https://www.example.com/new.jpg 示例4:加速域名www.example.com的回源URL改写配置如下图所示。 原始请求:https://www.example.com/123.html?id=3 改写后的回源请求:https://www.example.com/thread0/123.html?id=3
  • 适用场景 状态码缓存时间功能主要适用于源站响应异常状态码的场景。当源站运行正常时,CDN回源请求资源后将按照设置的缓存规则将资源缓存到节点,再次访问相同资源时不会触发回源。当源站响应异常,且不希望所有请求都由源站响应,可以设置状态码缓存时间,减轻源站压力。 典型应用:图片abc.jpg已从源站删除,CDN节点无缓存,且持续有用户在访问该资源,那么所有访问都将会回源,由源站响应4xx状态码,增加源站压力。此时如果在CDN配置4xx状态码缓存时间,用户再次请求资源将直接由CDN节点响应4xx状态码,无需回源。
  • 注意事项 如果加速域名的资源在CDN节点不缓存,即使设置了状态码缓存时间,也无法缓存客户端请求该资源时产生的状态码。 后台有特殊配置的域名暂不支持配置状态码缓存时间。 业务类型为全站加速的域名不支持配置状态码缓存时间。 CDN默认缓存404、500、502、504状态码3s,其他状态码默认不缓存。 是否默认缓存404状态码依赖头域设置,如果带有X-HTTP-Method-Override、X-HTTP-Method、X-Method-Override头域,默认不缓存,反之则缓存3s。 如果域名的某个资源URL参数设置为“忽略参数”,当客户端请求返回的状态码(例如400)被缓存时,在缓存时间内所有该资源的请求均返回该状态码(400),请根据业务情况合理设置状态码缓存时间。 当前支持修改以下状态码的缓存时间: 4XX:400、401、403、404、405、407、414、416、451。 5XX:500、501、502、503、504、509、514。 3XX:301、302。
  • 背景介绍 Etag是URL的Entity Tag,用于标示URL对象是否改变。 域名接入 CDN加速 后,客户端首次访问时CDN节点会回源请求数据返回给用户,同时将资源缓存到CDN节点。在设置的缓存过期时间内,当用户再次请求资源时,CDN会将节点缓存的资源返回给客户端,不需要回源。当CDN节点缓存的资源过期后: 开启“回源是否校验ETag”:客户端再次请求该资源时,CDN会校验ETag值。如果ETag、Last-Modified和Content-Length值都没有变化,CDN将继续返回给用户节点缓存的资源,无需回源,降低回源率,减轻源站压力;如果ETag、Last-Modified和Content-Length其中一个值改变,CDN节点都会回源。 未开启“回源是否校验ETag”:客户端再次请求该资源时,CDN不会校验ETag值。如果Last-Modified和Content-Length的值都没有变化,CDN将继续返回给用户节点缓存的资源;如果Last-Modified和Content-Length其中一个值改变,CDN节点都会回源。
  • 注意事项 CDN默认开启“回源是否校验ETag”。 业务类型为全站加速的域名不支持配置回源是否校验ETag。 如果加速域名开启了Range回源,CDN节点回源时获取到资源不同分片的Last-Modified值不一致,CDN将会判定资源发生变化 ,为避免将错误的资源返回给客户端 ,CDN会中断连接 ,客户端访问也将中断。如果遇到类似问题,请根据业务情况选择以下措施规避: 关闭Range回源。 如果资源存放在不同的源站,请将资源迁移到同一个源站。 回源时不校验Last-Modified的值,如需关闭校验,请提交工单申请。
  • 背景信息 Range信息的作用是在HTTP请求头中指定返回数据的范围,即第一个字节的位置和最后一个字节的位置。如:Range: bytes=0-100就是请求该文件的前101个字节的数据内容。 开启Range回源后,当客户端请求某资源,如果CDN节点上未缓存该资源或资源已过期,节点回源时会采用Range请求,从源站分段获取用户需要的部分资源并缓存到CDN节点上。 Range回源能有效缩短大文件的分发时间,提升回源效率,减少回源消耗。
  • 与其他云服务的关系 若您需要使用 消息通知 、权限管理、音视频文件存储等功能,您还需要开通其它依赖服务,如表1所示。 表1 与其他云服务关系 交互功能 相关服务 位置 在控制台配置消息通知时勾选 SMN 主题 消息通知服务(Simple Message Notification,SMN) 创建主题 添加订阅 设置主题策略 通过 IAM 服务实现管理用户以及用户组 统一身份认证 服务(Identity and Access Management, IAM) 创建用户组并授权 创建IAM用户 使用 对象存储服务 存储并管理音视频文件 对象存储服务(Object Storage Service,OBS) 创建桶 上传文件
  • 给组件绑定JS方法 在页面JS中添加脚本并保存。 function exampleFunction() { // JS逻辑 } 选中画布中已有的组件元素。 在右侧“高级”设置面板中,鼠标移动至添加按钮上,弹出可添加事件的菜单栏(若没有可配置的事件,则菜单栏为空),选择需要绑定的事件。 图2 绑定事件 在事件栏中鼠标移至添加按钮上,弹出菜单栏,选择“自定义JS”。 事件绑定中选择在页面JS中新增的exampleFunction方法(或添加新方法)。 图3 自定义JS 单击“确定”
  • 在生命周期中绑定JS方法 生命周期介绍 这里的生命周期特指Vue的生命周期,Vue的生命周期可以简单分为四个阶段:创建阶段,挂载阶段,运行阶段,销毁阶段。 图5 生命周期介绍 setup:在组件创建时执行。 onBeforeMount:在组件被挂载之前执行。 onMounted:在组件挂载完成后执行。 onBeforeUpdate:在组件更新之前执行。 onUpdated:在组件更新完成后执行。 onBeforeUnmount:在组件被卸载之前执行。 onUnmounted:在组件卸载完成后执行。 onErrorCaptured:在捕获了组件传递的错误时执行。 onActivated:当组件被插入到DOM中激活时执行。 onDeactivated:当组件从DOM中被移除时执行。 生命周期绑定JS脚本 在导航树栏中,右键单击当前页面节点弹出菜单栏,单击“绑定生命周期”,弹出绑定生命周期面板。 图6 绑定生命周期 根据实际需要,编辑JS脚本,单击“确定”保存。
  • 示例5:创建OBS分区表,自定义表的TBLPROPERTIES参数 示例说明:创建名为table3,并以col_3为分区依据的OBS分区表。在TBLPROPERTIES中配置dli.multi.version.enable、comment、orc.compress和auto.purge。 dli.multi.version.enable:本例配置为true,即代表开启 DLI 数据多版本功能,用于表数据的备份与恢复。 comment:表描述信息,comment描述信息支持后续修改。 orc.compress:指定orc存储的压缩方式,本例定义为ZLIB。 auto.purge:本例配置为true,即删除或者覆盖的数据会不经过回收站,直接被删除。 1 2 3 4 5 6 7 8 9 10 11 12 13 CREATE TABLE IF NOT EXISTs table3 ( col_1 STRING, col_2 STRING ) PARTITIONED BY (col_3 DATE) STORED AS rcfile LOCATION 'obs://bucketName/filePath' TBLPROPERTIES ( dli.multi.version.enable = true, comment = 'Created by dli', orc.compress = 'ZLIB', auto.purge = true );
  • 示例6:创建textfile格式的非分区表,并设置ROW FORMAT 示例说明:创建名为table4的textfile类型的非分区表,并设置ROW FORMAT(ROW FORMAT功能只支持textfile类型的表)。 FIELDS:字段表格中的列,每个字段有一个名称和数据类型,表中字段之间以'/'分隔。 COLLECTION ITEMS:集合项指的是一组数据中的元素,可以是数组、列表或集合等,表中集合项以'$'分隔。 MAP KEYS:映射键是一种键值对的数据结构,用于存储一组相关联的数据,表中Map键以'#'分隔。 LINES:表格中的行,每一行包含一组字段值,表中行以'\n'结束(注意,只支持用'\n'作为行分隔符)。 NULL:表示缺少值或未知值的特殊值。在表格中,NULL表示该字段没有值或该值未知。如果数据中存在null值,则用字符串“null”表示。 1 2 3 4 5 6 7 8 9 10 11 12 CREATE TABLE IF NOT EXISTS table4 ( col_1 STRING, col_2 INT ) STORED AS textfile LOCATION 'obs://bucketName/filePath' ROW FORMAT DELIMITED FIELDS TERMINATED BY '/' COLLECTION ITEMS TERMINATED BY '$' MAP KEYS TERMINATED BY '#' LINES TERMINATED BY '\n' NULL DEFINED AS 'null';
  • 示例2:创建OBS分区表 示例说明:创建一个名为student的分区表,该分区表使用院系编号(facultyNo)和班级编号(classNo)进行分区,该student表会同时按照不同的院系编号(facultyNo)和不同的班级编号(classNo)分区。 在实际的使用过程中,您可以选择合适的分区字段并将其添加到PARTITIONED BY关键字后。 1 2 3 4 5 6 7 8 9 10 CREATE TABLE IF NOT EXISTS student( id INT, name STRING ) STORED AS avro LOCATION 'obs://bucketName/filePath' PARTITIONED BY ( facultyNo INT, classNo INT );
  • 示例7:创建表并设置多字符的分割符 示例说明:创建了一个名为table5的Hive表。表指定序列化和反序列化类ROW FORMAT SERDE,字段之间的分隔符被设置为/#,并且数据以文本文件格式存储。 只有指定ROW FORMAT SERDE为org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe时,字段分隔符才支持设置为多字符。 只有Hive OBS表支持在建表时指定多字符的分隔符,Hive DLI表不支持在建表时指定多字符的分隔符。 指定了多字符分隔的表不支持INSERT、IMPORT等写数语句。如需添加数据,请将数据文件直接放到表对应的OBS路径下即可,本例中,将数据文件放到obs://bucketName/filePath下。 本例指定字段分割符 field.delim'为“/#”。 ROW FORMAT功能只支持textfile类型的表。 1 2 3 4 5 6 7 8 9 10 CREATE TABLE IF NOT EXISTS table5 ( col_1 STRING, col_2 INT ) ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe' WITH SERDEPROPERTIES ( 'field.delim' = '/#' ) STORED AS textfile LOCATION 'obs://bucketName/filePath';
  • 示例1:创建OBS非分区表 示例说明:创建名为table1的OBS非分区表,并用STORED AS关键字指定该表的存储格式为orc格式。 在您的实际使用中,可以将OBS表存储为textfile, avro, orc, sequencefile, rcfile, parquet等类型。 1 2 3 4 5 6 CREATE TABLE IF NOT EXISTS table1 ( col_1 STRING, col_2 INT ) STORED AS orc LOCATION 'obs://bucketName/filePath';
  • 关键字 EXTERNAL:指创建OBS表。 IF NOT EXISTS:指定该关键字以避免表已经存在时报错。 COMMENT:字段或表描述。 PARTITIONED BY:指定分区字段。 ROW FORMAT:行数据格式。 STORED AS:指定所存储的文件格式,当前该关键字只支持指定TEXTFILE, AVRO, ORC, SEQUENCEFILE, RCFILE, PARQUET格式。 LOCATION:指定OBS的路径。创建OBS表时必须指定此关键字。 TBLPROPERTIES:TBLPROPERTIES子句允许用户给表添加key/value的属性。 开启数据多版本功能,用于表数据的备份与恢复。开启多版本功能后,在进行删除或修改表数据时(insert overwrite或者truncate操作),系统会自动备份历史表数据并保留一定时间,后续您可以对保留周期内的数据进行快速恢复,避免因误操作而丢失数据。多版本功能SQL语法请参考开启或关闭数据多版本和多版本备份恢复数据。 创建OBS表时,通过指定TBLPROPERTIES ("dli.multi.version.enable"="true")开启DLI数据多版本功能,具体可以参考示例说明。 表1 TBLPROPERTIES主要参数说明 key值 value说明 dli.multi.version.enable true:开启DLI数据多版本功能。 false:关闭DLI数据多版本功能。 comment 表描述信息。 orc.compress orc存储格式表的一个属性,用来指定orc存储的压缩方式。支持取值为: ZLIB SNAPPY NONE auto.purge 当设置为true时,删除或者覆盖的数据会不经过回收站,直接被删除。 AS:使用CTAS创建表。 ROW FORMAT SERDE为org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe时,字段分隔符才支持设置为多字符。使用方法参考示例7:创建表并设置多字符的分割符。
  • 参数说明 表2 参数说明 参数 是否必选 描述 db_name 否 Database名称。 由字母、数字和下划线(_)组成。不能是纯数字,且不能以数字和下划线开头。 table_name 是 Database中的表名。 由字母、数字和下划线(_)组成。不能是纯数字,且不能以数字和下划线开头。匹配规则为:^(?!_)(?![0-9]+$)[A-Za-z0-9_$]*$。 特殊字符需要使用单引号('')包围起来。 表名对大小写不敏感,即不区分大小写。 col_name 是 列字段名称。 列字段由字母、数字和下划线(_)组成。不能是纯数字,且至少包含一个字母。 列名为大小写不敏感,即不区分大小写。 col_type 是 列字段的数据类型。数据类型为原生类型。 请参考原生数据类型。 col_comment 否 列字段描述。仅支持字符串常量。 row_format 是 行数据格式。row_format功能只支持textfile类型的表。 file_format 是 OBS表存储格式,支持TEXTFILE, AVRO, ORC, SEQUENCEFILE, RCFILE, PARQUET table_comment 否 表描述。仅支持字符串常量。 obs_path 是 数据文件所在的OBS存储路径,推荐使用OBS并行文件系统存储。 格式:obs://bucketName/tblPath bucketName即桶名称。 tblPath是目录名称。目录后不需要指定文件名。 当OBS的目录下文件夹与文件同名时,创建OBS表指向的路径会优先指向文件而非文件夹。 key = value 否 设置TBLPROPERTIES具体属性和值。 例如开启DLI数据多版本时,可以设置"dli.multi.version.enable"="true"来开启该功能。 select_statement 否 用于CTAS命令,将源表的select查询结果或某条数据插入到新创建的OBS表中。
  • 语法格式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 CREATE [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name [(col_name1 col_type1 [COMMENT col_comment1], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name2 col_type2, [COMMENT col_comment2], ...)] [ROW FORMAT row_format] [STORED AS file_format] LOCATION 'obs_path' [TBLPROPERTIES (key = value)] [AS select_statement] row_format: : SERDE serde_cls [WITH SERDEPROPERTIES (key1=val1, key2=val2, ...)] | DELIMITED [FIELDS TERMINATED BY char [ESCAPED BY char]] [COLLECTION ITEMS TERMINATED BY char] [MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char] [NULL DEFINED AS char]
  • 注意事项 创建表时会统计大小。 添加数据时不会修改大小。 如需查看表大小可以通过OBS查看。 CTAS建表语句不能指定表的属性。 关于分区表的使用说明: 创建分区表时,PARTITONED BY中指定分区列必须是不在表中的列,且需要指定数据类型。分区列支持string, boolean, tinyint, smallint, short, int, bigint, long, decimal, float, double, date, timestamp等hive开源支持的类型。 支持指定多个分区字段,分区字段只需在PARTITIONED BY关键字后指定,不能像普通字段一样在表名后指定,否则将出错。 单表分区数最多允许200000个。 Spark 3.3及以上版本支持使用Hive语法的CTAS语句创建分区表。 关于创建表时设置多字符的分隔符: 只有指定ROW FORMAT SERDE为org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe时,字段分隔符才支持设置为多字符。 只有Hive OBS表支持在建表时指定多字符的分隔符,Hive DLI表不支持在建表时指定多字符的分隔符。 指定了多字符分隔的表不支持INSERT、IMPORT等写数语句。如需添加数据,请将数据文件直接放到表对应的OBS路径下即可,例如示例7:创建表并设置多字符的分割符中,将数据文件放到obs://bucketName/filePath下。
  • 责任共担 华为云秉承“将公司对网络和业务安全性保障的责任置于公司的商业利益之上”。针对层出不穷的 云安全 挑战和无孔不入的云安全威胁与攻击,华为云在遵从法律法规业界标准的基础上,以安全生态圈为护城河,依托华为独有的软硬件优势,构建面向不同区域和行业的完善云服务安全保障体系。 安全性是华为云与您的共同责任,如图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 区域和可用区 目前,华为云已在全球多个地域开放云服务,您可以根据需求选择适合自己的区域和可用区。更多信息请参见华为云全球站点。
  • 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。
共100000条