您可以通过容器服务管理控制台非常方便地快速创建 Kubernetes 集群。
前提条件
您需要开通容器服务、资源编排(ROS)服务、弹性伸缩(ESS)服务和访问控制(RAM)服务。
登录 容器服务管理控制台、ROS 管理控制台 、 RAM 管理控制台 和 弹性伸缩控制台 开通相应的服务。
说明 容器服务 Kubernetes 集群部署依赖阿里云资源编排 ROS 的应用部署能力,所以创建 Kubernetes 集群前,您需要开通 ROS。
背景信息
创建集群过程中,容器服务会进行如下操作:
- 创建 ECS,配置管理节点到其他节点的 SSH 的公钥登录,通过 CloudInit 安装配置 Kubernetes 集群。
- 创建安全组,该安全组允许 VPC 入方向全部 ICMP 端口的访问。
- 创建 VPC 路由规则。
- 创建 NAT 网关和共享带宽包(或EIP)。
- 创建 RAM 子账号和 AK,该子账号拥有 ECS 的查询、实例创建和删除的权限,添加和删除云盘的权限,SLB 的全部权限,云监控的全部权限,VPC 的全部权限,日志服务的全部权限,NAS
的全部权限。Kubernetes 集群会根据用户部署的配置相应的动态创建 SLB,云盘,VPC路由规则。
- 创建内网 SLB,暴露 6443 端口。
- 给内网SLB挂载EIP,暴露 6443端口(如果您在创建集群的时候选择开放公网 SSH 登录,则会暴露 22 端口;如果您选择不开放公网 SSH 访问,则不会暴露
22 端口)。
集群使用过程中,有如下限制:
- 用户账户需有 100 元的余额并通过实名认证,否则无法创建按量付费的 ECS 实例和负载均衡。
- 随集群一同创建的负载均衡实例只支持按量付费的方式。
- Kubernetes 集群仅支持专有网络 VPC。
- 每个账号默认可以创建的云资源有一定的配额,如果超过配额创建集群会失败。请在创建集群前确认您的配额。如果您需要提高您的配额,请提交工单申请。
- 每个账号默认最多可以创建 5 个集群(所有地域下),每个集群中最多可以添加 40 个节点。如果您需要创建更多的集群或者节点,请提交工单申请。
说明 Kubernetes集群中,VPC默认路由条目不超过48条,意味着Kubernetes集群使用VPC时,默认节点上限是48个,如果需要更大的节点数,需要您先对目标VPC开工单,提高VPC路由条目,再对容器服务提交工单。
- 每个账号默认最多可以创建 100 个安全组。
- 每个账号默认最多可以创建 60 个按量付费的负载均衡实例。
- 每个账号默认最多可以创建 20 个EIP。
- ECS 实例使用限制:
- 仅支持 CentOS 操作系统。
- 支持创建按量付费和包年包月的ECS实例。
操作步骤
- 登录容器服务管理控制台。
- 在 Kubernetes 菜单下,单击左侧导航栏的,进入集群列表页面。
- 单击页面右上角的创建 Kubernetes 集群,在弹出的选择集群模板中,选择标准专有集群页面,单击创建。
默认进入
Kubernetes 集群配置页面。
- 可选: 选择集群所在的资源组。
- 填写集群的名称。
集群名称应包含 1~63 个字符,可包含数字、汉字、英文字符或连字符(-)。
- 选择集群所在的地域。
- 设置集群的网络。Kubernetes 集群仅支持专有网络。
您可以在已有 VPC 列表中选择所需的 VPC。
- 如果您使用的 VPC 中当前已有 NAT 网关,容器服务会使用已有的 NAT 网关。
- 如果 VPC 中没有 NAT 网关,系统会默认自动为您创建一个 NAT 网关。如果您不希望系统自动创建 NAT 网关,可以取消勾选页面下方的为专有网络配置 SNAT。
说明 若选择不自动创建 NAT 网关,您需要自行配置 NAT 网关实现 VPC 安全访问公网环境,或者手动配置 SNAT,否则 VPC 内实例将不能正常访问公网,会导致集群创建失败。
- 设置虚拟交换机。
您可以在已有 vswitch 列表中,根据
可用区选择1~3个交换机 。如果没有您需要的交换机,可以通过单击
创建虚拟交换机进行创建,请参见创建交换机。

- 设置节点类型,容器服务支持按量付费和包年包月两种节点类型。
- 设置 Master 节点的配置信息。
您需要选择 Master 节点的实例规格。
说明
- 目前支持 CentOS、Windows 操作系统。
- 目前支持创建 3 个或者5个 Master 节点。
- 默认为Master节点挂载系统盘,支持SSD云盘和高效云盘。
- 设置 Worker 节点的配置信息。您可选择新增实例或添加已有实例。
- 若您选择新增实例,则需要进行如下配置。
- 实例规格:支持选择多个实例规格。参见实例规格族。
- 已选规格:选中的规格呈现在这里。
- 数量:新增 Worker 实例的数量。
- 系统盘:支持 SSD 云盘和高效云盘。
- 挂载数据盘:支持 SSD 云盘、高效云盘和普通云盘。
- 若您选择添加已有实例,则需要预先在此地域下创建 ECS 云服务器。
- 显示容器运行时和Kubernetes版本,您可根据需要选择Kubernetes版本。

- 配置登录方式。
- 设置密钥。
您需要在创建集群的时候选择密钥对登录方式,单击
新建密钥对,跳转到ECS云服务器控制台,创建密钥对,参见创建SSH密钥对。密钥对创建完毕后,设置该密钥对作为登录集群的凭据。
- 设置密码。
- 登录密码:设置节点的登录密码。
- 确认密码:确认设置的节点登录密码。
- 设置启用的网络插件和插件配置,支持Flannel和Terway网络插件,具体可参见如何选择Kubernetes集群网络插件:Terway和Flannel。
- Flannel:简单稳定的社区的Flannel CNI插件。但功能偏简单,支持的特性少,例如:不支持基于Kubernetes标准的Network Policy。
指定Flannel网络插件需要配置Pod网络CIDR,网段不能和VPC及VPC已有Kubernetes集群使用的网段重复,创建成功后不能修改。而且Service地址段不能和Pod地址段重复,有关kubernetes网络地址段规划的信息,请参见VPC下 Kubernetes 的网络地址段规划。

- Terway:阿里云容器服务自研的网络插件,将阿里云的弹性网卡分配给容器,支持Kubernetes的Network Policy来定义容器间的访问策略,支持对单个容器做带宽的限流。
选择
Terway模式,设置是否勾选
Pod 独占弹性网卡以获得最佳性能。
- 如果勾选,Pod将独占一个专有的弹性网卡。
- 如果不勾选,使用弹性网卡的辅助IP分配给Pod,一个Pod占用一个弹性网卡辅助IP地址。
在这两种模式下,节点上可以运行的Pod数均受节点的弹性网卡和辅助IP的配额限制。
指定Terway网络插件需要配置Pod的vswitch,由于Pod的弹性网卡需要和所在的机器在同一个可用区,所以需要为上面所选的集群节点的vswitch相对应可用区的Pod的另一个vswitch,集群运行时Pod的IP地址将会从所选择的vswitch中分配,为了保障Pod可用数量,建议选择掩码不大于19的vswitch。

- 设置Service CIDR。
您需要指定
Service CIDR,网段不能与 VPC 及 VPC 内已有 Kubernetes 集群使用的网段重复,创建成功后不能修改。而且 Service 地址段也不能和 Pod 地址段重复,有关
kubernetes 网络地址段规划的信息,请参见VPC下 Kubernetes 的网络地址段规划。

- 设置是否为专有网络配置 SNAT 网关。
说明 若不勾选为专有网络配置 SNAT ,您需要自行配置NAT 网关实现 VPC 安全访问公网环境;或者手动配置 SNAT,否则 VPC 内实例将不能正常访问公网,会导致集群创建失败。
- 设置是否开放使用 EIP 暴露 API Server。
API Server提供了各类资源对象(Pod,Service等)的增删改查及watch等HTTP Rest接口。
- 如果选择开放,会创建一个 EIP,并挂载到内网 SLB 上。此时,Master 节点的6443端口(对应API Server)暴露出来,用户可以在外网通过kubeconfig
连接/操作集群。
- 如果选择不开放,则不会创建 EIP,用户只能在 VPC 内部用 kubeconfig 连接/操作集群。
- 设置是否开放公网 SSH 登录。
说明 您需要开放使用 EIP 暴露 API Server,才能设置公网SSH登录。
- 选择开放公网 SSH 登录,您可以 SSH 访问集群。
- 选择不开放公网 SSH 登录,将无法通过 SSH 访问集群,也无法通过 kubectl 连接集群。如果您需要通过 SSH 访问集群实例,可以手动为 ECS 实例绑定
EIP,并配置安全组规则,开放 SSH(22)端口,具体操作参见SSH访问Kubernetes集群。
- 设置是否启用云监控插件。
您可以选择在 ECS 节点上安装云监控插件,从而在云监控控制台查看所创建 ECS 实例的监控信息。
- 设置是否安装 Ingress 组件。
默认勾选
安装 Ingress 组件 ,请参见Ingress 支持。
说明 如果您勾选创建 Ingress Dashboard,则需要同步安装日志服务组件。
- 设置是否启用日志服务,您可使用已有Project或新建一个Project。
勾选
使用日志服务,会在集群中自动配置日志服务插件。创建应用时,您可通过简单配置,快速使用日志服务,详情参见使用日志服务进行Kubernetes日志采集。

- 设置存储插件,支持Flexvolume和CSI。
Kubernetes集群通过Pod可自动绑定阿里云云盘、NAS、 OSS 存储服务。请参见存储管理-Flexvolume和存储管理-CSI。
- 设置RDS白名单。
将节点 IP 添加到 RDS 实例的白名单。

- 设置是否启用实例保护。
说明 为防止通过控制台或 API 误删除释放集群节点,默认启用实例保护。
- 为集群绑定标签。
输入键和对应的值,单击添加。

说明
- 键是必需的,而 值 是可选的,可以不填写。
- 键 不能是 aliyun、http:// 、https:// 开头的字符串,不区分大小写,最多 64 个字符。
- 值 不能是 http:// 或 https://,可以为空,不区分大小写,最多 128 个字符。
- 同一个资源,标签键不能重复,相同标签键(Key)的标签会被覆盖。
- 如果一个资源已经绑定了 20 个标签,已有标签和新建标签会失效,您需要解绑部分标签后才能再绑定新的标签。
- 是否启用高级选项。
- 在网络模式为 Flannel 时,通过设置节点 Pod 数量,是指单个节点可运行 Pod 数量的上限,建议保持默认值。
- 设置安全组。
单击
请选择安全组,在弹出的页面选中目标安全组,单击
确定。
详细内容请参见安全组概述。
- 设置 kube-proxy 代理模式,支持 iptables 和 IPVS 两种模式。
- iptables:成熟稳定的 kube-proxy 代理模式,Kubernetes service 的服务发现和负载均衡使用 iptables 规则配置,但性能一般,受规模影响较大,适用于集群存在少量的
service。
- IPVS:高性能的 kube-proxy 代理模式,Kubernetes service 的服务发现和负载均衡使用 Linux ipvs 模块进行配置,适用于集群存在大量的
service,对负载均衡有高性能要求的场景。
- 是否开启自定义节点名称。
节点名称由前缀 + 节点 IP 地址子串 + 后缀三部分组成:
- 前缀和后缀均可由
.
分隔的一个或多个部分构成,每个部分可以使用小写字母、数字和-
,且首尾必须为小写字母和数字。
- IP 地址段长度指截取节点 IP 地址末尾的位数,取值范围 5-12。
例如:节点 IP 地址为192.168.0.55
,指定前缀为 aliyun.com
,IP 地址段长度为 5,后缀为 test,则节点名称为aliyun.com00055test
。
- 设置节点服务端口范围。
默认端口范围为 30000~32767。

- 设置 CPU policy。
- none:默认策略,表示启用现有的默认 CPU 亲和方案。
- static:允许为节点上具有某些资源特征的 Pod 赋予增强的 CPU 亲和性和独占性。
- 是否配置集群本地域名。
默认域名为 cluster.local,可自定义域名。
域名由两段组成,每段不超过 63 个字符,且只能使用大小写字母和数字,不能为空。
- 设置是否使用自定义集群CA。如果勾选自定义集群 CA,可以将 CA 证书添加到 Kubernetes 集群中,加强服务端和客户端之间信息交互的安全性。
- 设置是否使用AGS。
- 如果勾选 AGS,则创建集群时系统自动安装 AGS 工作流插件。
- 如果不勾选,则需要手动安装 AGS 工作流插件,请参见AGS命令行帮助。
- 单击创建集群,在弹出的当前配置确认页面,单击创建,启动部署。
说明 一个包含多节点的 Kubernetes 集群的创建时间一般需要十几分钟。
执行结果
集群创建成功后,您可以在容器服务管理控制台的 Kubernetes 集群列表页面查看所创建的集群。
- 您可以单击操作列的查看日志,进入集群日志信息页面查看集群的日志信息。 您也可以在集群日志信息页面中,单击资源栈事件查看更详细的信息。
- 在集群列表中,找到刚创建的集群,单击操作列中的管理,查看集群的基本信息和连接信息。
其中:
- API Server 公网连接端点:Kubernetes 的 API server 对公网提供服务的地址和端口,可以通过此服务在用户终端使用 kubectl 等工具管理集群。
- API Server 内网连接端点:Kubernetes 的 API server 对集群内部提供服务的地址和端口。此 IP 为负载均衡的地址,后端有 3 台 Master 提供服务。
- Pod 网络 CIDR:每个 Pod 的 IP 地址段。创建成功后不能修改,且 Service 地址段也不能和 Pod 地址段重复。
- Service CIDR:Service 的 IP 地址段。创建成功后不能修改,且 Service 地址段也不能和 Pod 地址段重复。
- Master 节点 SSH 连接地址:可以直接通过 SSH 登录到 Master 节点,以便对集群进行日常维护。
- 测试域名:为集群中的服务提供测试用的访问域名。测试域名后缀是
<cluster_id>.<region_id>.alicontainer.com
。
- kube-proxy 代理模式:Kubernetes service 的服务发现和负载均衡需要通过服务代理进行配置,支持iptables和IPVS两种模式。
- 节点 Pod 数量:单个节点可运行 Pod 数量的上限,默认值为 128。
例如,您可以通过 kubectl 连接 Kubernetes 集群,执行
kubectl get node
查看集群的节点信息。
可以发现,一共有 10 个节点,包括 5 个 Master 节点和我们在参数设置步骤填写的 5 个 Worker 节点。