云容器引擎

购买混合集群

2022-04-19 13:59:38

您可以通过云容器引擎控制台非常方便快速的创建Kubernetes集群。Kubernetes是大规模容器集群管理软件,一个集群可以管理一组节点资源。

CCE集群支持虚拟机与裸金属服务器混合、支持GPU等异构节点的混合部署,基于高性能网络模型提供全方位、多场景、安全稳定的容器运行环境,您可以通过购买节点实现多种场景的混合部署。

前提条件

  • 创建首个集群前,您必须先确保已存在虚拟私有云,否则无法创建集群。若您已有虚拟私有云,可重复使用,无需重复创建。
    虚拟私有云为CCE集群提供一个隔离的、用户自主配置和管理的虚拟网络环境。

  • 您需要新建一个密钥对,用于远程登录节点时的身份认证。
    若使用密码登录节点,请跳过此操作。

  • 创建集群前,请提前规划好容器网段和服务网段。网段参数在集群创建后不可更改,需要重新创建集群才能调整,请谨慎选择。

创建集群须知

创建集群过程中会同步创建一些基础资源,列表如下:

资源名称

描述

控制节点及其相关资源

存在于云容器引擎资源租户下,用户不可见。

弹性云主机(可选创建)

集群节点,即用户的计算资源,对应“弹性云主机”中的ECS。

ECS命名规则为:集群名称-随机数,可自定义,批量创建时会再加一串随机数。

安全组

集群会创建两个安全组,一个用于管理集群控制节点的安全组,一个用于管理集群工作节点的安全组。

警告

集群创建时自动创建的安全组以及安全组规则禁止删除,否则会导致集群异常。

1.      控制节点安全组

命名规则:集群名称-cce-control-随机数

作用:

  • 出方向允许。
  • 其他节点访问控制节点kubernetes相关服务。

2.      工作节点安全组

命名规则:集群名称-cce-node-随机数

作用:

  • 出方向允许。
  • 开放linux或windows远程登录(22、3389)。
  • kubernetes组件之间访问使用(4789、10250)。
  • kubernetes用于对外开放的端口(30000-32767)。
  • 相同安全组之间可以互相访问。

磁盘(可选创建)

分别给各个节点创建两个磁盘,一个是节点的系统盘,一个是给docker运行使用的数据盘。

弹性IP(可选创建)

需用户选择,给节点绑定弹性IP ,可以使节点访问外网。

操作步骤

步骤 1 登录CCE控制台,在总览页面单击“购买Kubernetes集群”,或在左侧导航栏中单击“资源管理 > 集群管理”,单击“购买混合集群”。

步骤 2 参照下表设置集群参数。

创建集群参数配置

参数

参数说明

计费模式

  • 包年/包月:预付费模式,按订单的购买周期计费,适用于可预估资源使用周期的场景,价格比按需计费模式更优惠。包年/包月集群创建后不能删除。
  • 按需计费:后付费模式,按资源的实际使用时长计费,可以随时开通/删除资源。

本节以“按需计费”类型为例进行讲解。

区域

不同区域的云服务产品之间内网互不相通;请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。

集群名称

新建集群的名称,创建后不可修改。

集群名称长度范围为4-128个字符,以小写字母开头,由小写字母、数字、中划线(-)组成,且不能以中划线(-)结尾。

版本

Kubernetes社区基线版本,建议选择最新的版本。版本升级请参见集群版本升级说明。

若有Beta版本时,您可以选择试用,但不建议您将该版本用于商用场景。

集群管理规模

集群管理规模是指当前集群的控制节点可以管理的最大工作节点规模,您可以选择50节点、200节点、1000节点三种管理规模,请根据您的业务需求选择,该规模在集群创建后不可更改,请慎重选择。

若选择“1000节点”,表示当前集群的控制节点最多可管理1000个工作节点。由于不同管理规模的控制节点规格不同,因此配置费用会有差异。

任何一个集群中均包含“Master   Node”和“Worker   Node”,每一个Node对应一台云服务器。

  • Master Node:集群的控制节点,在创建集群时会自动创建控制节点,负责整个集群的管理和调度。
  • Worker Node:集群的工作节点,即用户购买或纳管的节点。工作负载是由控制节点分配的,当某个工作节点宕机时,控制节点会将工作负载转移到其他工作节点上。

控制节点数

多控制节点模式开启后将创建三个控制节点,在单个控制节点发生故障后集群可以继续使用,不影响业务功能。

多控制节点模式开关在集群创建完成后不可变更。

商用场景建议选择多控制节点模式集群。

虚拟私有云

新建集群所在的虚拟私有云,集群创建后不可更改。

虚拟私有云是通过逻辑方式进行网络隔离,提供安全、隔离的网络环境。

若没有虚拟私有云可选择,请单击“创建虚拟私有云”进行创建,完成创建后单击刷新按钮。

所在子网

节点虚拟机运行的子网环境,集群创建后不可更改。

通过子网提供与其他网络隔离的、可以独享的网络资源,以提高网络安全。

若没有子网可选择,请单击“创建子网”进行创建,完成创建后单击刷新按钮。虚拟私有云、子网、集群的关系请参见集群概述。

请确保子网下的DNS服务器可以解析对象存储服务域名,否则无法创建节点。

集群创建后子网无法修改,请谨慎选择。

网络模型

集群创建成功后,网络模型不可更改,请谨慎选择。

容器隧道网络

容器隧道网络下只能添加同一类型的节点,即全部为虚拟机节点或全部为裸金属节点。

  • 基于底层VPC网络,另构建了独立的VXLAN隧道化容器网络,适用于一般场景。
  • VXLAN是将以太网报文封装成UDP报文进行隧道传输。容器网络是承载于VPC网络之上的Overlay网络平面,具有付出少量隧道封装性能损耗,即可获得通用性强、互通性强、高级特性支持全面等优势,可以满足大多数应用需求。

VPC网络

VPC网络模式下每个节点占用一条VPC路由规则,Console界面中可显示当前局点支持的VPC路由规则条数,以及每个节点可供分配的容器IP个数(即可创建的Pod实例数目上限),

  • VPC路由方式与底层网络深度整合,适用于高性能场景,但每个节点占用一条VPC路由规则,节点数量受限于虚拟私有云VPC的路由配额。
  • VPC网络集群下的每个节点将会被分配固定大小的IP地址段,由于没有隧道封装的消耗,容器网络性能相对于容器隧道网络有一定优势。VPC网络集群由于VPC路由中配置有容器网段与节点IP的路由,可以支持集群外直接访问容器实例等特殊场景。

说明:

  1. VPC网络模式下不支持扩展网段和NetworkPolicy。
  2. 一个VPC下创建多个VPC网络模式的集群时,需要为每个集群选择一个不重叠的地址段,不仅不能和VPC地址重叠,也不和其他容器网段重叠。

容器网段

请根据业务需求选择容器网段,确定容器网段后,容器实例将在规划的网段内分配IP,集群创建后该网段不可更改。

未勾选“自动选择”:请手动选择网段。若与子网网段有冲突时将有红色文字提示,请重新选择。建议使用网段:10.0.0.0/8~18,172.16.0.0/16~18,192.168.0.0/16~18。

不同集群使用相同的容器网段,会导致容器IP冲突,应用访问异常。

勾选“自动选择”:系统将自动分配与子网网段无冲突的网段。

容器网段要设置合理的掩码,掩码决定集群内可用节点数量。集群中容器网段掩码设置不合适,会导致集群实际可用的节点较少。设置掩码后,选项下方会有当前网段最多支持的实例估算值,请作参考。

服务网段

服务网段为kubernetes service ip网段,集群创建后该网段不可更改。服务网段与已创建的路由不能冲突,如果冲突,请重新选择。

  • 使用默认网段:默认设置为10.247.0.0/16网段。
  • 手动设置网段:请根据业务需求设置合理的网段和掩码,掩码决定集群内可用service ip数量。

认证方式

认证机制主要用于对集群下的资源做权限控制。例如A用户只能对某个命名空间下的应用有读写权限,B用户对集群下的资源只有读权限等。角色权限控制的操作请参见集群管理权限控制。

默认状态下不选定“认证能力增强”,此时默认开启X509认证模式,X509是一种非常通用的证书格式。

若需要对集群进行权限控制,请勾选“认证能力增强”,选择“认证代理”。

单击“CA根证书”后的“上传文件”,上传符合规范且合法的证书,并勾选“我已确认上传的证书合法”

证书若不合法,集群将无法创建成功。请上传小于1MB的文件,上传格式支持.crt或.cer格式。

集群描述

选填,请输入新建容器集群相应的描述信息。

高级设置

单击“高级设置”后展开详细项目,支持的功能如下(当前可用区中不支持的功能将隐藏):

服务转发模式:

  • iptables:社区传统的kube-proxy模式,完全以iptables规则的方式来实现service负载均衡。该方式最主要的问题是在服务多的时候产生太多的iptables规则,非增量式更新会引入一定的时延,大规模情况下有明显的性能问题。
  • ipvs:在社区获得广泛支持的kube-proxy模式,采用增量式更新,吞吐更高,速度更快,并可以保证service更新期间连接保持不断开,适用于大规模场景。

ipvs模式下,ingress和service使用相同的ELB实例时,无法在集群内的节点和容器中访问ingress。

说明

  • ipvs为大型集群提供了更好的可扩展性和性能。
  • ipvs支持比iptables更复杂的负载平衡算法(最小负载,最少连接,位置,加权等)。
  • ipvs支持服务器健康检查和连接重试等。

CPU管理策略:

  • 开启:支持给工作负载实例配置CPU独占,适用于对CPU缓存和调度延迟敏感的工作负载。
  • 关闭:关闭工作负载实例独占CPU核的功能,优点是CPU共享池的可分配核数较多。

购买时长

若选择创建“包年/包月”的集群,请设置购买时长。

步骤 3 单击“下一步:创建节点”,在“创建节点”步骤中,参照如下参数配置节点:

  • 创建节点:

        现在添加:创建集群的同时创建节点,当前仅支持虚拟机节点。如果节点创建失败集群会一起回滚。

        稍后添加:将不会创建节点,仅创建一个空集群,集群创建完成后可以添加虚拟机或裸金属节点。

  • 计费模式:支持“包年/包月”和“按需计费”两种计费类型。

      包年/包月:包年包月是预付费模式,按订单的购买周期计费,适用于可预估资源使用周期的场景,价格比按需计费模式更优惠。

      按需计费:按需计费是后付费模式,按资源的实际使用时长计费,可以随时开通/删除资源。

      创建集群时节点的计费方式跟随集群的计费方式,如集群的计费模式选择“按需计费”,则创建过程中节点的计费模式只能为“按需计费”,“包年/包月”同理。创建方式请参考节点管理->购买节点。

      包年/包月节点创建后不能删除,如需停止使用,请执行退订操作。

  • 当前区域:节点实例所在的资源池。
  • 可用区:请根据业务需要进行选择。可用区是在同一区域下,电力、网络隔离的物理区域,可用区之间内网互通,不同可用区之间物理隔离。

      如果您需要提高工作负载的高可靠性,建议您在创建集群后将云服务器部署在不同的可用区,购买集群时节点只能部署在一个可用区。

  • 节点类型:选择“虚拟机节点”。
  • 节点名称:自定义节点名称。长度范围为1-56个字符,以小写字母开头,支持小写字母、数字、中划线(-),不能以中划线(-)结尾。
  • 节点规格:请根据业务需求选择相应的节点规格。

        −通用型:该类型实例提供均衡的计算、存储以及网络配置,适用于大多数的使用场景。通用型实例可用于Web服务器、开发测试环境以及小型数据库工作负载等场景。

        −内存优化型:该类型实例提供内存比例更高的实例,可以用于对内存要求较高、数据量大的工作负载,例如关系数据库、NoSQL等场景。

        −GPU加速型:提供优秀的浮点计算能力,从容应对高实时、高并发的海量计算场景。P系列适合于深度学习,科学计算,CAE等;G系列适合于3D动画渲染,CAD等。

        −高性能计算型:实例提供具有更稳定、超高性能计算性能的实例,可以用于超高性能计算能力、高吞吐量的工作负载场景,例如科学计算。

        −通用计算增强型:该类型实例具有性能稳定且资源独享的特点,满足计算性能高且稳定的企业级工作负载诉求。

      为确保节点稳定性,系统会自动预留部分资源,用于运行必须的系统组件。详细请参见节点管理->节点预留资源计算公式。

  • 操作系统:请直接选择节点对应的操作系统。
  • 系统盘:设置工作节点的系统盘空间。您可以设置系统盘的规格为40GB-1024GB之间的数值,缺省值为40GB。
  • 数据盘:设置工作节点的数据盘空间。您可以设置数据盘的规格为100GB-32678GB之间的数值,缺省值为100GB。数据盘可提供的云硬盘类型与系统盘一致。

注意:

  • 若数据盘卸载或损坏,会导致docker服务异常,最终导致节点不可用。建议不要删除该数据盘。

        −数据盘空间分配:单击后方的“更改配置”可以对数据盘中的“k8s空间”和“用户空间”占比进行自定义设置,开启LVM管理的数据盘将按照设置的比例进行统一分配。部分集群版本不支持此功能,具体以界面为准。

  • k8s空间:您可以自定义数据盘中Docker和Kubelet的资源占比。Docker资源包含Docker工作目录、Docker镜像数据以及镜像元数据;Kubelet资源包含Pod配置文件、密钥以及临时存储EmptyDir等挂载数据。
  • 用户空间:定义本地盘中不分配给kubernetes使用的空间大小和用户空间挂载路径。

请注意“挂载路径”不能设置为根目录“/”,否则将导致挂载失败。挂载路径一般设置为:

  • /opt/xxxx(但不能为/opt/cloud)
  • /mnt/xxxx(但不能为/mnt/paas)
  • /tmp/xxx
  • /var/xxx (但不能为/var/lib、/var/script、/var/paas等关键目录)
  • /xxxx(但不能和系统目录冲突,例如bin、lib、home、root、boot、dev、etc、lost+found、mnt、proc、sbin、srv、tmp、var、media、opt、selinux、sys、usr等)

注意不能设置为/home/paas、/var/paas、/var/lib、/var/script、/mnt/paas、/opt/cloud,否则会导致系统或节点安装失败。

  • 虚拟私有云:不可修改,仅用于展示当前集群所在的虚拟私有云。
  • 所在子网:通过子网提供与其他网络隔离的、可以独享的网络资源,以提高网络安全。可选择该集群虚拟私有云下的任意子网,集群节点支持跨子网。

该参数仅在v1.13.10-r0及以上版本的集群中显示,请务必确保子网下的DNS服务器可以解析对象存储服务域名,否则无法创建节点。

已有集群添加节点时,如果子网对应的VPC新增了扩展网段且子网是扩展网段,要在控制节点安全组(即集群名称-cce-control-随机数)中添加如下三条安全组规则,以保证集群添加的节点功能可用(新建集群时如果VPC已经新增了扩展网段则不涉及此场景):

  • 弹性IP:独立申请的公网IP地址,若节点有互联网访问的需求,请选择“暂不使用”或“使用已有”。集群开启IPv6时,不显示该参数。

      弹性公网IP提供外网访问能力,可以灵活绑定及解绑,随时修改带宽。未绑定弹性公网IP的云服务器无法直接访问外网,无法直接对外进行互相通信。

        −暂不使用:若新增节点未绑定弹性IP,则在该节点上运行的工作负载将不能被外网访问,仅可作为私有网络中部署业务或者集群所需云服务器进行使用。

        −使用已有:请选择已有的弹性IP,将为当前节点分配已有弹性IP。

说明: 

CCE默认不启用VPC的SNAT。若VPC启用了SNAT,可以不使用EIP去访问外网。

  • 共享带宽:请选择“暂不使用”或“使用已有”。仅在集群开启IPv6时,显示该参数。

      弹性公网IP提供外网访问能力,可以灵活绑定及解绑,随时修改带宽。未绑定弹性公网IP的云服务器无法直接访问外网,无法直接对外进行互相通信。

  • 登录方式:支持密码和密钥对。

        −选择“密码”:用户名默认为“root”,请输入登录节点的密码,并确认密码。

          登录节点时需要使用该密码,请妥善管理密码,系统无法获取您设置的密码内容。

        −选择“密钥对”:选择用于登录本节点的密钥对,支持选择共享密钥。

          密钥对用于远程登录节点时的身份认证。若没有密钥对,可单击选项框右侧的“创建密钥对”来新建。

须知:

如果子用户创建节点选择密钥对创建,这个密钥只对创建这个密钥的子用户有效,即使其他子用户在同一个组也无法选择,也无法使用。例如:A用户创建的密钥,B用户无法使用这个密钥对创建节点,并且Console也选不到。

  • 云服务器高级设置:(可选),单击 展开后可对节点进行如下高级功能配置:

        −安装前执行脚本:请输入脚本命令,大小限制为0~1000字符。

        脚本将在Kubernetes软件安装前执行,可能导致Kubernetes软件无法正常安装,需谨慎使用。常用于格式化数据盘等场景。

        −安装后执行脚本:请输入脚本命令,大小限制为0~1000字符。

        脚本将在Kubernetes软件安装后执行,不影响Kubernetes软件安装。常用于修改Docker配置参数等场景。

        −新增数据盘:单击“新增数据盘”,选择云硬盘类型并输入数据盘规格。

        −子网IP:可选择“自动分配IP地址”和“手动分配IP地址”,推荐使用“自动分配IP地址”。

  • Kubernetes高级设置:(可选),单击 展开后可对集群进行如下高级功能配置:

        −最大实例数:节点最大允许创建的实例数(Pod),该数量包含系统默认实例,取值范围为16~128。

        该设置的目的为防止节点因管理过多实例而负载过重,请根据您的业务需要进行设置。

        −自定义镜像仓库:单击“新增自定义镜像仓库地址”输入镜像仓库地址。

        添加自定义镜像仓库地址(非SSL镜像源地址)到docker启动参数中,避免拉取个人镜像仓库的镜像失败,格式可为“IP地址:端口或者域名”。安装后执行脚本与自定义镜像仓库不能同时使用。

        −单容器可用数据空间:该参数用于设置一个容器可用的数据空间大小,设置范围为10G到80G。如果设置的参数超过数据盘中Docker可占用的实际数据空间(由数据盘设置项中的资源分配自定义参数指定,默认为数据盘大小的90%),将以Docker的实际空间大小为主。该参数仅在v1.13.10-r0及以上版本的集群中显示。

  • 节点购买数量:此处设置的节点数不能超过集群管理的最大节点规模,请根据业务需求和界面提示进行选择,单击后方的 可查看影响能添加节点数的因素(取决于最小值)。如需申请更多配额,请单击。
  • 购买时长:若选择创建“包年/包月”的集群,请设置购买时长。

步骤 4 单击“下一步:安装插件”,在“安装插件”步骤中选择要安装的插件。

“系统资源插件”为必装插件,“高级功能插件”可根据实际需求进行选择性安装。

所有插件也可以在集群创建完成后,在左侧导航栏中单击“插件管理”进行安装或卸载,具体请参见插件管理章节。

步骤 5 单击“下一步:配置确认”,阅读“使用说明”并点选“我已知晓上述限制”,确认所设置的服务选型参数、规格和费用等信息。

步骤 6 确认规格和费用后,单击“提交”,集群开始创建。

若选择购买“包年包月”的集群,请单击“去支付”,根据界面提示进行付款操作。

集群创建预计需要约10分钟,您可以单击“返回集群管理”进行其他操作或单击“查看集群事件列表”后查看集群详情。待集群状态为“正常”,表示集群创建成功。


相关操作

通过命令行工具连接集群:请参见通过kubectl操作CCE集群。

  • 添加节点:集群创建完成后,若您需要为集群添加更多节点,请参见节点管理->购买节点。
  • 登录节点:请参见节点管理->登录节点。
  • 创建命名空间:同个集群内可创建多个命名空间,形成逻辑上的不同分组,便于不同的分组在共享使用集群资源时还能被分别管理。若您需要为集群创建命名空间,请参见命名空间章节。
  • 创建工作负载:集群创建完成后,您可以使用镜像创建一个可公网访问的应用,请参见工作负载管理的创建无状态负载(Deployment)或创建有状态负载(StatefulSet)。
  • 单击已成功创建的集群名称,进入“集群详情”页可查看集群详情。

页签类别

说明

集群详情

可查看该集群的详情及运行状态等。

监控

可查看集群下全部节点的CPU和内存分配率(即分配量的最大值),以及控制节点的CPU和内存使用率、控制节点规格等信息。

事件

可以直接在“事件”页签下查看集群的事件。

可以设置查询条件,比如设置事件产生的时间段或搜索事件名称,查看相关事件。

弹性扩容

您可以根据实际业务需要对集群的工作节点进行扩容和缩容,详情请参见集群弹性扩容。

v1.17及以上版本的集群将不再支持AOM提供的弹性伸缩机制,请使用节点池功能进行弹性伸缩,详情请参见节点池管理->节点池概述。

kubectl

若您需要从客户端计算机连接到kubernetes集群,请使用kubernetes命令行客户端kubectl,详情请参见通过kubectl操作CCE集群。