创建节点
前提条件
- 已创建至少一个集群。
- 您需要新建一个密钥对,用于远程登录节点时的身份认证。
若使用密码登录节点,请跳过此操作。创建方法请参见创建密钥对。
约束与限制
- 创建节点过程中依赖OBS等周边服务,因此节点所在子网的DNS配置不可修改。
- 集群开启IPv4/IPv6双栈时,所选节点子网不允许开启DHCP无限租约。
注意事项
- 为了保证节点的稳定性,CCE集群节点上会根据节点的规格预留一部分资源给Kubernetes的相关组件(kubelet、kube-proxy以及docker等)和Kubernetes系统资源,使该节点可作为您的集群的一部分。 因此,您的节点资源总量与节点在Kubernetes中的可分配资源之间会存在差异。节点的规格越大,在节点上部署的容器可能会越多,所以Kubernetes自身需预留更多的资源,详情请参见节点预留资源策略说明。
- 节点的网络(如虚机网络、容器网络等)均被CCE接管,请勿自行添加删除网卡、修改路由和IP地址。若自行修改可能导致服务不可用。例如,节点上名为的gw_11cbf51a@eth0网卡为容器网络网关,不可修改。
- 集群中通过“按需计费”模式购买的节点,在CCE“节点管理”中进行删除操作后将会直接被删除;通过“包年/包月”模式购买的节点不能直接删除,请在右上角单击“费用”,选择“订单管理 > 退订与退换货”执行资源退订操作。
操作步骤
集群创建完成后,您可以在集群中创建节点。
- 登录CCE控制台。
- 在左侧导航栏中选择“集群管理”,单击要创建节点的集群进入集群控制台。
- 在集群控制台左侧导航栏中选择“节点管理”,切换至“节点”页签并单击右上角的“创建节点”,在节点配置步骤中参照如下表格设置节点参数。
节点配置:
配置节点云服务器的规格与操作系统,为节点上的容器应用提供基本运行环境。表1 节点配置参数 参数
参数说明
计费模式
支持以下计费方式:- 包年包月
- 按需计费
- 竞价计费
竞价计费是后付费模式,相对于按需计费模式,以更低的折扣按实际使用时长计费。详情请参见竞价计费型实例。
说明:- 如果创建竞价实例时同时购买了数据盘和弹性公网IP,数据盘和弹性公网IP会在竞价实例释放时随实例释放。如果给已经创建完成的竞价实例挂载数据盘和弹性公网IP,则需要在删除竞价实例后自行释放这些资源。
- 竞价实例不支持重置、纳管、移除、迁移、转包周期、集群重置升级。如果要对集群进行重置升级,需要先删除竞价节点,将竞价节点池实例数设为0。
- ECS可能会因为用户报价小于市场价、资源不足等原因主动释放竞价实例。建议在集群中安装最新版本的npd插件,npd插件会在竞价实例被ECS释放前5分钟收到通知,产生ReceivedReclaimNodeNotification事件,并给节点加污点node-problem-controller.cce.io/SpotPriceNodeReclaimNotification: NoExecute,驱逐节点上的Pod,使Pod能在节点被删除前迁移到其他节点。
可用区
节点云服务器所在的可用区,集群下节点创建在不同可用区下可以提高可靠性。创建后不可修改。
建议您选择“随机分配”,可根据选择的节点规格随机分配一个可以使用的可用区。
可用区是在同一区域下,电力、网络隔离的物理区域,可用区之间内网互通,不同可用区之间物理隔离。如果您需要提高工作负载的高可靠性,建议您将云服务器创建在不同的可用区。
节点类型
请根据不同的业务诉求选择节点类型,“节点规格”列表中将自动为您筛选该类型下可部署容器服务的规格,供您进一步选择。
CCE Standard集群支持以下类型:- 弹性云服务器-虚拟机:使用虚拟化技术的弹性云服务器作为集群节点。
- 弹性云服务器-物理机:使用擎天架构的裸金属服务器作为集群节点。
- 裸金属服务器:使用传统裸金属服务器作为集群节点。选择数据盘时支持使用裸金属服务器自带的本地盘。
CCE Turbo集群支持以下类型:- 弹性云服务器-虚拟机:使用虚拟化的弹性云服务器作为集群节点。CCE Turbo集群仅支持可添加多张弹性网卡的机型,请根据控制台页面展示规格进行选择。
- 弹性云服务器-物理机:使用擎天架构的裸金属服务器作为集群节点。
节点规格
请根据业务需求选择相应的节点规格,节点规格要求CPU为2核及以上、内存为4GiB及以上。
不同的可用区可选择的节点规格类型可能不同,请根据实际情况选择。
说明:CCE集群支持添加鲲鹏(ARM)节点,请以创建节点页面实际展示规格为准。
容器引擎
CCE支持Docker和Containerd容器引擎,不同的集群类型、集群版本、操作系统可能导致支持的容器引擎类型不同,请根据控制台呈现进行选择。具体场景请参见节点操作系统与容器引擎对应关系。
操作系统
选择操作系统类型,不同类型节点支持的操作系统有所不同。- 公共镜像:请选择节点对应的操作系统。
- 私有镜像:支持使用私有镜像,私有镜像制作方法具体请参见制作CCE节点自定义镜像。
说明:由于业务容器运行时共享节点的内核及底层调用,为保证兼容性,建议节点的操作系统选择与最终业务容器镜像相同或接近的Linux发行版本。
节点名称
节点云服务器使用的名称,批量创建时将作为云服务器名称的前缀。
系统会默认生成名称,支持修改。
节点名称长度范围为1-56个字符,以小写字母开头,支持小写字母、数字、中划线(-)、点(.),不能以中划线(-)或点(.)结尾,点(.)前后必须为小写字母或数字。
企业项目
该参数仅对开通企业项目的企业客户账号显示,且集群版本要求v1.21.15-r0、v1.23.14-r0、v1.25.9-r0、v1.27.6-r0、v1.28.4-r0及以上。
选择某个企业项目后,节点将会创建在该企业项目下。您可以通过企业项目服务(EPS)管理集群及其他资源(节点、ELB、以及节点的安全组等)。了解更多企业项目相关信息,请查看企业管理。
登录方式
- 密码
用户名默认为“root”,请输入登录节点的密码,并确认密码。
登录节点时需要使用该密码,请妥善管理密码,系统无法获取您设置的密码内容。
- 密钥对
选择用于登录本节点的密钥对,支持选择共享密钥。
密钥对用于远程登录节点时的身份认证。若没有密钥对,可单击选项框右侧的“创建密钥对”来新建,创建密钥对操作步骤请参见创建密钥对。
- 使用镜像密码(当节点类型为弹性云服务器虚拟机或物理机,且操作系统选择私有镜像时支持)
保留所选择镜像的密码。为了保证您的正常使用,请确保所选择镜像中已经设置了密码。
存储配置:
配置节点云服务器上的存储资源,方便节点上的容器软件与容器应用使用。请根据实际场景设置磁盘类型及大小。关于云硬盘类型的详细介绍请参见磁盘类型及性能介绍。表2 存储配置参数 参数
参数说明
系统盘
节点云服务器使用的系统盘,供操作系统使用。您可以设置系统盘的规格为40GiB-1024GiB之间的数值,缺省值为50GiB。
说明:通用型SSD V2支持自定义设置IOPS和吞吐量,设置范围参见云硬盘性能数据表。仅v1.21.15-r0、v1.23.14-r0、v1.25.9-r0、v1.27.6-r0、v1.28.4-r0及以上版本的集群中支持选择使用通用型SSD V2类型的云硬盘。
系统盘加密:系统盘加密功能可为您的数据提供强大的安全防护,加密磁盘生成的快照及通过这些快照创建的磁盘将自动继承加密功能。仅“弹性云服务器-虚拟机”类型支持系统盘加密,且仅部分Region支持此选项,具体请以界面为准。- 默认不加密。
- 选择“加密-从密钥中选择”后,可选择已有的密钥,若没有可选的密钥,请单击后方的链接创建新密钥,完成创建后单击刷新按钮。
- 选择“加密-输入KMS密钥ID”后,您需要输入的KMS密钥ID(包含他人共享的KMS密钥),且该密钥必须位于当前Region下。
系统组件存储
选择系统组件的存储位置:
- 数据盘:必须添加一块默认数据盘,供容器运行时和Kubelet组件使用,您可以自行设置数据盘的规格为20GiB-32768GiB之间的数值,缺省值为100GiB。该数据盘不能被删除卸载,否则会导致节点不可用。
- 系统盘:CCE将下载的镜像、容器的临时存储、容器的stdout标准输出日志等资源都存储在系统盘中,过多占用系统盘可能影响节点运行稳定性。
说明:v1.23.18-r0、v1.25.13-r0、v1.27.10-r0、v1.28.8-r0、v1.29.4-r0及以上版本的集群中支持选择系统组件的存储位置,且配套使用CCE节点故障检测插件时需安装1.19.2及以上版本的插件。
数据盘
v1.23.18-r0、v1.25.13-r0、v1.27.10-r0、v1.28.8-r0、v1.29.4-r0以下版本的集群中,至少需要一块默认数据盘,供容器运行时和Kubelet组件使用,该数据盘不能被删除卸载,否则会导致节点不可用。- 默认数据盘:供容器运行时和Kubelet组件使用。您可以自行设置数据盘的规格为20GiB-32768GiB之间的数值,缺省值为100GiB。
- 其他普通数据盘,您可以设置数据盘的规格为10GiB-32768GiB之间的数值,缺省值为100GiB。
v1.23.18-r0、v1.25.13-r0、v1.27.10-r0、v1.28.8-r0、v1.29.4-r0及以上版本的集群中,如果“系统组件存储”选择“系统盘”,则可以不添加默认数据盘。所有数据盘均为普通数据盘,您可以设置数据盘的规格为10GiB-32768GiB之间的数值,缺省值为100GiB。
说明:- 节点规格为“磁盘增强型”或“超高I/O型”时,有一块数据盘可以是本地盘。
- 本地磁盘实例有宕机风险,不保证数据可靠性,建议您使用云硬盘存储您的业务数据。
- 通用型SSD V2支持自定义设置IOPS和吞吐量,设置范围参见云硬盘性能数据表。仅v1.21.15-r0、v1.23.14-r0、v1.25.9-r0、v1.27.6-r0、v1.28.4-r0及以上版本的集群中支持选择使用通用型SSD V2类型的云硬盘。
高级配置
单击后方的“展开高级设置”可进行如下设置:
- 数据盘空间分配:对数据盘上存在的容器引擎、镜像、临时存储等进行空间划分,避免因磁盘空间不足导致业务异常。数据盘空间分配详细说明请参见默认数据盘空间分配说明。
- 数据盘加密:数据盘加密功能可为您的数据提供强大的安全防护,加密磁盘生成的快照及通过这些快照创建的磁盘将自动继承加密功能。“裸金属服务器”类型节点不支持数据盘加密,且仅部分Region支持此选项,具体请以界面为准。
- 默认不加密。
- 选择“加密-从密钥中选择”后,可选择已有的密钥,若没有可选的密钥,请单击后方的链接创建新密钥,完成创建后单击刷新按钮。
- 选择“加密-输入KMS密钥ID”后,您需要输入的KMS密钥ID(包含他人共享的KMS密钥),且该密钥必须位于当前Region下。
增加数据盘
弹性云服务器最多可以添加16块,裸金属服务器最多可以添加10块。默认情况直接创建为裸盘,不做任何处理。您也可以展开高级配置,选择如下配置。
- 默认:默认情况直接创建为裸盘,不做任何处理。
- 挂载到指定目录:将数据盘挂载到指定目录。
- 作为持久存储卷:适用于对PV有性能要求的场景。持久存储卷的节点会添加上node.kubernetes.io/local-storage-persistent标签,取值为linear或striped。
- 作为临时存储卷:适用于对EmptyDir有性能要求的场景。
说明:- 本地持久卷仅在集群版本 >= v1.21.2-r0 时支持,且需要everest插件版本>=2.1.23,推荐使用>=2.1.23版本。
- 本地临时卷仅在集群版本 >= v1.21.2-r0 时支持,且需要everest插件版本>=1.2.29。
网络配置:
配置节点云服务器的网络资源,用于访问节点和容器应用。表3 网络配置参数 参数
参数说明
虚拟私有云/节点子网
节点子网默认使用创建集群时的子网配置,也可以选择其他子网。
节点IP
支持指定节点IP地址。默认随机分配。
弹性公网IP
未绑定弹性公网IP的云服务器无法直接访问外网,无法直接对外进行互相通信。
默认为“暂不使用”。支持“使用已有”和“自动创建”。
高级配置:
节点能力增强,可在此配置节点的标签、污点、启动命令等功能。表4 高级配置参数 参数
参数说明
资源标签
通过为资源添加标签,可以对资源进行自定义标记,实现资源的分类。最多可以添加8条资源标签。
您可以在TMS中创建“预定义标签”,预定义标签对所有支持标签功能的服务资源可见,通过使用预定义标签可以提升标签创建和迁移效率。具体请参见创建预定义标签。
CCE服务会自动帮您创建CCE-Dynamic-Provisioning-Node=节点id的标签。
K8S标签(Labels)
设置附加到Kubernetes对象(比如Pod)上的键值对,填写键值对后,单击“确认添加”。最多可以添加20条标签。
使用该标签可区分不同节点,可结合工作负载的亲和能力实现容器Pod调度到指定节点的功能。详细请参见Labels and Selectors。
K8S污点(Taints)
默认为空。支持给节点加污点来设置反亲和性,每个节点最多配置20条污点,每条污点包含以下3个参数:- Key:必须以字母或数字开头,可以包含字母、数字、连字符、下划线和点,最长63个字符;另外可以使用DNS子域作为前缀。
- Value:必须以字符或数字开头,可以包含字母、数字、连字符、下划线和点,最长63个字符。
- Effect:只可选NoSchedule,PreferNoSchedule或NoExecute。
污点的使用请参见管理节点污点。
说明:对于1.19及以下版本集群,有可能会出现污点打上之前负载已经调度到节点上,如果需要避免这种情况,请选择1.19及以上集群。
最大实例数
节点最大可以正常运行的实例数(Pod),该数量包含系统默认实例,取值范围为16~256。
该设置的目的为防止节点因管理过多实例而负载过重,请根据您的业务需要进行设置。
节点最多能创建多少个Pod还受其他因素影响,具体请参见节点可创建的最大Pod数量说明。
云服务器组
云服务器组是对云服务器的一种逻辑划分,同一云服务器组中的云服务器遵从同一策略。
反亲和性策略:同一云服务器组中的云服务器分散地创建在不同主机上,提高业务的可靠性。
选择已创建的云服务器组,或单击“新建云服务器组”创建,创建完成后单击刷新按钮。
安装前执行脚本
请输入脚本命令,命令中不能包含中文字符。脚本命令会进行Base64转码。
脚本将在Kubernetes软件安装前执行,可能导致Kubernetes软件无法正常安装,需谨慎使用。
安装后执行脚本
请输入脚本命令,命令中不能包含中文字符。脚本命令会进行Base64转码。
脚本将在Kubernetes软件安装后执行,不影响Kubernetes软件安装。
说明:请不要在安装后执行脚本中使用reboot命令立即重启,如果需要重启,可以使用shutdown -r 1命令延迟1分钟重启。
委托
委托是由租户管理员在统一身份认证服务上创建的。通过委托,可以将云主机资源共享给其他账号,或委托更专业的人或团队来代为管理。
如果没有委托请单击右侧“新建委托”创建。
K8s节点名称
K8s节点名称,即节点YAML文件中的“metadata.labels.kubernetes.io/hostname”标签值,支持以下两种配置。- 与节点私有IP保持一致:默认为节点私有IP。
- 与云服务器名称保持一致:将节点配置中配置的自定义云服务器名称作为K8s节点名称。由于云服务器名称可能存在重名,为避免K8s节点名称冲突,系统将在名称后自动添加五位随机字符后缀。
须知:
- 该功能在集群版本为v1.23.4-r0及以上时支持配置。
- 仅支持在创建(纳管)时将节点云服务器名称指定为K8s节点名称。创建(纳管)完成后,K8s节点名称无法修改,详情请参见云服务器名称、节点名称与K8s节点名称说明。
- 如您在创建(纳管)选择将云服务器名称指定为K8s节点名称, 集群已有节点将仍使用私有IP作为K8s节点名称。
该场景下,存在部分K8s节点名称与私有IP不一致的情况,对于业务场景中将私有IP和K8s节点名称混用的场景,需做好适配。例如,在设置节点亲和调度时,不能将节点私有IP作为节点名称配置调度策略。
如您需要将已有节点的K8s节点名称统一为“与云服务器名称保持一致”,您可将已有节点从集群中移除,并重新纳管。执行节点移除、纳管操作前,请您充分了解节点移除及纳管可能带来的业务影响。
- 完成以上配置后,您可以设置需要购买的节点数量,并单击“下一步:规格确认”,确认所设置的服务选型参数、规格和费用等信息,且确认已阅读并知晓华为云的镜像免责声明。
- 单击“提交”,节点开始创建。
若选择购买“包年包月”的节点,请单击“去支付”,根据界面提示进行付款操作。
系统将自动跳转到节点列表页面,待节点状态为“运行中”,表示节点添加成功。添加节点预计需要6-10分钟左右,请耐心等待。
- 单击“返回节点列表”,待状态为运行中,表示节点创建成功。
云服务器名称、节点名称与K8s节点名称说明
- 云服务器名称:ECS页面的云服务器名称,创建节点时支持自定义云服务器名称。
- 节点名称:CCE页面的节点名称,可与ECS页面的云服务器名称同步。但在指定K8s节点名称后,ECS云服务器名称的修改将无法被同步至节点名称。
- K8s节点名称:即节点YAML文件中的“metadata.labels.kubernetes.io/hostname”标签值。仅支持在创建(纳管)时将节点云服务器名称指定为K8s节点名称。创建(纳管)完成后,K8s节点名称无法修改。
云服务器名称、节点名称与K8s节点名称之间的同步关系如图1所示。