华为云用户手册
-
安装虚拟机Agent 登录ServiceStage控制台。 在“环境管理”页面,单击待操作虚拟机类型环境名称。 在“资源”下左侧列表,选择“计算”资源类型下的“弹性云服务器 E CS ”资源名称。 在右侧已纳管的资源列表,找到需要安装Agent的虚拟机,在“Agent 状态”列单击“安装”,弹出Agent安装窗口。 选择“授权模式”。 授权Agent可以使用您的身份认证信息,获取应用的部署、升级、启动、停止等任务,并执行任务。 您可以选择“委托授权”、“AK/SK”模式进行授权,推荐使用“委托授权”。 “授权模式”选择“委托授权”: 单击,选择已经创建的委托后单击。 新创建委托,请参考 如何创建委托?。 创建委托时,您需要委托op_svc_ecs账号或者ECS云服务,并且在相应的区域选择Tenant Administrator策略。 如果需要使用OBS存储,则还需要在委托授权时添加OBS Administrator策略。 “授权模式”选择“AK/SK”: 安全起见,请获取并使用具有“ServiceStage Development”权限的AK、SK。AK、SK所属账号需和安装虚拟机Agent时使用的账号在同一个用户下。 AK、SK获取请参考访问密钥。 单击“复制命令”,复制窗口下方自动生成的命令,即为Agent安装命令。 “委托授权”模式,命令示例如下: export AGENT_INSTALL_URL=https://${Region_Name}-servicestage-vmapp.obs.${Region_Name}.${Domain_Name}/vmapp/agent/agent-install.sh;if [ -f `which curl` ];then curl -# -O -k ${AGENT_INSTALL_URL};else wget --no-check-certificate ${AGENT_INSTALL_URL};fi;bash agent-install.sh ${Project_ID} ${Version} ${Region_Name} ${Flag} “AK/SK”模式,命令示例如下: export AGENT_INSTALL_URL=https://${Region_Name}-servicestage-vmapp.obs.${Region_Name}.${Domain_Name}/vmapp/agent/agent-install.sh;if [ -f `which curl` ];then curl -# -O -k ${AGENT_INSTALL_URL};else wget --no-check-certificate ${AGENT_INSTALL_URL};fi;bash agent-install.sh ${AK}${SK} ${Project_ID} ${Version} ${Region_Name} ${Flag} AGENT_INSTALL_URL为Agent安装地址。 Region为华北-北京一时,AGENT_INSTALL_URL=https://servicestage-vmapp.obs.cn-north-1.myhwcloud.com/vmapp/agent/agent-install.sh。 如果使用“委托授权”模式,ECS节点有权获取用户的临时AK/SK,命令中不需要输入AK/SK。 ${AK}、${SK}为访问密钥。 ${Region_Name}为区 域名 称。 ${Domain_Name}为全局域名。 ${Project_ID}为项目ID,如何获取项目ID请参考如何获取项目ID?。 ${Version}为版本号,使用latest,自动去下载最新版本。 ${Flag}为布尔值,表示是否自动添加应用访问端口。true表示是;false表示否。 参照界面提示登录虚拟机,执行安装命令。 虚拟机Agent安装成功后,在安装Agent的虚拟机上生成如下目录: /opt/application:使用虚拟机部署方式部署组件的业务、配置文件所在目录。请勿对该目录执行增、删、改操作,否则可能会导致已安装的虚拟机Agent离线。 /opt/servicestage-agent:安装的虚拟机Agent的配置文件所在目录。请勿对该目录执行增、删、改操作,否则可能会导致已安装的虚拟机Agent离线。 /var/log/servicestage-agent:安装的虚拟机Agent的日志目录,存储了agent日志agent.log、监控脚本日志servicestage-agent-watchdog.log。请勿对该目录执行删、改操作,否则可能会导致已安装的虚拟机Agent离线。 /var/log/application:组件日志相关目录。请勿对该目录执行删、改操作,否则可能会导致已安装的虚拟机Agent离线。 /opt/ssa/packages:虚拟机部署方式部署组件业务包的临时存放目录。请勿对该目录执行删、改操作,否则可能会导致已安装的虚拟机Agent离线。 如果虚拟机Agent安装失败,请参考如何处理虚拟机Agent安装成功但是界面仍然显示缺少Agent?处理。
-
修改环境 登录ServiceStage控制台。 在“环境管理”页面,以如下任意方式进入“编辑环境”页面: 选择待操作环境,在“操作”列单击“编辑”。 单击待操作环境名称,进入环境详情页面,单击“编辑”。 参考下表编辑环境信息。 参数 参数说明 环境名称 环境的名称。 长度为2到64个字符,可以包含英文字母、数字、下划线(_)或中划线(-),以英文字母开头、英文字母或者数字结尾,英文字母不区分大小写。 企业项目 企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理。 已开通企业项目后可以使用。 描述 环境描述信息。 单击,输入长度不超过128个字符的环境描述信息。 单击,保存描述。 标签 说明: “华东-上海一”、“华东二”区域支持设置“标签”参数。 标签用于标识资源,当您拥有相同类型的许多资源时,可以使用标签按各种维度(例如用途、所有者或环境)对资源进行分类。 如果您的组织已经设定ServiceStage服务的相关标签策略,则需按照标签策略规则添加标签。标签如果不符合标签策略的规则,则可能会导致编辑环境失败,请联系组织管理员了解标签策略详情。 同一个环境下最多可以添加20个标签。 删除标签 单击待删除标签后的。 新增标签 单击“添加标签”,弹出“添加标签”对话框。 单击“新增标签”。 输入标签对应的key值和value值。 key值:长度为1到36个字符,只能包含数字、英文字母、下划线(_)、中划线(-)或中文。 value值:长度为2到43个字符,只能包含数字、英文字母、下划线(_)、点(.)、中划线(-)或中文。 如果您需要使用同一标签标识多种资源,即所有资源均可在标签输入框下拉选择同一标签,建议在TMS中创建预定义标签。 单击“确定”。 图1 编辑环境信息 单击“保存”,完成环境修改。
-
移除已纳管基础资源 登录ServiceStage控制台。 在“环境管理”页面,单击待操作环境名称。 在“资源”下左侧列表,选择“计算”、“网络”或“中间件”资源类型下的资源名称。 在右侧已纳管的资源列表中: 批量移除资源:勾选待移除的资源,单击“移除资源”。 移除单个资源:在待移除的资源“操作”列,单击“移除”。 资源被移除后,并不会删除资源实例。如需删除,您需要登录对应资源的控制台执行删除操作。
-
前提条件 根据实际需要创建需纳管的基础资源: 已创建环境待纳管的状态为运行中的弹性 云服务器ECS ,ECS和环境所在的VPC需要一致,且不能被其他环境纳管。 弹性云服务器ECS用于“虚拟机”类型环境下部署和运行组件。创建弹性云服务器ECS,请参考自定义购买ECS。 已创建环境待纳管的弹性伸缩组AS,AS和环境所在的VPC需要一致,且不能被其他环境纳管。且AS中已包含弹性云服务器。 弹性伸缩组AS用于“虚拟机”类型环境下部署和运行组件。创建弹性伸缩组AS,请参考创建伸缩组。 已创建环境待纳管的弹性负载均衡ELB,ELB和环境所在的VPC需要一致。 弹性负载均衡ELB用于通过ELB方式访问组件提供的服务或者进行组件ELB灰度发布。请参考下表根据实际应用场景创建弹性负载均衡ELB。 使用场景 参考章节 使用域名访问应用 购买共享型负载均衡器 参考购买独享型负载均衡器创建“规格”为“应用型”的ELB ELB灰度发布 参考购买独享型负载均衡器创建“规格”为“应用型”的ELB 已创建环境待纳管的弹性公网IP。 弹性公网IP用于通过弹性IP公网访问方式访问组件提供的服务。创建弹性公网IP,请参考申请弹性公网IP。 已创建环境待纳管的分布式缓存DCS,DCS和环境所在的VPC需要一致。 分布式缓存DCS用于在应用运行时读取环境变量来获取分布式缓存的相关信息。创建分布式缓存DCS,请参考购买Redis实例。 已创建环境待纳管的MySQL数据库引擎的云数据库RDS实例,RDS和环境所在的VPC需要一致。 云数据库RDS用于应用数据持久化存储。创建云数据库RDS,请参考步骤一:购买实例。 已创建环境待纳管的ServiceComb引擎(即微服务引擎,请参见微服务引擎概述),如果微服务引擎与环境所在VPC不一致,需正确配置VPC连通。 微服务引擎用于将运行在环境下的微服务接入引擎,实现微服务注册发现、服务治理和配置管理。创建微服务引擎,请参考创建微服务引擎。 已创建环境待纳管的Nacos引擎。如果Nacos引擎与环境所在VPC不一致,需正确配置VPC连通。 Nacos引擎即注册配置中心,用于将运行在环境下的微服务接入引擎,实现微服务注册发现和配置管理。创建Nacos引擎,请参考创建注册配置中心。 仅“亚太-新加坡”区域支持纳管Nacos引擎。
-
纳管基础资源 登录ServiceStage控制台。 在“环境管理”页面,单击待操作环境名称。 在“资源”下左侧列表,参考下表纳管需要纳管到环境下的资源。 资源类型 资源名称 操作方法 计算 云容器引擎 CCE 请参考绑定CCE集群。 Kubernetes类型的环境支持绑定CCE集群资源。如需管理环境下的CCE集群资源,请参考管理CCE资源。 弹性云服务器 ECS 选择“计算”资源下的“弹性云服务器 ECS”。 单击“纳管资源”。 勾选待纳管的ECS资源。 单击“确定”。 说明: 虚拟机类型的环境支持纳管ECS资源。 同一VPC下,已被其他环境纳管的ECS资源,不支持被再次纳管。 如果纳管的ECS资源Agent状态为“缺少Agent,请先安装”,请参考安装虚拟机Agent完成Agent安装。 弹性伸缩组 AS 选择“计算”资源下的“弹性伸缩组 AS”。 单击“纳管资源”。 勾选待纳管的AS资源。 单击“确定”。 说明: 虚拟机类型的环境支持纳管AS资源。 同一VPC下,已被其他环境纳管的AS资源,不支持被再次纳管。 如果纳管的AS资源下选择的ECS Agent状态为“缺少Agent,请先安装”,请参考安装虚拟机Agent完成Agent安装。 网络 弹性负载均衡 ELB 选择“网络”资源下的“弹性负载均衡 ELB”。 单击“纳管资源”。 勾选待纳管的ELB资源。 单击“确定”。 弹性公网 EIP 选择“网络”资源下的“弹性公网 EIP”。 单击“纳管资源”。 勾选待纳管的EIP资源。 单击“确定”。 中间件 分布式缓存 DCS 选择“中间件”资源下的“分布式缓存 DCS”。 单击“纳管资源”。 勾选待纳管的DCS资源。 单击“确定”。 ServiceComb引擎 选择“中间件”资源下的“ServiceComb引擎”。 单击“纳管资源”。 选择待纳管的ServiceComb资源。 单击“确定”。 云数据库 RDS 选择“中间件”资源下的“云数据库 RDS”。 单击“纳管资源”。 勾选待纳管的RDS资源。 单击“确定”。
-
Secret资源文件配置说明 本内容主要介绍Secret类型的资源描述文件的配置示例。例如现在有一个应用需要获取账号密码,可以通过Secret来实现: username: my-username password: my-password 定义的Secret文件内容如下。其中值需要用Base64进行编码,Base64编码方法请参考Base64编码。 apiVersion: v1 kind: Secret metadata: name: mysecret # secret的名称 namespace: default #命名空间,默认为default data: username: ****** #username的值需要用Base64编码 password: ****** #password的值需要用Base64编码 type: Opaque # type建议不要做修改
-
后续操作 密钥创建完成后,您可参考表2查找、查看、更新和删除密钥。 删除操作无法恢复,请谨慎操作。 密钥列表中包含系统密钥资源,系统密钥资源不可更新和删除,只能查看。 表2 密钥管理操作说明 操作项 操作说明 查找密钥 在命名空间下拉列表选择密钥所在命名空间。 在搜索框输入密钥名称。 查看密钥 单击目标密钥“操作”列的“查看YAML”,查看配置项YAML格式文件内容。 更新密钥 单击目标密钥“操作”列的“更新”。 根据表1更改信息。 单击“更新密钥”。 删除单个密钥 单击目标密钥“操作”列的“删除”。 在弹出的对话框,单击“确定”。 批量删除密钥 勾选需要删除的密钥。 单击“删除密钥”。 在弹出的对话框,单击“确定”。
-
创建密钥 登录ServiceStage控制台。 在“环境管理”页面,单击待操作环境名称。 在“资源”下左侧列表,选择“计算”资源类型下的资源名称“云容器引擎 CCE”。 选择“密钥”页签,单击“创建密钥”。 ServiceStage支持“可视化”和“YAML”两种方式来创建密钥。 方式一:可视化。参照表1设置参数,其中带“*”标志的参数为必填参数。 表1 可视化方式创建密钥参数设置说明 参数 参数说明 *密钥名称 新建密钥的名称,同一个命名空间内必须唯一。 长度为4到24个字符,可以包含英文小写字母、数字或中划线(-),以英文小写字母开头、英文小写字母或者数字结尾。 *所属集群 使用新建密钥的集群。 单击“创建集群”,可以新建CCE集群。创建CCE集群,请参考购买集群。您可以根据您的实际业务需要选择创建 CCE Turbo 集群或者CCE Standard集群。 *命名空间 新建密钥所在的命名空间。 单击“创建命名空间”,可以参考创建命名空间为密钥创建新的所属命名空间。 描述 密钥的描述信息,长度为0到255个字符。 *密钥类型 根据业务需要选择新建的密钥类型。 Opaque:一般密钥类型。当密钥配置文件中未作显式设定时,默认的密钥类型是Opaque。 kubernetes.io/dockerconfigjson:存放拉取私有仓库镜像所需的认证信息。 IngressTLS:存放7层负载均衡服务所需的证书。 其他:若需要创建其他类型的密钥,请手动输入密钥类型,长度为4到24个字符。 *镜像仓库地址 当“密钥类型”选择kubernetes.io/dockerconfigjson时有效,输入镜像仓库的地址。 *密钥数据 应用密钥的文件data字段值。 当密钥为Opaque类型时,输入“键”、“值”。 密钥数据的键必须由数字、字母、点号(.)、中划线(-)或下划线(_)组成,长度为1到63个字符。 密钥数据的值必须为使用Base64编码后的长度为1到1,048,576位的字符,Base64编码方法请参考Base64编码。 单击“添加更多配置数据”,可以增加密钥数据。 当密钥为kubernetes.io/dockerconfigjson类型时,输入“用户名”和“密码”。 当密钥为IngressTLS类型时,单击“上传文件”,上传“证书文件”和“私钥文件”。 证书文件小于1MB,格式为.crt或.cer。私钥文件小于1MB,格式为.key或.pem。 当密钥为其他类型时,输入对应的“键”、“值”。 密钥数据的键必须由数字、字母、点号(.)、中划线(-)或下划线(_)组成,长度为1到63个字符。 密钥数据的值必须为使用Base64编码后的长度为1到1,048,576位的字符,Base64编码方法请参考Base64编码。 单击“添加更多配置数据”,可以增加密钥数据。 密钥标签 标签以Key/value键值对的形式附加到各种对象上(如应用、节点、服务等)。 标签定义了这些对象的可识别属性,用来对它们进行管理和选择。 单击“添加标签” 。 输入键、值。 标签的键由数字、字母、点号(.)、中划线(-)、下划线(_)或斜杠(/)组成,必须以字母或者数字开头和结尾,长度为1到63个字符。 标签的值由数字、字母、点号(.)、中划线(-)或下划线(_)组成,必须以字母或者数字开头和结尾,长度为1到63个字符。 图1 可视化方式设置密钥参数 方式二:YAML。 若需要通过上传文件的方式创建密钥,请确保已创建YAML格式的Secret资源文件,且文件小于1MB。详情请参考Secret资源文件配置说明。 在“所属集群”下拉框中,选择相应的集群。 选择以下任一方式设置ConfigMap资源文件。 单击“上传文件”,选择已创建的Secret资源文件后,单击“打开”,等待文件上传完成。 在“编排内容”中写作或者修改上传的Secret资源文件。 图2 YAML方式设置密钥参数 单击“创建密钥”。 密钥列表中会出现新创建的密钥。
-
ConfigMap资源文件要求 ConfigMap资源文件支持YAML文件格式,且文件大小不得超过1MB。 文件配置示例如下: apiVersion: v1 data: {} kind: ConfigMap metadata: annotations: description: '' labels: {} name: configmap-ww8qkl namespace: cse
-
创建配置项 登录ServiceStage控制台。 在“环境管理”页面,单击待操作环境名称。 在“资源”下左侧列表,选择“计算”资源类型下的资源名称“云容器引擎 CCE”。 选择“配置项”页签,单击“创建配置项”。 ServiceStage支持“可视化”和“YAML”两种创建方式来创建配置项。 方式一:可视化。 参照表1设置配置项参数,其中带“*”标志的参数为必填参数。 表1 可视化方式创建配置项参数设置说明 参数 说明 *配置名称 新建的配置项名称,同一个命名空间里必须唯一。 长度为4到24个字符,可以包含英文小写字母、数字或中划线(-),以英文小写字母开头、英文小写字母或者数字结尾。 *所属集群 使用新建配置项的集群。 *命名空间 新建配置项所在的命名空间。 描述 配置项的描述信息,长度范围为0到255个字符。 配置数据 应用配置的数据可以在应用中使用,或被用来存储配置数据。其中,“键”代表文件名;“值”代表文件中的内容。 单击“添加更多配置数据”。 输入键、值。 配置数据的键必须由数字、字母、点号(.)、中划线(-)或下划线(_)组成,长度为1到63个字符。 配置数据的值长度为0到1,048,576个字符。 配置标签 标签以键值对的形式附加到各种对象上(如应用、节点、服务等)。标签定义了这些对象的可识别属性,用来对它们进行管理和选择。 单击“添加标签” 。 输入键、值。 标签的键由数字、字母、点号(.)、中划线(-)、下划线(_)或斜杠(/)组成,必须以字母或者数字开头和结尾,长度为1到63个字符。 标签的值由数字、字母、点号(.)、中划线(-)或下划线(_)组成,必须以字母或者数字开头和结尾,长度为1到63个字符。 图1 可视化方式设置配置项参数 方式二:YAML。 若需要通过上传文件的方式创建配置项,请确保已创建格式为YAML的ConfigMap资源文件,且文件小于1MB。详情请参考ConfigMap资源文件要求。 在“所属集群”下拉框中,选择相应的集群。 选择以下任一方式设置ConfigMap资源文件。 单击“上传文件”,选择本地已创建的ConfigMap资源文件后,单击“打开”,等待文件上传成功。 在“编排内容”中写作或者修改ConfigMap资源文件。 图2 YAML方式设置配置项参数 单击“创建配置项”。 配置项创建完成后,应用配置列表中会出现新创建的应用配置。
-
后续操作 配置项创建完成后,您可参考表2查找、查看、更新和删除配置项。 删除操作无法恢复,请谨慎操作。 配置项列表中包含系统配置项资源,系统配置项资源不可更新,也不能删除,只能查看。 表2 配置项管理操作说明 操作项 操作说明 查找配置项 在命名空间下拉列表选择配置项所在命名空间。 在搜索框输入配置项名称。 查看配置项 单击目标配置项“操作”列的“查看YAML”,查看配置项YAML格式文件内容。 更新配置项 单击目标配置项“操作”列的“更新”。 根据表1更改信息。 单击“更新配置项”。 删除单个配置项 单击目标配置项“操作”列的“删除”。 在弹出的对话框,单击“确定”。 批量删除配置项 勾选需要删除的配置项。 单击“删除配置项”。 在弹出的对话框,单击“确定”。
-
绑定CCE集群 登录ServiceStage控制台。 在“环境管理”页面,单击待操作环境名称。 在“资源”下左侧列表,选择“计算”资源类型下的资源名称“云容器引擎 CCE”。 单击“立即绑定”。 已创建CCE集群,在集群下拉列表选择待绑定的CCE集群,单击“确定”。 未创建CCE集群,请根据页面提示前往CCE控制台,参考前提条件创建CCE集群后再次执行绑定操作。 “Kubernetes”类型的环境,如果选择的VPC开启了IPv6且纳管了CCE集群资源时,需选择开启了IPv6开关的CCE集群资源。否则,会导致在该VPC下的开启了安全认证的微服务引擎专享版上注册的Java Chassis微服务在使用IPv6服务注册发现地址时,注册失败。 处理方法,请参考如何处理开启了安全认证的微服务引擎专享版开启IPv6后服务注册失败?。
-
前提条件 已创建1个环境待绑定的状态为运行中的CCE集群。集群和环境所在的VPC需要一致,且不能被其他环境纳管。CCE集群用于“Kubernetes”类型环境下部署和运行组件。 创建CCE集群,请参考购买集群。您可以根据您的实际业务需要选择创建CCE Turbo集群或者CCE Standard集群。 如果您创建的是CCE Turbo集群,需要为集群配置SNAT规则,使之能够通过NAT网关访问公网用于拉取源码。否则,会导致使用源码通过容器部署方式部署组件或执行源码构建任务的时候因为无法访问公网导致拉取源码失败,从而导致组件部署或构建失败。为集群配置SNAT规则,请参考从容器访问公网。 为CCE集群添加节点,请参考创建节点。 ServiceStage支持使用CCE集群下“弹性云服务器-虚拟机”、“裸金属服务器”类型的节点。 CCE集群节点支持的操作系统,请参考节点操作系统。 CCE集群节点容器引擎当前支持Docker和Containerd。节点操作系统和容器引擎的对应关系,请参考容器引擎。 已创建Kubernetes类型的环境,请参考创建环境。
-
环境概述 环境是用于组件部署和运行的计算(如云容器引擎 CCE、弹性云服务器 ECS等)、网络(如弹性负载均衡 ELB、弹性IP EIP等)和中间件(如分布式缓存 DCS、云数据库 RDS等)等基础资源的集合。ServiceStage把多种基础资源组合为一个环境,如:开发环境、测试环境、预生产环境和生产环境。按环境维度来管理资源、部署组件,可以减少具体基础资源运维管理的复杂性。 关于组件,请参考组件概述。 ServiceStage支持您使用的环境类型如表1所示。 表1 ServiceStage环境类型说明 环境类型 说明 虚拟机 适用于虚拟机部署方式,组件以软件包方式部署在虚拟机中。 Kubernetes 适用于容器部署方式(云容器引擎部署),组件以容器镜像方式通过Kubernetes调度部署。 虚拟机+Kubernetes 之前版本的环境纳管了CCE集群和虚拟机资源,升级到当前版本后,该环境的类型为“虚拟机+Kubernetes”。 组件部署方式,请参考组件部署方式说明。 同一个项目下,最多支持创建300个环境。 父主题: 环境管理
-
自定义策略样例 如下以定制一个 IAM 用户禁止创建及删除微服务引擎的策略为例。 { "Version": "1.1", "Statement": [ { "Action": [ "cse:*:*" ], "Effect": "Allow" }, { "Action": [ "cse:engine:create", "cse:engine:delete" ], "Effect": "Deny" } ] } 拒绝策略需要同时配合其他策略使用,否则没有实际作用。IAM用户被授予的策略中,一个授权项的作用如果同时存在Allow和Deny,则遵循Deny优先原则。 权限授予成功后,您可以使用IAM用户通过控制台以及REST API等多种方式验证。 此处以上述自定义策略为例,介绍如何通过登录ServiceStage控制台验证自定义禁止创建微服务引擎的权限: 使用新创建的用户登录华为云,登录方法选择为“IAM用户”。 租户名为该IAM用户所属华为云账号的名称。 IAM用户名和IAM用户密码为以租户名在IAM创建用户时输入的用户名和密码。 在“微服务引擎”页面,创建微服务引擎,返回403错误,表示权限配置正确并已生效。
-
示例流程 图1 给用户授权ServiceStage权限流程 创建用户组并授权 在IAM控制台创建用户组,并授予ServiceStage服务“ServiceStage ReadOnlyAccess”权限。 创建用户并加入用户组 在IAM控制台创建用户,并将其加入1中创建的用户组。 用户登录并验证权限 新创建的用户登录控制台,验证ServiceStage的只读权限: 在“服务列表”中选择“应用管理与运维平台 ServiceStage”。 进入“应用管理”页面,单击“创建应用”。 若提示权限不足,表示“ServiceStage ReadOnlyAccess”已生效。
-
使用说明 通过ServiceStage创建、部署应用组件以及如何进行应用运维、服务治理的使用说明,如图1所示。 图1 ServiceStage使用说明 在使用ServiceStage之前,您需要先注册华为云账号并授予使用ServiceStage的权限,请参考使用条件。 在使用ServiceStage创建、部署应用组件之前,您需要先完成应用开发。开发微服务应用,请参考ServiceStage开发指南。 在使用ServiceStage前,您需要先登录ServiceStage控制台,请参考登录ServiceStage控制台。 了解ServiceStage控制台,请参考控制台说明。 了解ServiceStage的版本信息,请参考产品版本说明。 如需购买ServiceStage资源包,请参考购买资源包。 如需升级ServiceStage的版本,请参考升级产品版本。 使用ServiceStage提供的工程构建、发布等功能实现应用的持续集成,请参考持续交付。 使用ServiceStage创建环境、应用并部署组件,实现应用的托管和生命周期管理,请参考: 环境管理 应用管理 组件管理
-
购买资源包 资源包适用于可预估资源使用周期的场景,价格比按需计费模式更优惠。 进入购买应用管理与运维平台套餐页面。 选择“区域”、“资源包版本”、“应用实例数”和“购买时长”。 单击“立即购买”。 确认订单正确无误后,单击“去支付”,完成支付。 购买资源包的操作,只有“账号”管理员才能操作,“IAM用户”无权操作。 关于“账号”及“IAM用户”的概念解释,请参见IAM的基本概念章节。 如果购买了专业版或铂金版资源包,会赠送1个微服务引擎专享版引擎,可以进入“微服务引擎”界面,创建免费引擎,参数配置请参考创建微服务引擎。 可以多次购买资源包,但是购买时长不能叠加,到期时间为所有资源包的最晚到期时间。 在“费用中心”的“资源包”页面,可以查看已购买资源包情况。
-
操作步骤 登录ServiceStage控制台。 单击“应用管理”,进入应用列表。 单击创建应用时创建的应用名称(例如:test-app)“操作”栏的“新增组件”。 在“基本信息”区域,参考下表设置必填组件基本信息,其余参数保持默认。 参数名称 参数说明 组件名称 填写组件的名称。 建议组件名称可以区分其所在环境下绑定的CCE集群的可用区信息(例如:test-comp-az1)。 组件版本 单击“自动生成”。 所属环境 选择创建环境时创建的环境(例如:env-cce-az1)。 所属应用 选择创建应用时创建的应用(例如:test-app)。 在“组件包”区域,参考下表设置必填组件包参数,其余参数保持默认。 参数名称 参数说明 技术栈 组件技术栈类型选择Java。 上传方式 选择“OBS对象存储”。 单击“选择软件包”,选择上传软件包时已上传的weather-1.0.0.jar软件包。 在“构建”区域,参考下表设置必填构建参数,其余参数保持默认。 参数名称 参数说明 组织 选择创建组织时创建的组织名称。 组织用于管理组件构建生成的镜像。 构建环境 选择“使用当前环境构建”,使用组件所属的部署环境中的CCE集群进行镜像构建。 单击“下一步”。 单击“创建并部署”,等待组件创建成功。
-
资源准备 创建一个 虚拟私有云VPC ,请参考创建虚拟私有云和子网。 创建两个处于不同可用区(例如:az1、az2)的CCE集群(例如:cce-az1、cce-az2)。如果只是试用场景,“集群规模”选择“50节点”,“集群master实例数”选择“单实例”即可。 请参考购买集群。 每个集群中至少包含1个规格为8vCPUs、16GB内存或者2个规格为4vCPUs、8GB内存的ECS节点。 为CCE集群添加节点,请参考考创建节点。 集群所在VPC为1创建的VPC。 创建集群时,需在“集群master实例数”下选择“指定集群master实例分布策略”,选择“自定义分配”将两个集群的master节点分配到不同的可用区。 集群中的ECS节点的可用区需要和其所在CCE集群master节点的可用区保持一致。 创建用于存储软件包的桶,请参考创建桶。
-
实践概述 在实际业务中,考虑到机房故障问题,需要将服务部署在不同的可用区中以提高可用性。 但是,在不同可用区部署组件时每个组件都必须按需配置一遍,存在操作复杂、容易出错的问题。而且需要在组件创建完成后立即部署运行,并不支持创建后按需部署的需求。如果组件配置错误,会导致部署失败,需要删除后重新创建并部署。 使用ServiceStage的发布管理功能可以更好的实施组件跨可用区搬迁和顺序升级: 基于ServiceStage发布管理的批量克隆发布单实现组件的跨可用区搬迁。 基于ServiceStage发布管理的批量升级发布单实现组件跨可用区的升级,并指定在不同可用区组件的升级顺序。 父主题: 使用ServiceStage基于发布管理实现组件跨可用区搬迁和顺序升级
-
ServiceStage最佳实践汇总 本文汇总了基于应用管理与运维平台(ServiceStage)常见应用场景的操作实践,为每个实践提供详细的方案描述和操作指导,帮助您轻松掌握不同应用场景下ServiceStage的使用方法。 表1 ServiceStage最佳实践一览表 最佳实践 说明 使用ServiceStage托管和治理天气预报微服务应用 通过天气预报应用,展示了微服务架构设计理念的应用场景,以及使用ServiceStage管理运行环境、构建应用和治理微服务的最佳实践。 开启ServiceComb引擎专享版安全认证 ServiceComb引擎专享版支持基于RBAC(Role-Based Access Control,基于角色的访问控制)策略的安全认证,并支持开启/关闭安全认证。 引擎开启了安全认证之后,要求所有连接该引擎的微服务都要配置安全认证账号和密码。否则,微服务将注册失败,导致业务受损。 本章节介绍未开启安全认证的ServiceComb引擎专享版,开启安全认证并确保已接入引擎的微服务组件业务不受影响,即如何平滑开启安全认证。 ServiceComb引擎仪表盘中的数据通过ServiceStage对接到 AOM 接入ServiceComb引擎的Java Chassis应用,在ServiceComb引擎仪表盘上的实时监控数据默认保留5分钟。如果需要持久化存储历史监控数据用于后续查询分析,可以使用ServiceStage的自定义指标监控功能,将微服务显示到ServiceComb引擎仪表盘中的数据对接到AOM。 本章节以软件包部署应用为例,指导您完成将ServiceComb引擎仪表盘中的数据通过ServiceStage对接到AOM。 使用ServiceStage零代码修改实现微服务注册引擎迁移 本章节指导您将使用Java Chassis微服务框架开发并注册在ServiceComb引擎专业版上的微服务应用组件,零代码修改迁移注册到ServiceComb引擎专享版。 使用ServiceStage托管Spring Boot应用 Spring Boot是一个基于Spring框架的开源应用程序开发框架,可以帮助您快速构建可独立运行的、生产级别的应用程序。 本最佳实践使用Spring官方提供的样例代码,帮助您快速在ServiceStage上快速部署、访问和升级Spring应用。 使用GitLab对接Jenkins自动构建并升级部署到ServiceStage的组件 代码开发完成后,每次上线前都需要先在Jenkins上打包成镜像包或Jar包,再将镜像包上传到SWR镜像仓库或者将Jar包上传到OBS对象存储,然后再使用ServiceStage升级组件版本配置。该流程较为繁琐,频繁发版本测试导致开发和运维效率低、用户体验差。 如果您的代码在GitLab上管理,使用ServiceStage进行应用托管并且已经部署了组件,则可以通过使用GitLab对接Jenkins自动构建打包,升级已经部署在ServiceStage上的组件版本配置。 本实践通过输出在Jenkins构建打包完成之后自动升级组件的shell脚本,实现了代码合入后自动构建打包并在ServiceStage上升级部署。 使用ServiceStage全链路流量控制实现Spring Cloud应用全链路灰度 在一个存在多个微服务组件的应用体系中,对其中一个微服务组件进行版本升级发布时,会涉及到其他微服务组件版本的变动升级。所以要求在灰度验证时能够使得灰度流量同时经过涉及到的所有微服务组件灰度版本。 但是在真实业务场景中,由于业务的微服务组件规模和数量很大,一条请求链路可能会经过很多个微服务组件。新功能发布时也可能会涉及到多个微服务组件同时变更,并且业务的微服务组件之间依赖错综复杂。频繁的组件版本发布、以及组件多版本并行开发导致流量治理规则日益膨胀,给整个系统的可维护性和稳定性带来了严重挑战。 对于以上问题和挑战,通过全链路流量控制功能将应用组件的相关版本隔离成一个独立的运行环境(即泳道),通过设置流控路由规则,可以将满足规则的请求流量路由到目标版本应用。 使用ServiceStage基于发布管理实现组件跨可用区搬迁和顺序升级 在实际业务中,考虑到机房故障问题,需要将服务部署在不同的可用区中以提高可用性。 但是,在不同可用区部署组件时每个组件都必须按需配置一遍,存在操作复杂、容易出错的问题。而且需要在组件创建完成后立即部署运行,并不支持创建后按需部署的需求。如果组件配置错误,会导致部署失败,需要删除后重新创建并部署。 使用ServiceStage的发布管理功能可以更好的实施组件跨可用区搬迁和顺序升级: 基于ServiceStage发布管理的批量克隆发布单实现组件的跨可用区搬迁。 基于ServiceStage发布管理的批量升级发布单实现组件跨可用区的升级,并指定在不同可用区组件的升级顺序。
-
访问基线泳道实例 打开cmd命令,执行以下命令访问基线泳道unit-controller组件提供的服务: curl http://${网关访问地址}/unit-controller/hello 网关访问地址取值,请参考查看应用网关信息。 执行结果示例如下: { "unit-consumer": { "SERVICECOMB_INSTANCE_PROPS": "cas_lane_tag:base,affinity-tag:base","ip":"x.x.x.x" }, "unit-provider": { "SERVICECOMB_INSTANCE_PROPS": "cas_lane_tag:base,affinity-tag:base","ip":"x.x.x.x" }, "unit-controller": { "SERVICECOMB_INSTANCE_PROPS": "cas_lane_tag:base,affinity-tag:base","ip":"x.x.x.x" } } 全部流量路由方向为从基线泳道(base)的unit-controller实例流向unit-consumer实例,再流向unit-provider实例。
-
访问灰度泳道实例 打开cmd命令,执行以下命令访问灰度泳道unit-controller组件提供的服务: curl -H "type:gray" http://${网关访问地址}/unit-controller/hello 网关访问地址取值,请参考查看应用网关信息。 执行结果示例如下: { "unit-consumer": { "SERVICECOMB_INSTANCE_PROPS": "cas_lane_tag:base,affinity-tag:base","ip":"x.x.x.x" }, "unit-provider": { "SERVICECOMB_INSTANCE_PROPS": "cas_lane_tag:gray,affinity-tag:gray","ip":"x.x.x.x" }, "unit-controller": { "SERVICECOMB_INSTANCE_PROPS": "cas_lane_tag:gray,affinity-tag:gray","ip":"x.x.x.x" } } 全部流量路由方向为从灰度泳道(gray)的unit-controller实例流向基线泳道(base)的unit-consumer实例,再流向灰度泳道(gray)的unit-provider实例。
-
操作步骤 登录ServiceStage控制台。 单击“全链路流量控制”。 单击待操作灰度泳道所在泳道组名称(例如:lane-test),进入“全链路流量控制”页面。 单击泳道组当前关联的流量入口网关卡片上的“网关路由配置”。 “配置方式”选择“基于内容配置”。 单击以对应灰度泳道名称命名的页签(例如:gray),进入为指定灰度泳道配置网关路由页面。 单击“新增匹配规则”,参考下表设置路由匹配规则。 参数名称 参数说明 匹配类型 支持的路由规则匹配类型。 当前仅支持基于“请求头”类型的匹配。 参数名称 “匹配类型”对应的key值,设置为:type。 条件类型 “条件值”满足的匹配规则,选择“前缀匹配”。 条件值 “匹配类型”对应的value值,设置为:gray。 单击“确定”,完成基于内容的网关路由配置。 开启泳道流量,使配置生效。 单击。 单击“确定”。 配置会对该灰度泳道下的所有组件生效。如果业务请求无法匹配到泳道所配置的路由规则,则网关将业务请求转发至基线泳道的组件处理。
-
操作步骤 登录ServiceStage控制台。 单击“全链路流量控制”。 单击待创建灰度泳道所在泳道组名称(例如:lane-test),进入“全链路流量控制”页面。 单击“创建泳道”,参考下表填写灰度泳道信息。 参数名称 参数说明 *泳道名称 输入灰度泳道的名称,例如:gray。 *标签 输入gray。 用于在Kubernetes类型的环境下创建并部署组件时,将绑定ServiceComb引擎专享版的组件打上相应的标签以标记流量。当有请求访问时,应用网关会根据路由规则将流量转发到对应流量标签的微服务上。 单击“确定”,完成灰度泳道创建。
-
操作步骤 登录ServiceStage控制台。 单击“全链路流量控制”。 单击待创建基线泳道所在泳道组名称(例如:lane-test),进入“全链路流量控制”页面。 单击“创建基线泳道”,参考下表填写泳道信息。 参数名称 参数说明 泳道名称 输入泳道的名称,例如:base。 标签 用于在Kubernetes类型的环境下创建并部署组件时,将绑定ServiceComb引擎专享版的组件打上相应的标签以标记流量。当有请求访问时,应用网关会根据路由规则将流量转发到对应流量标签的微服务上。当无法找到对应标签的微服务时,将转发至基线泳道对应的微服务。 基线泳道的标签默认为base,不可修改。 单击“确定”,完成基线泳道创建。 单击已创建好的基线泳道卡片上的“关联组件”或右上角的。 在弹出的“关联组件”对话框勾选创建并部署基线版本组件时已部署好的全部待关联组件:unit-controller、unit-consumer和unit-provider。 单击“确定”,完成基线泳道组件关联。 单击基线泳道卡片上当前已关联的组件数,可以查看基线泳道已关联的组件列表。
-
操作步骤 登录微服务引擎控制台。 为准备资源时创建的应用网关配置路由,请参考创建路由。 参考下表填写相关参数,其余参数保持默认。 参数名称 参数说明 路由名称 输入路由名称,例如:controller。 域名 勾选下拉列表中的“*”。 路由规则 服务地址:选择“前缀匹配”,输入“/”。 请求方法:选择“GET”。 服务名称:选择“unit-controller”。 分组:设置为“不限制”。 权重:设置为100。 使用全链路流量控制实现灰度发布时,一条路由下的所有路由规则必须绑定同一个目标服务。如需绑定多个目标服务,请创建多条路由。
-
操作步骤 为准备资源时创建的应用网关创建服务来源,请参考创建服务来源。 服务来源参数请参考下表进行设置。 参数名称 参数说明 来源类型 目标服务的来源,选择“CSE ServiceComb引擎”。 来源名称 输入目标服务的名称,例如:servicecomb。 引擎实例 选择准备资源时已经创建的ServiceComb引擎专享版。 为准备资源时创建的应用网关绑定目标服务,请参考创建服务。 参考下表填写相关参数。 参数名称 参数说明 来源类型 目标服务的来源,选择“CSE ServiceComb引擎”。 服务来源 选择1输入的目标服务的名称,例如:servicecomb。 环境选择 保持默认。 服务列表 选择接入了1所选择的ServiceComb引擎的目标服务实例“unit-controller”。
-
准备资源 创建一个虚拟私有网络VPC,请参考创建虚拟私有云和子网。 创建一个1.15以上版本的CCE集群(如果只是试用场景,“集群规模”选择“50节点”,“集群master实例数”选择“单实例”即可),请参考购买集群。 集群中至少包含1个规格为8vCPUs、16GB内存或者2个规格为4vCPUs、8GB内存的ECS节点,并且绑定弹性公网IP。 集群所在VPC为1创建的VPC。 CCE集群不能被其他环境绑定。 创建不开启安全认证的2.4.0及以上版本的ServiceComb引擎专享版,请参考创建微服务引擎。 如果ServiceComb引擎所在VPC与1创建的VPC不一致,需正确配置VPC连通。 创建微服务应用网关,请参考创建应用网关。 如果微服务应用网关与环境所在VPC不一致,需正确配置VPC连通。
共100000条
- 1
- ...
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- ...
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
- 420
- 421
- 422
- 423
- 424
- 425
- 426
- 427
- 428
- 429
- 430
- 431
- 432
- 433
- 434
- 435
- 436
- 437
- 438
- 439
- 440
- 441
- 442
- 443
- 444
- 445
- 446
- 447
- 448
- 449
- 450
- 451
- 452
- 453
- 454
- 455
- 456
- 457
- 458
- 459
- 460
- 461
- 462
- 463
- 464
- 465
- 466
- 467
- 468
- 469
- 470
- 471
- 472
- 473
- 474
- 475
- 476
- 477
- 478
- 479
- 480
- 481
- 482
- 483
- 484
- 485
- 486
- 487
- 488
- 489
- 490
- 491
- 492
- 493
- 494
- 495
- 496
- 497
- 498
- 499
- 500
- 501
- 502
- 503
- 504
- 505
- 506
- 507
- 508
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 519
- 520
- 521
- 522
- 523
- 524
- 525
- 526
- 527
- 528
- 529
- 530
- 531
- 532
- 533
- 534
- 535
- 536
- 537
- 538
- 539
- 540
- 541
- 542
- 543
- 544
- 545
- 546
- 547
- 548
- 549
- 550
- 551
- 552
- 553
- 554
- 555
- 556
- 557
- 558
- 559
- 560
- 561
- 562
- 563
- 564
- 565
- 566
- 567
- 568
- 569
- 570
- 571
- 572
- 573
- 574
- 575
- 576
- 577
- 578
- 579
- 580
- 581
- 582
- 583
- 584
- 585
- 586
- 587
- 588
- 589
- 590
- 591
- 592
- 593
- 594
- 595
- 596
- 597
- 598
- 599
- 600
- 601
- 602
- 603
- 604
- 605
- 606
- 607
- 608
- 609
- 610
- 611
- 612
- 613
- 614
- 615
- 616
- 617
- 618
- 619
- 620
- 621
- 622
- 623
- 624
- 625
- 626
- 627
- 628
- 629
- 630
- 631
- 632
- 633
- 634
- 635
- 636
- 637
- 638
- 639
- 640
- 641
- 642
- 643
- 644
- 645
- 646
- 647
- 648
- 649
- 650
- 651
- 652
- 653
- 654
- 655
- 656
- 657
- 658
- 659
- 660
- 661
- 662
- 663
- 664
- 665
- 666
- 667
- 668
- 669
- 670
- 671
- 672
- 673
- 674
- 675
- 676
- 677
- 678
- 679
- 680
- 681
- 682
- 683
- 684
- 685
- 686
- 687
- 688
- 689
- 690
- 691
- 692
- 693
- 694
- 695
- 696
- 697
- 698
- 699
- 700
- 701
- 702
- 703
- 704
- 705
- 706
- 707
- 708
- 709
- 710
- 711
- 712
- 713
- 714
- 715
- 716
- 717
- 718
- 719
- 720
- 721
- 722
- 723
- 724
- 725
- 726
- 727
- 728
- 729
- 730
- 731
- 732
- 733
- 734
- 735
- 736
- 737
- 738
- 739
- 740
- 741
- 742
- 743
- 744
- 745
- 746
- 747
- 748
- 749
- 750
- 751
- 752
- 753
- 754
- 755
- 756
- 757
- 758
- 759
- 760
- 761
- 762
- 763
- 764
- 765
- 766
- 767
- 768
- 769
- 770
- 771
- 772
- 773
- 774
- 775
- 776
- 777
- 778
- 779
- 780
- 781
- 782
- 783
- 784
- 785
- 786
- 787
- 788
- 789
- 790
- 791
- 792
- 793
- 794
- 795
- 796
- 797
- 798
- 799
- 800
- 801
- 802
- 803
- 804
- 805
- 806
- 807
- 808
- 809
- 810
- 811
- 812
- 813
- 814
- 815
- 816
- 817
- 818
- 819
- 820
- 821
- 822
- 823
- 824
- 825
- 826
- 827
- 828
- 829
- 830
- 831
- 832
- 833
- 834
- 835
- 836
- 837
- 838
- 839
- 840
- 841
- 842
- 843
- 844
- 845
- 846
- 847
- 848
- 849
- 850
- 851
- 852
- 853
- 854
- 855
- 856
- 857
- 858
- 859
- 860
- 861
- 862
- 863
- 864
- 865
- 866
- 867
- 868
- 869
- 870
- 871
- 872
- 873
- 874
- 875
- 876
- 877
- 878
- 879
- 880
- 881
- 882
- 883
- 884
- 885
- 886
- 887
- 888
- 889
- 890
- 891
- 892
- 893
- 894
- 895
- 896
- 897
- 898
- 899
- 900
- 901
- 902
- 903
- 904
- 905
- 906
- 907
- 908
- 909
- 910
- 911
- 912
- 913
- 914
- 915
- 916
- 917
- 918
- 919
- 920
- 921
- 922
- 923
- 924
- 925
- 926
- 927
- 928
- 929
- 930
- 931
- 932
- 933
- 934
- 935
- 936
- 937
- 938
- 939
- 940
- 941
- 942
- 943
- 944
- 945
- 946
- 947
- 948
- 949
- 950
- 951
- 952
- 953
- 954
- 955
- 956
- 957
- 958
- 959
- 960
- 961
- 962
- 963
- 964
- 965
- 966
- 967
- 968
- 969
- 970
- 971
- 972
- 973
- 974
- 975
- 976
- 977
- 978
- 979
- 980
- 981
- 982
- 983
- 984
- 985
- 986
- 987
- 988
- 989
- 990
- 991
- 992
- 993
- 994
- 995
- 996
- 997
- 998
- 999
- 1000
- 1001
- 1002
- 1003
- 1004
- 1005
- 1006
- 1007
- 1008
- 1009
- 1010
- 1011
- 1012
- 1013
- 1014
- 1015
- 1016
- 1017
- 1018
- 1019
- 1020
- 1021
- 1022
- 1023
- 1024
- 1025
- 1026
- 1027
- 1028
- 1029
- 1030
- 1031
- 1032
- 1033
- 1034
- 1035
- 1036
- 1037
- 1038
- 1039
- 1040
- 1041
- 1042
- 1043
- 1044
- 1045
- 1046
- 1047
- 1048
- 1049
- 1050
- 1051
- 1052
- 1053
- 1054
- 1055
- 1056
- 1057
- 1058
- 1059
- 1060
- 1061
- 1062
- 1063
- 1064
- 1065
- 1066
- 1067
- 1068
- 1069
- 1070
- 1071
- 1072
- 1073
- 1074
- 1075
- 1076
- 1077
- 1078
- 1079
- 1080
- 1081
- 1082
- 1083
- 1084
- 1085
- 1086
- 1087
- 1088
- 1089
- 1090
- 1091
- 1092
- 1093
- 1094
- 1095
- 1096
- 1097
- 1098
- 1099
- 1100
- 1101
- 1102
- 1103
- 1104
- 1105
- 1106
- 1107
- 1108
- 1109
- 1110
- 1111
- 1112
- 1113
- 1114
- 1115
- 1116
- 1117
- 1118
- 1119
- 1120
- 1121
- 1122
- 1123
- 1124
- 1125
- 1126
- 1127
- 1128
- 1129
- 1130
- 1131
- 1132
- 1133
- 1134
- 1135
- 1136
- 1137
- 1138
- 1139
- 1140
- 1141
- 1142
- 1143
- 1144
- 1145
- 1146
- 1147
- 1148
- 1149
- 1150
- 1151
- 1152
- 1153
- 1154
- 1155
- 1156
- 1157
- 1158
- 1159
- 1160
- 1161
- 1162
- 1163
- 1164
- 1165
- 1166
- 1167
- 1168
- 1169
- 1170
- 1171
- 1172
- 1173
- 1174
- 1175
- 1176
- 1177
- 1178
- 1179
- 1180
- 1181
- 1182
- 1183
- 1184
- 1185
- 1186
- 1187
- 1188
- 1189
- 1190
- 1191
- 1192
- 1193
- 1194
- 1195
- 1196
- 1197
- 1198
- 1199
- 1200
- 1201
- 1202
- 1203
- 1204
- 1205
- 1206
- 1207
- 1208
- 1209
- 1210
- 1211
- 1212
- 1213
- 1214
- 1215
- 1216
- 1217
- 1218
- 1219
- 1220
- 1221
- 1222
- 1223
- 1224
- 1225
- 1226
- 1227
- 1228
- 1229
- 1230
- 1231
- 1232
- 1233
- 1234
- 1235
- 1236
- 1237
- 1238
- 1239
- 1240
- 1241
- 1242
- 1243
- 1244
- 1245
- 1246
- 1247
- 1248
- 1249
- 1250
- 1251
- 1252
- 1253
- 1254
- 1255
- 1256
- 1257
- 1258
- 1259
- 1260
- 1261
- 1262
- 1263
- 1264
- 1265
- 1266
- 1267
- 1268
- 1269
- 1270
- 1271
- 1272
- 1273
- 1274
- 1275
- 1276
- 1277
- 1278
- 1279
- 1280
- 1281
- 1282
- 1283
- 1284
- 1285
- 1286
- 1287
- 1288
- 1289
- 1290
- 1291
- 1292
- 1293
- 1294
- 1295
- 1296
- 1297
- 1298
- 1299
- 1300
- 1301
- 1302
- 1303
- 1304
- 1305
- 1306
- 1307
- 1308
- 1309
- 1310
- 1311
- 1312
- 1313
- 1314
- 1315
- 1316
- 1317
- 1318
- 1319
- 1320
- 1321
- 1322
- 1323
- 1324
- 1325
- 1326
- 1327
- 1328
- 1329
- 1330
- 1331
- 1332
- 1333
- 1334
- 1335
- 1336
- 1337
- 1338
- 1339
- 1340
- 1341
- 1342
- 1343
- 1344
- 1345
- 1346
- 1347
- 1348
- 1349
- 1350
- 1351
- 1352
- 1353
- 1354
- 1355
- 1356
- 1357
- 1358
- 1359
- 1360
- 1361
- 1362
- 1363
- 1364
- 1365
- 1366
- 1367
- 1368
- 1369
- 1370
- 1371
- 1372
- 1373
- 1374
- 1375
- 1376
- 1377
- 1378
- 1379
- 1380
- 1381
- 1382
- 1383
- 1384
- 1385
- 1386
- 1387
- 1388
- 1389
- 1390
- 1391
- 1392
- 1393
- 1394
- 1395
- 1396
- 1397
- 1398
- 1399
- 1400
- 1401
- 1402
- 1403
- 1404
- 1405
- 1406
- 1407
- 1408
- 1409
- 1410
- 1411
- 1412
- 1413
- 1414
- 1415
- 1416
- 1417
- 1418
- 1419
- 1420
- 1421
- 1422
- 1423
- 1424
- 1425
- 1426
- 1427
- 1428
- 1429
- 1430
- 1431
- 1432
- 1433
- 1434
- 1435
- 1436
- 1437
- 1438
- 1439
- 1440
- 1441
- 1442
- 1443
- 1444
- 1445
- 1446
- 1447
- 1448
- 1449
- 1450
- 1451
- 1452
- 1453
- 1454
- 1455
- 1456
- 1457
- 1458
- 1459
- 1460
- 1461
- 1462
- 1463
- 1464
- 1465
- 1466
- 1467
- 1468
- 1469
- 1470
- 1471
- 1472
- 1473
- 1474
- 1475
- 1476
- 1477
- 1478
- 1479
- 1480
- 1481
- 1482
- 1483
- 1484
- 1485
- 1486
- 1487
- 1488
- 1489
- 1490
- 1491
- 1492
- 1493
- 1494
- 1495
- 1496
- 1497
- 1498
- 1499
- 1500
- 1501
- 1502
- 1503
- 1504
- 1505
- 1506
- 1507
- 1508
- 1509
- 1510
- 1511
- 1512
- 1513
- 1514
- 1515
- 1516
- 1517
- 1518
- 1519
- 1520
- 1521
- 1522
- 1523
- 1524
- 1525
- 1526
- 1527
- 1528
- 1529
- 1530
- 1531
- 1532
- 1533
- 1534
- 1535
- 1536
- 1537
- 1538
- 1539
- 1540
- 1541
- 1542
- 1543
- 1544
- 1545
- 1546
- 1547
- 1548
- 1549
- 1550
- 1551
- 1552
- 1553
- 1554
- 1555
- 1556
- 1557
- 1558
- 1559
- 1560
- 1561
- 1562
- 1563
- 1564
- 1565
- 1566
- 1567
- 1568
- 1569
- 1570
- 1571
- 1572
- 1573
- 1574
- 1575
- 1576
- 1577
- 1578
- 1579
- 1580
- 1581
- 1582
- 1583
- 1584
- 1585
- 1586
- 1587
- 1588
- 1589
- 1590
- 1591
- 1592
- 1593
- 1594
- 1595
- 1596
- 1597
- 1598
- 1599
- 1600
- 1601
- 1602
- 1603
- 1604
- 1605
- 1606
- 1607
- 1608
- 1609
- 1610
- 1611
- 1612
- 1613
- 1614
- 1615
- 1616
- 1617
- 1618
- 1619
- 1620
- 1621
- 1622
- 1623
- 1624
- 1625
- 1626
- 1627
- 1628
- 1629
- 1630
- 1631
- 1632
- 1633
- 1634
- 1635
- 1636
- 1637
- 1638
- 1639
- 1640
- 1641
- 1642
- 1643
- 1644
- 1645
- 1646
- 1647
- 1648
- 1649
- 1650
- 1651
- 1652
- 1653
- 1654
- 1655
- 1656
- 1657
- 1658
- 1659
- 1660
- 1661
- 1662
- 1663
- 1664
- 1665
- 1666
- 1667
- 1668
- 1669
- 1670
- 1671
- 1672
- 1673
- 1674
- 1675
- 1676
- 1677
- 1678
- 1679
- 1680
- 1681
- 1682
- 1683
- 1684
- 1685
- 1686
- 1687
- 1688
- 1689
- 1690
- 1691
- 1692
- 1693
- 1694
- 1695
- 1696
- 1697
- 1698
- 1699
- 1700
- 1701
- 1702
- 1703
- 1704
- 1705
- 1706
- 1707
- 1708
- 1709
- 1710
- 1711
- 1712
- 1713
- 1714
- 1715
- 1716
- 1717
- 1718
- 1719
- 1720
- 1721
- 1722
- 1723
- 1724
- 1725
- 1726
- 1727
- 1728
- 1729
- 1730
- 1731
- 1732
- 1733
- 1734
- 1735
- 1736
- 1737
- 1738
- 1739
- 1740
- 1741
- 1742
- 1743
- 1744
- 1745
- 1746
- 1747
- 1748
- 1749
- 1750
- 1751
- 1752
- 1753
- 1754
- 1755
- 1756
- 1757
- 1758
- 1759
- 1760
- 1761
- 1762
- 1763
- 1764
- 1765
- 1766
- 1767
- 1768
- 1769
- 1770
- 1771
- 1772
- 1773
- 1774
- 1775
- 1776
- 1777
- 1778
- 1779
- 1780
- 1781
- 1782
- 1783
- 1784
- 1785
- 1786
- 1787
- 1788
- 1789
- 1790
- 1791
- 1792
- 1793
- 1794
- 1795
- 1796
- 1797
- 1798
- 1799
- 1800
- 1801
- 1802
- 1803
- 1804
- 1805
- 1806
- 1807
- 1808
- 1809
- 1810
- 1811
- 1812
- 1813
- 1814
- 1815
- 1816
- 1817
- 1818
- 1819
- 1820
- 1821
- 1822
- 1823
- 1824
- 1825
- 1826
- 1827
- 1828
- 1829
- 1830
- 1831
- 1832
- 1833
- 1834
- 1835
- 1836
- 1837
- 1838
- 1839
- 1840
- 1841
- 1842
- 1843
- 1844
- 1845
- 1846
- 1847
- 1848
- 1849
- 1850
- 1851
- 1852
- 1853
- 1854
- 1855
- 1856
- 1857
- 1858
- 1859
- 1860
- 1861
- 1862
- 1863
- 1864
- 1865
- 1866
- 1867
- 1868
- 1869
- 1870
- 1871
- 1872
- 1873
- 1874
- 1875
- 1876
- 1877
- 1878
- 1879
- 1880
- 1881
- 1882
- 1883
- 1884
- 1885
- 1886
- 1887
- 1888
- 1889
- 1890
- 1891
- 1892
- 1893
- 1894
- 1895
- 1896
- 1897
- 1898
- 1899
- 1900
- 1901
- 1902
- 1903
- 1904
- 1905
- 1906
- 1907
- 1908
- 1909
- 1910
- 1911
- 1912
- 1913
- 1914
- 1915
- 1916
- 1917
- 1918
- 1919
- 1920
- 1921
- 1922
- 1923
- 1924
- 1925
- 1926
- 1927
- 1928
- 1929
- 1930
- 1931
- 1932
- 1933
- 1934
- 1935
- 1936
- 1937
- 1938
- 1939
- 1940
- 1941
- 1942
- 1943
- 1944
- 1945
- 1946
- 1947
- 1948
- 1949
- 1950
- 1951
- 1952
- 1953
- 1954
- 1955
- 1956
- 1957
- 1958
- 1959
- 1960
- 1961
- 1962
- 1963
- 1964
- 1965
- 1966
- 1967
- 1968
- 1969
- 1970
- 1971
- 1972
- 1973
- 1974
- 1975
- 1976
- 1977
- 1978
- 1979
- 1980
- 1981
- 1982
- 1983
- 1984
- 1985
- 1986
- 1987
- 1988
- 1989
- 1990
- 1991
- 1992
- 1993
- 1994
- 1995
- 1996
- 1997
- 1998
- 1999
- 2000
- 2001
- 2002
- 2003
- 2004
- 2005
- 2006
- 2007
- 2008
- 2009
- 2010
- 2011
- 2012
- 2013
- 2014
- 2015
- 2016
- 2017
- 2018
- 2019
- 2020
- 2021
- 2022
- 2023
- 2024
- 2025
- 2026
- 2027
- 2028
- 2029
- 2030
- 2031
- 2032
- 2033
- 2034
- 2035
- 2036
- 2037
- 2038
- 2039
- 2040
- 2041
- 2042
- 2043
- 2044
- 2045
- 2046
- 2047
- 2048
- 2049
- 2050
- 2051
- 2052
- 2053
- 2054
- 2055
- 2056
- 2057
- 2058
- 2059
- 2060
- 2061
- 2062
- 2063
- 2064
- 2065
- 2066
- 2067
- 2068
- 2069
- 2070
- 2071
- 2072
- 2073
- 2074
- 2075
- 2076
- 2077
- 2078
- 2079
- 2080
- 2081
- 2082
- 2083
- 2084
- 2085
- 2086
- 2087
- 2088
- 2089
- 2090
- 2091
- 2092
- 2093
- 2094
- 2095
- 2096
- 2097
- 2098
- 2099
- 2100
- 2101
- 2102
- 2103
- 2104
- 2105
- 2106
- 2107
- 2108
- 2109
- 2110
- 2111
- 2112
- 2113
- 2114
- 2115
- 2116
- 2117
- 2118
- 2119
- 2120
- 2121
- 2122
- 2123
- 2124
- 2125
- 2126
- 2127
- 2128
- 2129
- 2130
- 2131
- 2132
- 2133
- 2134
- 2135
- 2136
- 2137
- 2138
- 2139
- 2140
- 2141
- 2142
- 2143
- 2144
- 2145
- 2146
- 2147
- 2148
- 2149
- 2150
- 2151
- 2152
- 2153
- 2154
- 2155
- 2156
- 2157
- 2158
- 2159
- 2160
- 2161
- 2162
- 2163
- 2164
- 2165
- 2166
- 2167
- 2168
- 2169
- 2170
- 2171
- 2172
- 2173
- 2174
- 2175
- 2176
- 2177
- 2178
- 2179
- 2180
- 2181
- 2182
- 2183
- 2184
- 2185
- 2186
- 2187
- 2188
- 2189
- 2190
- 2191
- 2192
- 2193
- 2194
- 2195
- 2196
- 2197
- 2198
- 2199
- 2200
- 2201
- 2202
- 2203
- 2204
- 2205
- 2206
- 2207
- 2208
- 2209
- 2210
- 2211
- 2212
- 2213
- 2214
- 2215
- 2216
- 2217
- 2218
- 2219
- 2220
- 2221
- 2222
- 2223
- 2224
- 2225
- 2226
- 2227
- 2228
- 2229
- 2230
- 2231
- 2232
- 2233
- 2234
- 2235
- 2236
- 2237
- 2238
- 2239
- 2240
- 2241
- 2242
- 2243
- 2244
- 2245
- 2246
- 2247
- 2248
- 2249
- 2250
- 2251
- 2252
- 2253
- 2254
- 2255
- 2256
- 2257
- 2258
- 2259
- 2260
- 2261
- 2262
- 2263
- 2264
- 2265
- 2266
- 2267
- 2268
- 2269
- 2270
- 2271
- 2272
- 2273
- 2274
- 2275
- 2276
- 2277
- 2278
- 2279
- 2280
- 2281
- 2282
- 2283
- 2284
- 2285
- 2286
- 2287
- 2288
- 2289
- 2290
- 2291
- 2292
- 2293
- 2294
- 2295
- 2296
- 2297
- 2298
- 2299
- 2300
- 2301
- 2302
- 2303
- 2304
- 2305
- 2306
- 2307
- 2308
- 2309
- 2310
- 2311
- 2312
- 2313
- 2314
- 2315
- 2316
- 2317
- 2318
- 2319
- 2320
- 2321
- 2322
- 2323
- 2324
- 2325
- 2326
- 2327
- 2328
- 2329
- 2330
- 2331
- 2332
- 2333
- 2334
- 2335
- 2336
- 2337
- 2338
- 2339
- 2340
- 2341
- 2342
- 2343
- 2344
- 2345
- 2346
- 2347
- 2348
- 2349
- 2350
- 2351
- 2352
- 2353
- 2354
- 2355
- 2356
- 2357
- 2358
- 2359
- 2360
- 2361
- 2362
- 2363
- 2364
- 2365
- 2366
- 2367
- 2368
- 2369
- 2370
- 2371
- 2372
- 2373
- 2374
- 2375
- 2376
- 2377
- 2378
- 2379
- 2380
- 2381
- 2382
- 2383
- 2384
- 2385
- 2386
- 2387
- 2388
- 2389
- 2390
- 2391
- 2392
- 2393
- 2394
- 2395
- 2396
- 2397
- 2398
- 2399
- 2400
- 2401
- 2402
- 2403
- 2404
- 2405
- 2406
- 2407
- 2408
- 2409
- 2410
- 2411
- 2412
- 2413
- 2414
- 2415
- 2416
- 2417
- 2418
- 2419
- 2420
- 2421
- 2422
- 2423
- 2424
- 2425
- 2426
- 2427
- 2428
- 2429
- 2430
- 2431
- 2432
- 2433
- 2434
- 2435
- 2436
- 2437
- 2438
- 2439
- 2440
- 2441
- 2442
- 2443
- 2444
- 2445
- 2446
- 2447
- 2448
- 2449
- 2450
- 2451
- 2452
- 2453
- 2454
- 2455
- 2456
- 2457
- 2458
- 2459
- 2460
- 2461
- 2462
- 2463
- 2464
- 2465
- 2466
- 2467
- 2468
- 2469
- 2470
- 2471
- 2472
- 2473
- 2474
- 2475
- 2476
- 2477
- 2478
- 2479
- 2480
- 2481
- 2482
- 2483
- 2484
- 2485
- 2486
- 2487
- 2488
- 2489
- 2490
- 2491
- 2492
- 2493
- 2494
- 2495
- 2496
- 2497
- 2498
- 2499
- 2500
- 2501
- 2502
- 2503
- 2504
- 2505
- 2506
- 2507
- 2508
- 2509
- 2510
- 2511
- 2512
- 2513
- 2514
- 2515
- 2516
- 2517
- 2518
- 2519
- 2520
- 2521
- 2522
- 2523
- 2524
- 2525
- 2526
- 2527
- 2528
- 2529
- 2530
- 2531
- 2532
- 2533
- 2534
- 2535
- 2536
- 2537
- 2538
- 2539
- 2540
- 2541
- 2542
- 2543
- 2544
- 2545
- 2546
- 2547
- 2548
- 2549
- 2550
- 2551
- 2552
- 2553
- 2554
- 2555
- 2556
- 2557
- 2558
- 2559
- 2560
- 2561
- 2562
- 2563
- 2564
- 2565
- 2566
- 2567
- 2568
- 2569
- 2570
- 2571
- 2572
- 2573
- 2574
- 2575
- 2576
- 2577
- 2578
- 2579
- 2580
- 2581
- 2582
- 2583
- 2584
- 2585
- 2586
- 2587
- 2588
- 2589
- 2590
- 2591
- 2592
- 2593
- 2594
- 2595
- 2596
- 2597
- 2598
- 2599
- 2600
- 2601
- 2602
- 2603
- 2604
- 2605
- 2606
- 2607
- 2608
- 2609
- 2610
- 2611
- 2612
- 2613
- 2614
- 2615
- 2616
- 2617
- 2618
- 2619
- 2620
- 2621
- 2622
- 2623
- 2624
- 2625
- 2626
- 2627
- 2628
- 2629
- 2630
- 2631
- 2632
- 2633
- 2634
- 2635
- 2636
- 2637
- 2638
- 2639
- 2640
- 2641
- 2642
- 2643
- 2644
- 2645
- 2646
- 2647
- 2648
- 2649
- 2650
- 2651
- 2652
- 2653
- 2654
- 2655
- 2656
- 2657
- 2658
- 2659
- 2660
- 2661
- 2662
- 2663
- 2664
- 2665
- 2666
- 2667
- 2668
- 2669
- 2670
- 2671
- 2672
- 2673
- 2674
- 2675
- 2676
- 2677
- 2678
- 2679
- 2680
- 2681
- 2682
- 2683
- 2684
- 2685
- 2686
- 2687
- 2688
- 2689
- 2690
- 2691
- 2692
- 2693
- 2694
- 2695
- 2696
- 2697
- 2698
- 2699
- 2700
- 2701
- 2702
- 2703
- 2704
- 2705
- 2706
- 2707
- 2708
- 2709
- 2710
- 2711
- 2712
- 2713
- 2714
- 2715
- 2716
- 2717
- 2718
- 2719
- 2720
- 2721
- 2722
- 2723
- 2724
- 2725
- 2726
- 2727
- 2728
- 2729
- 2730
- 2731
- 2732
- 2733
- 2734
- 2735
- 2736
- 2737
- 2738
- 2739
- 2740
- 2741
- 2742
- 2743
- 2744
- 2745
- 2746
- 2747
- 2748
- 2749
- 2750
- 2751
- 2752
- 2753
- 2754
- 2755
- 2756
- 2757
- 2758
- 2759
- 2760
- 2761
- 2762
- 2763
- 2764
- 2765
- 2766
- 2767
- 2768
- 2769
- 2770
- 2771
- 2772
- 2773
- 2774
- 2775
- 2776
- 2777
- 2778
- 2779
- 2780
- 2781
- 2782
- 2783
- 2784
- 2785
- 2786
- 2787
- 2788
- 2789
- 2790
- 2791
- 2792
- 2793
- 2794
- 2795
- 2796
- 2797
- 2798
- 2799
- 2800
- 2801
- 2802
- 2803
- 2804
- 2805
- 2806
- 2807
- 2808
- 2809
- 2810
- 2811
- 2812
- 2813
- 2814
- 2815
- 2816
- 2817
- 2818
- 2819
- 2820
- 2821
- 2822
- 2823
- 2824
- 2825
- 2826
- 2827
- 2828
- 2829
- 2830
- 2831
- 2832
- 2833
- 2834
- 2835
- 2836
- 2837
- 2838
- 2839
- 2840
- 2841
- 2842
- 2843
- 2844
- 2845
- 2846
- 2847
- 2848
- 2849
- 2850
- 2851
- 2852
- 2853
- 2854
- 2855
- 2856
- 2857
- 2858
- 2859
- 2860
- 2861
- 2862
- 2863
- 2864
- 2865
- 2866
- 2867
- 2868
- 2869
- 2870
- 2871
- 2872
- 2873
- 2874
- 2875
- 2876
- 2877
- 2878
- 2879
- 2880
- 2881
- 2882
- 2883
- 2884
- 2885
- 2886
- 2887
- 2888
- 2889
- 2890
- 2891
- 2892
- 2893
- 2894
- 2895
- 2896
- 2897
- 2898
- 2899
- 2900
- 2901
- 2902
- 2903
- 2904
- 2905
- 2906
- 2907
- 2908
- 2909
- 2910
- 2911
- 2912
- 2913
- 2914
- 2915
- 2916
- 2917
- 2918
- 2919
- 2920
- 2921
- 2922
- 2923
- 2924
- 2925
- 2926
- 2927
- 2928
- 2929
- 2930
- 2931
- 2932
- 2933
- 2934
- 2935
- 2936
- 2937
- 2938
- 2939
- 2940
- 2941
- 2942
- 2943
- 2944
- 2945
- 2946
- 2947
- 2948
- 2949
- 2950
- 2951
- 2952
- 2953
- 2954
- 2955
- 2956
- 2957
- 2958
- 2959
- 2960
- 2961
- 2962
- 2963
- 2964
- 2965
- 2966
- 2967
- 2968
- 2969
- 2970
- 2971
- 2972
- 2973
- 2974
- 2975
- 2976
- 2977
- 2978
- 2979
- 2980
- 2981
- 2982
- 2983
- 2984
- 2985
- 2986
- 2987
- 2988
- 2989
- 2990
- 2991
- 2992
- 2993
- 2994
- 2995
- 2996
- 2997
- 2998
- 2999
- 3000
- 3001
- 3002
- 3003
- 3004
- 3005
- 3006
- 3007
- 3008
- 3009
- 3010
- 3011
- 3012
- 3013
- 3014
- 3015
- 3016
- 3017
- 3018
- 3019
- 3020
- 3021
- 3022
- 3023
- 3024
- 3025
- 3026
- 3027
- 3028
- 3029
- 3030
- 3031
- 3032
- 3033
- 3034
- 3035
- 3036
- 3037
- 3038
- 3039
- 3040
- 3041
- 3042
- 3043
- 3044
- 3045
- 3046
- 3047
- 3048
- 3049
- 3050
- 3051
- 3052
- 3053
- 3054
- 3055
- 3056
- 3057
- 3058
- 3059
- 3060
- 3061
- 3062
- 3063
- 3064
- 3065
- 3066
- 3067
- 3068
- 3069
- 3070
- 3071
- 3072
- 3073
- 3074
- 3075
- 3076
- 3077
- 3078
- 3079
- 3080
- 3081
- 3082
- 3083
- 3084
- 3085
- 3086
- 3087
- 3088
- 3089
- 3090
- 3091
- 3092
- 3093
- 3094
- 3095
- 3096
- 3097
- 3098
- 3099
- 3100
- 3101
- 3102
- 3103
- 3104
- 3105
- 3106
- 3107
- 3108
- 3109
- 3110
- 3111
- 3112
- 3113
- 3114
- 3115
- 3116
- 3117
- 3118
- 3119
- 3120
- 3121
- 3122
- 3123
- 3124
- 3125
- 3126
- 3127
- 3128
- 3129
- 3130
- 3131
- 3132
- 3133
- 3134
- 3135
- 3136
- 3137
- 3138
- 3139
- 3140
- 3141
- 3142
- 3143
- 3144
- 3145
- 3146
- 3147
- 3148
- 3149
- 3150
- 3151
- 3152
- 3153
- 3154
- 3155
- 3156
- 3157
- 3158
- 3159
- 3160
- 3161
- 3162
- 3163
- 3164
- 3165
- 3166
- 3167
- 3168
- 3169
- 3170
- 3171
- 3172
- 3173
- 3174
- 3175
- 3176
- 3177
- 3178
- 3179
- 3180
- 3181
- 3182
- 3183
- 3184
- 3185
- 3186
- 3187
- 3188
- 3189
- 3190
- 3191
- 3192
- 3193
- 3194
- 3195
- 3196
- 3197
- 3198
- 3199
- 3200
- 3201
- 3202
- 3203
- 3204
- 3205
- 3206
- 3207
- 3208
- 3209
- 3210
- 3211
- 3212
- 3213
- 3214
- 3215
- 3216
- 3217
- 3218
- 3219
- 3220
- 3221
- 3222
- 3223
- 3224
- 3225
- 3226
- 3227
- 3228
- 3229
- 3230
- 3231
- 3232
- 3233
- 3234
- 3235
- 3236
- 3237
- 3238
- 3239
- 3240
- 3241
- 3242
- 3243
- 3244
- 3245
- 3246
- 3247
- 3248
- 3249
- 3250
- 3251
- 3252
- 3253
- 3254
- 3255
- 3256
- 3257
- 3258
- 3259
- 3260
- 3261
- 3262
- 3263
- 3264
- 3265
- 3266
- 3267
- 3268
- 3269
- 3270
- 3271
- 3272
- 3273
- 3274
- 3275
- 3276
- 3277
- 3278
- 3279
- 3280
- 3281
- 3282
- 3283
- 3284
- 3285
- 3286
- 3287
- 3288
- 3289
- 3290
- 3291
- 3292
- 3293
- 3294
- 3295
- 3296
- 3297
- 3298
- 3299
- 3300
- 3301
- 3302
- 3303
- 3304
- 3305
- 3306
- 3307
- 3308
- 3309
- 3310
- 3311
- 3312
- 3313
- 3314
- 3315
- 3316
- 3317
- 3318
- 3319
- 3320
- 3321
- 3322
- 3323
- 3324
- 3325
- 3326
- 3327
- 3328
- 3329
- 3330
- 3331
- 3332
- 3333
- 3333
推荐文章