创建ACK托管集群
创建ACK托管集群时,您只需配置Worker节点,Master节点由阿里云容器服务创建并托管,降低运维成本,让您更聚焦于业务应用。本文介绍如何通过容器服务控制台创建ACK托管集群。
在开始创建ACK集群之前,建议您已了解Kubernetes基础知识、容器服务ACK、ACK托管集群等基础信息。
如果您是首次使用ACK托管集群,可参见通过ACK快速搭建魔方游戏应用开始新手入门体验。体验结束后请及时释放资源,避免产生预期外费用。
规划与设计
创建集群前,请根据业务需求规划并设计集群,以确保集群能够稳定、高效且安全地运行。大多数配置项在集群创建后仍可调整,但部分配置项创建后不支持更改,尤其是集群可用性、集群网络相关的配置。规划时,请确保已考虑以下因素。
分类 | 说明 |
部署位置 |
|
版本和规格 |
|
网络规划 |
|
创建流程
本文介绍如何在控制台创建集群。ACK也支持通过OpenAPI创建、通过CLI创建、通过Terraform创建。
如需使用RAM用户在控制台创建集群,需配置对应的权限后才能正常使用,请参见容器服务控制台权限依赖完成精细化授权。
您可以参见控制台指引,基于ACK默认的集群配置创建一个集群。如果您想更细粒度地控制集群配置,请参见ACK托管集群配置项说明了解并启用对应配置项。下文介绍流程概览。
步骤一:完成准备工作,进入创建页面
创建集群前,请确保您已经开通容器服务ACK、为您的阿里云账号或RAM账号授予了ACK系统服务角色(ACK需要这些权限来调用相关服务或执行集群操作),并且开通了相关云产品(例如VPC、负载均衡、NAT网关等)。具体操作,请参见快速创建ACK托管集群。
您的账户中至少需保有100元,否则无法创建按量付费的资源。
登录容器服务管理控制台,在左侧导航栏选择集群列表。
在集群列表页面,单击创建集群。在ACK 托管集群页面,按照页面指引完成集群配置、节点池配置、组件配置。
步骤二:配置集群
配置类型 | 说明 | 示例样式 |
基础配置 | 集群的基础信息,包括名称、规格、地域、版本等。支持启用集群版本自动升级,并配置计划执行的维护窗口。 | |
网络配置 | IPv6双栈开关、VPC和vSwitch配置、是否允许通过公网访问API Server、安全组、网络插件、网段配置等。 | |
高级配置 | 集群资源管理、集群安全相关的配置。 |
详细配置项说明,请参见集群配置。
步骤三:配置节点池
节点池用于对节点进行分组管理,是具有相同属性的一组节点的逻辑集合,本身不计费。简单来说,节点池类似于一个配置模板,后续节点池中扩容出的节点都将使用该模板配置。您在本步骤配置的节点池会作为集群的默认节点池。
如需跳过节点创建,或在集群创建后再将已购买的ECS实例添加到集群中,可在配置过程中将期望节点数配置为0,即集群中的实例数量为0,并完成其他必选项的配置。
您也可以在集群创建后参见创建和管理节点池创建更多节点池,实现不同类型(例如操作系统、CPU架构、计费类型、实例类型等)节点的混部和隔离。
配置类型 | 说明 | 示例样式 |
基础配置 | 节点的基础信息,包括名称、运行时。支持启用自动化运维能力。 | |
实例和镜像配置 | 节点的付费类型、使用的实例规格(推荐选择多个)、操作系统等。 | |
存储配置 | 节点使用的系统盘(安装和运行操作系统)和数据盘(持久化存储业务数据)。 | |
实例数量配置 | 节点池期望维持的实例数量。 | |
高级配置 | ECS标签、节点标签、污点等进阶配置。 |
详细配置项说明,请参见节点池配置。
步骤四:配置组件
为进一步拓展集群功能,除系统组件外,ACK还提供多种类型的功能组件,提供集群网络、可观测性、成本优化等功能。
ACK基于最佳实践为您默认安装了一些组件。您可以在此步骤中查看并确认,也可以在集群创建后进行安装、卸载、升级等操作,请参见管理组件。
配置类型 | 说明 | 示例样式 |
基础组件 | 网络、存储、可观测组件。 | |
更多组件 | 应用管理、日志监控、存储等场景下的组件。 |
详细配置项说明,请参见组件配置。
步骤五:确认配置和计费信息
在确认配置页面,确认集群的配置信息,包括功能配置、资源计费、云产品依赖检查等,并阅读服务协议。
ACK托管集群涉及集群管理费用(仅Pro版收取)和云产品费用。您可以在创建页面下方查看集群涉及的费用总览,也可以查看ACK和各产品的计费文档,请参见计费概述、云产品资源费用。
后续操作
应用部署:创建并管理工作负载,包括Deployment、StatefulSet、Job等,请参见创建工作负载。
服务发现与网络管理
可观测配置:实现集群日志收集和监控告警,便于集群诊断和状态观测。请参见可观测性了解ACK在基础设施、容器、工作负载等维度提供的可观测方案。
存储:基于CSI插件实现应用数据持久化存储、敏感和配置数据存储、存储资源动态供应等存储需求。
弹性伸缩配置:如业务资源需求不易预测或有周期性变化(例如Web应用、游戏服务、在线教育等),推荐启用弹性伸缩,包括工作负载伸缩(HPA、CronHPA、VPA等)和计算资源伸缩(节点自动伸缩、节点即时弹性等)。
精细化授权
如需对基础资源层(ACK依赖的云产品)和集群内部资源(Kubernetes资源对象)进行更细粒度的权限控制,ACK提供基于阿里云RAM和Kubernetes原生RBAC机制的多种权限管理方案,请参见授权。
配额与限制
如集群规模较大或账号资源较多,请遵循使用ACK集群时涉及的配额与限制。详细信息,请参见配额与限制。
使用限制:包括ACK配置限制(例如账号余额等)和单集群容量限制(单集群内不同Kubernetes资源的最大容量)。
配额限制与提升方式:ACK集群配额限制和ACK依赖云产品(例如ECS、VPC等)的配额限制。如需提升配额,请参见文档获取提升方式。
常见问题
如在使用ACK集群的过程中遇到问题,可参见故障排除、常见问题进行自排查。
可以创建一个0节点的集群吗?
可以。如需跳过节点创建,或在集群创建后再将已购买的ECS实例添加到集群中,可在配置过程中将期望节点数配置为0,即配置集群中的实例数量为0,并完成其他必选项的配置,后续再参见创建和管理节点池完成节点池的配置更新或新建更多节点池。如需将已购买的ECS实例添加到集群,请参见添加已有节点。
已购买的ECS实例如何添加到集群中?
ACK支持将已有ECS实例手动或自动添加到节点池中。自动添加的方式会根据节点池当前的操作系统替换该ECS实例原有的操作系统,原系统盘会被释放。如需保留ECS实例操作系统,请选择手动添加的方式。相关注意事项及操作步骤,请参见添加已有节点。
建议待添加ECS实例与待加入的节点池具有相同或类似配置(例如付费类型、磁盘配置、实例规格等),便于后续节点的统一管理。
已购买的按量付费的ECS实例可以添加到包年包月的节点池中吗?
可以,您可以参见添加已有节点完成操作。但当节点池付费类型为包年包月时,后续节点池扩容出的节点均为包年包月类型。建议您创建不同的节点池,纳管不同类型(例如付费类型、磁盘配置、实例规格等)的节点。具体操作,请参见创建和管理节点池。
为什么刚创建好的集群就提示Pod数量不足?
可能是以下原因。
组件占用:集群组件会以Pod的形式存在,占用节点资源。部分组件可能会采用多副本形式。如果您创建集群配置组件时启用的功能较多,可能会占用节点较多的Pod数量。
实例规格较小:Terway模式下,单节点支持的最大Pod数依赖于ECS实例规格族所提供的弹性网卡(ENI)数量。虽然节点支持的最大Pod数跟CPU和内存并不是直接的线性关系,但通常较小规格的ECS实例支持的ENI数量较少,单节点的Pod限额也较小。
当节点Pod数量达到上限时,新Pod将调度失败,影响服务性能。您可以通过扩容节点池以增加更多可用的节点、升配节点以提升单节点最大Pod数等方式增加可使用的Pod数,请参见调整可使用的节点Pod数量。
购买后查看节点可用的CPU和内存资源,为什么比购买时的实例规格定义的少?
ACK需要占用一定的节点资源来为kube组件和system进程预留资源,从而保证OS内核和系统服务、Kubernetes守护进程的正常运行。这会导致节点的资源总数(Capacity)与可分配的资源数(Allocatable)之间存在差异。详细信息,请参见节点资源预留策略。
相关文档
使用ACK集群过程中,操作不当可能会导致业务故障,请参见使用须知及高危风险操作说明。
关于如何连接集群,请参见获取集群KubeConfig并通过kubectl工具连接集群。
如需在ACK集群中跨域拉取海外源容器镜像,请参见跨域加速拉取容器镜像。
如有任何产品建议或疑问,请联系我们。