注意:以下文档只适用于TOP接口,请谨慎使用!

文档中心 > 容器服务

创建集群

更新时间:2025/02/13 访问次数:25905

一、写在前面

集群成功创建后,会默认创建如下云资源:

  1. 一个内网 SLB ManagedK8SSlbIntranet-XXX(用途:访问集群 API Server)
  2. 一个 ECS 集群安全组 sg-XXX(名称为:alicloud-cs-auto-created-security-group-XXX;用于集群 API Server 访问 ECS ,以及集群内 ECS 网络出入控制)

注意:删除 SLB,将导致该集群彻底不可用;修改集群安全组,将导致集群无法正常部署及 ECS 无法内网互通。

创建入口:聚石塔-控制台-运维中心

二、创建集群

集群配置

设置集群名称、选择region、专有网络和虚拟交换机;专有网络选择目前ECS集群所在的VPC。

注意:

  1. 设置 Pod 和 Service 的CIDR网段,如果是首次创建,就按照默认值不需要改动,直接点击“完成”。
  2. 如果是创建第二个集群,可以把这里相应的改下,原则就是这里设置的网段不能与 VPC 以及之前创建的网段冲突;比如可以设置成172.22.0.0/16,172.23.0.0/20。
  3. 如果点击“完成”仍然报 CIDR 相关问题,请到答疑群或右上角提交工单反馈;

集群 RAM 授权

  1. 集群创建需要开通相关服务,如果未开通,请依次点击右侧“RAM授权”进行授权,点击下方“刷新”按钮进行查看。
  2. 集群创建会创建相关云产品,也列在下方了。

集群初始化

集群创建成功之后,初始化大概需要10-15分钟,请耐心等待,在集群列表页可以观察集群运行状态的变化。集群运行状态会由 集群不可用 -> running。running 状态说明集群最终状态正常,可以发布部署了。

三、创建节点池

集群初始化需要 10-15 分钟;之后需先创建节点池,再添加 ECS 节点才能用于容器部署。

注意:

  1. 节点池创建时所选的 ECS 实例规格,是配置属性,不会直接扣费购买!
  2. 节点池创建失败报错,请查看集群日志;如报错信息自行无法判断解决,携带信息提交工单。
  3. 节点池是具有相同属性的一组节点的逻辑集合,允许对节点进行统一的管理和运维,例如节点升级、弹性伸缩等。创建 ACK Pro 版可以进一步使用节点池的自动化运维能力,使用 OS CVE 漏洞自动修复、故障节点自动恢复、kubelet 和 containerd 版本自动升级等功能,降低运维成本。

四、添加 ECS

向集群添加 ECS 有两种方式:

  1. 已购买 ECS ,选择添加已有节点 ;请选择空闲的或者新购的 ECS 机器,不要选择已部署服务或者带有数据的服务器,ECS 添加进集群时,ECS 会被重新初始化更换操作系统及系统盘。

  1. 扩容节点池;将使用上文创建节点池时所填写的规格和系统,自动购买生产出 ECS。

注意:

  1. 添加已有节点,只能选择当前集群 VPC 下的,如果历史上使用过聚石塔应用-虚拟机应用(已下线) ,ECS 之前被关联到了聚石塔应用,则无法加入集群,请先解除关联(确保机器可以添加到集群,因为系统盘会有一次被重置的操作)。
  2. 添加节点报错,请先看文档下面的常见问题自行排查,仍有问题请提工单反馈。


1.关于网络插件


目前Kubernetes集群默认只提供Terway网络插件


2.关于配置SNAT


1)创建集群时如果勾选“配置SNAT”,且VPC网络内不存在NAT网关,则会创建如下资源:一个后付费的NAT网;一个后付费的弹性公网IP;

2)创建集群时不勾选“配置SNAT”。

如果VPC本身没有手动配置过SNAT,则创建集群会提示失败;

如果VPC本身已经有了SNAT,则可以复用原来的,集群可以成功创建。


五、集群详情

1. 基本信息

集群工作负载代表 Pod 分配的资源水位,不代表实际 Pod 资源使用水位。

2. 节点列表

六、常见问题

创建集群,RAM 授权失败

可能是系统脏数据导致,请在提交工单反馈。

创建集群报错,提示类似 CIDR 网段冲突

首先找到集群使用的VPC的网段,保证Pod以及Service的网段不和VPC网段冲突。

比如VPC网段为192.****,那完全可以设置Pod的Service的网段以172开头的,网页上有提示设置的网段规则,比如分别设置为172.20.0.0/16,172.21.0.0/20。

如果之前创建过集群,那么查看这个集群已经设置好的Pod的Service的网段,然后相应的增加就好,比如分别设置

172.22.0.0/16,172.23.0.0/20。

创建集群成功后,状态为 running,为什么看不到节点?

需创建节点池,添加已有节点或扩容节点池。

添加已有节点报错,“InstanceSecurityGroupLimitExceeded”

所选ECS已经加入了5个安全组,阿里云限制每台ECS最多加入5个安全组,加入集群需要加入另一个安全组。

解决办法,将ECS退出其他安全组,保证加入的安全组数量<=4。

添加ECS时提示?VPC RouteEntry over quota

VPC路由表超限,找到创建集群使用的VPC,提交阿里云工单,申请一下该VPC下的路由表quota。

添加 ECS 时,看不到想要选的机器?

首先,确认下ECS是否和集群的VPC属于同一个。

其次,确认下ECS是否已经关联到聚石塔的应用,关联了应用的机器原则上不能添加进集群(机器会被重置)。

两台4C8G的机器,能部署几个2C4G的实例?

首先,每台ECS交付到手后,内存会有500-1000M左右折损,8G的机器实际最大容量只有7.5G(7500M)左右;

其次,每台接入到集群后的ECS,会预留额外的800M内存,给集群内部组件以及除开集群外的其他进程使用(这个是为了保证集群中每个节点的稳定性);

再次,每台接入到集群后的ECS,会启用集群节点相关组件,占用 0.35C+100M内存;

最后,集群各个核心组件,一共还需要占用1C + 1000M资源,这些资源量会随机地占用集群内机器的资源。


总之,对于N台ECS的集群来说,

不可调度CPU = N*0.35C + 1C

不可调度内存 = N*500M(折损)+ N* 800M(系统预留)+??N*100M(系统proxy组件占用) + 1000M(集群其他组件)


当N=2时,不可调度cpu=1.7c,不可调度内存=4G

资源限制主要在于内存,平均每台机器上可调度的内存大约为6G,极端情况下如果集群各个核心组件都部署在一台ECS上,此时两台机器上可调度内存可能分别为 4.2G,5.8G。

所以两台机器的集群可以部署两个2C4G的容器实例;2C5G的实例至少能部署起来一个;2C6G的实例无法部署。

每台4c8G的机器,只能部署一个2C4G的容器。为什么会有这么多浪费?

如上面一个问题中所述,集群管理ECS,实际可以调度的资源可以认为要比购买规格少2G左右,比如购买4C8G的机器,可以用来部署容器的大约3C 6G(如果你只有一两台机器,可能连一个3C 6G的机器也部署不起来,集群规模太小,可能这台机器被占用了很多资源来运行集群核心组件)。另外,为了稳定性,集群要保证资源水位健康,集群中的机器也不建议跑满。

  1. 建议买更大规格的机器;10台4C8G的机器,不如买5台 8C16G;
  2. 建议增加节点数量,节点越多,集群自身占用的资源就可以忽略不计,其他的资源都可以被集群调度了;
  3. 建议增加集群中的实例规格类型,大小搭配,可以将集群可调度的资源发挥到最大。

FAQ

关于此文档暂时还没有FAQ
返回
顶部