创建ACK托管集群
创建ACK托管集群时,您只需配置Worker节点,Master节点由阿里云容器服务创建并托管,降低运维成本,让您更聚焦于业务应用。本文介绍如何通过控制台、API、Terraform、SDK以及CLI等方式创建ACK托管集群。
在开始创建ACK集群之前,建议您已了解Kubernetes基础知识、容器服务ACK、ACK托管集群等基础信息。
如果您是首次使用ACK托管集群,可参见通过ACK快速搭建魔方游戏应用开始新手入门体验。体验结束后请及时释放资源,避免产生预期外费用。
规划与设计
创建集群前,请根据业务需求规划并设计集群,以确保集群能够稳定、高效且安全地运行。大多数配置项在集群创建后仍可调整,但部分配置项创建后不支持更改,尤其是集群可用性、集群网络相关的配置。规划时,请确保已考虑以下因素。
分类 | 说明 |
部署位置 |
|
版本和规格 |
|
网络规划 |
|
准备工作
创建集群前,请确保您已经开通容器服务ACK、为您的阿里云账号或RAM账号授予了ACK系统服务角色(ACK需要这些权限来调用相关服务或执行集群操作),并且开通了相关云产品(例如VPC、负载均衡、NAT网关等)。具体操作,请参见快速创建ACK托管集群。
创建集群过程中涉及负载均衡CLB等按量资源的购买,请确保您的账户余额充足,避免因为欠费导致停机。
创建集群
ACK支持通过控制台、API、SDK、Terraform以及CLI方式创建集群。
控制台
API
Terraform
SDK
CLI
后续操作
应用部署:创建并管理工作负载,包括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集群中跨域拉取海外源容器镜像,请参见使用全球加速(GA)实例跨域加速拉取容器镜像。
如有任何产品建议或疑问,请联系我们。