创建Kubernetes专有版集群

Kubernetes专有版集群需要创建至少3个Master节点以保证高可用性,以及若干Worker节点,可对集群基础设施进行更细粒度的控制,但需要自行规划、维护、升级集群。本文介绍如何通过容器服务管理控制台创建Kubernetes专有版集群。

前提条件

登录RAM管理控制台弹性伸缩控制台开通相应的服务。

说明

您在使用集群过程中,请注意以下限制:

  • 用户账户至少需要有100元的余额并通过实名认证,否则无法创建按量付费的ECS实例和负载均衡。
  • ACK集群仅支持专有网络VPC。
  • 每个账号默认可以创建的云资源有一定的配额,如果超过配额创建集群会失败。关于具体配额信息,请参见配额限制
    • 每个账户初始默认状况下VPC路由条目不超过200条,当ACK集群的网络模式是Flannel时,集群的路由条目最大不能超过200个(网络模式是Terway则不受该影响)。如集群需要更多路由条目数,您需要对目标VPC申请提高配额 。
    • 每个账号默认最多可以创建100个安全组。
    • 每个账号默认最多可以创建60个按量付费的负载均衡实例。
    • 每个账号默认最多可以创建20个EIP。
  • ECS实例使用限制:

    支持创建按量付费和包年包月的ECS实例。

    实例创建后,您可以通过ECS管理控制台将按量付费转预付费,请参见按量付费转包年包月

背景信息

关于产品计费的更多信息,请参见产品计费

操作步骤

  1. 登录容器服务管理控制台
  2. 在控制台左侧导航栏,单击集群
  3. 集群列表页面,单击页面右上角的创建集群
  4. 单击ACK专有版页签,然后完成集群配置。

    1. 完成集群基础选项配置。

      配置项

      描述

      集群名称

      填写集群的名称。
      说明 集群名称应包含1~63个字符,可包含数字、汉字、英文字符、短划线(-)或下划线(_),且不能以下划线(_)开头。

      地域

      选择集群所在的地域。

      付费类型

      容器服务Kubernetes版支持按量付费包年包月两种付费类型。选择包年包月时,需设置以下参数。
      说明 设置付费类型包年包月时,仅ECS云服务器和SLB负载均衡按照包年包月的方式计费,其他云资源仍然按照按量付费的方式付费。关于云资源的详细介绍,请参见云产品资源计费
      • 购买时长:目前支持选择1、2、3、6个月和1~3年。
      • 自动续费:设置是否自动续费。

      账号全部资源

      将鼠标悬浮于页面上方的账号全部资源,选择资源组。在控制台页面顶部选择的资源组可过滤出该资源组内的专有网络及对应的虚拟交换机。在创建集群时,只显示过滤的专有网络实例及专有网络对应的虚拟交换机实例。资源组

      Kubernetes 版本

      显示当前ACK支持的Kubernetes版本。

      容器运行时

      根据Kubernetes 版本选择容器运行时
      • 1.24版本以下支持containerddocker安全沙箱
      • 1.24版本及以上支持containerd安全沙箱
      更多信息,请参见如何选择Docker运行时、Containerd运行时、或者安全沙箱运行时?

      IPv6双栈

      开启IPv6双栈将创建双栈Kubernetes集群。双栈功能正在公测中,如需使用请前往配额平台申请。

      说明
      • 仅1.22及以上版本的Kubernetes集群支持IPv6双栈功能。

      • 集群内部Worker和Master节点之间通信使用IPv4地址。

      • 容器网络插件需选择Terway。

      • 集群使用的VPC及ECS需要支持IPv6双栈。

      专有网络

      设置集群的网络,您可以选择普通VPC和共享VPC。
      • 共享VPC:VPC的所有者账号(资源所有者)可以将其账号下的VPC内的交换机资源共享给其组织内的其他账号使用。
      • 普通VPC:不具备共享功能的VPC。
      说明 Kubernetes集群仅支持专有网络。您可以在已有VPC列表中选择所需的VPC。如果没有您需要的专有网络,可以通过单击创建专有网络进行创建,请参见创建和管理专有网络

      虚拟交换机

      设置虚拟交换机。

      您可以在已有虚拟交换机列表中,根据可用区选择交换机。如果没有您需要的交换机,可以通过单击创建虚拟交换机进行创建,请参见创建和管理交换机

      网络插件

      设置启用的网络插件和插件配置,支持Flannel和Terway网络插件。详细信息,请参见Terway与Flannel对比
      • Flannel:简单稳定的社区的Flannel CNI插件。但功能偏简单,支持的特性少,例如:不支持基于Kubernetes标准的NetworkPolicy。
      • Terway:阿里云容器服务自研的网络插件,将阿里云的弹性网卡分配给容器,支持Kubernetes的NetworkPolicy来定义容器间的访问策略,支持对单个容器做带宽的限流。
        说明
        • 在Terway模式下,节点上可以运行的Pod数均受节点的弹性网卡和辅助IP的配额限制。
        • 当专有网络选择共享VPC时,网络插件仅支持Terway。
        • 网络插件选择Terway时,会使用弹性网卡的辅助IP分配给Pod,一个Pod占用一个弹性网卡辅助IP地址。
        设置网络插件Terway时,还可以配置以下参数:
        • 设置是否选中Pod独占弹性网卡以获得最佳性能。如需使用Pod独占弹性网卡以获得最佳性能功能,请前往配额平台提交申请。
          • 如果选中,Pod将独占一个专有的弹性网卡。
            说明 启用Pod独占弹性网卡以获得最佳性能功能后,一个节点上能运行的Pod数量将减少,请谨慎选择。
          • 如果不选中,使用弹性网卡的辅助IP分配给Pod,一个Pod占用一个弹性网卡辅助IP地址。
        • 设置是否选中IPvlan
          • 只在弹性网卡共享模式支持选中。
          • 如果选中,采用IPvlan eBPF作为网卡共享模式虚拟化技术,并且只能使用Alibaba Cloud Linux系统,性能优于默认模式。
          • 如果不选中,则使用默认模式,采用策略路由作为网卡共享模式虚拟化技术,同时兼容Centos 7和Alibaba Cloud Linux的系统。

          关于Terway模式的IPvlan模式的详细信息,请参见Terway IPvlan模式

        • 设置是否选中NetworkPolicy 支持
          • 只在弹性网卡共享模式下支持选中,默认不选中。
          • 如果选中,集群支持使用Kubernetes的NetworkPolicy策略对Pod进行网络控制。
          • 如果不选中,集群将不会支持使用Kubernetes的NetworkPolicy策略对Pod进行网络控制,这样将不存在网络策略对Kubernetes的API Server产生过大的负载。
        • 设置是否选中Trunk ENI 支持。如需使用Trunk ENI 支持,请前往配额平台提交申请。Terway Trunk ENI支持为每个Pod配置固定IP、独立的虚拟交换机、安全组,提供精细化流量管理、流量隔离、网络策略配置和IP管理能力。更多信息,请参见为Pod配置固定IP及独立虚拟交换机、安全组

      Pod 虚拟交换机

      网络插件选择Terway时,您需要为Pod分配IP的虚拟交换机。每个Pod虚拟交换机分别对应一个Worker实例的虚拟交换机,Pod虚拟交换机和Worker实例的虚拟交换机的可用区需一致。

      节点 Pod 数量

      如果您选择的网络模式为Flannel,您需设置节点 Pod 数量

      Pod 网络 CIDR

      网络插件选择Flannel时,需要配置Pod 网络 CIDR

      Flannel网络插件需要配置Pod网络CIDR,网段不能和VPC及VPC已有Kubernetes集群使用的网段重复,创建成功后不能修改,而且Service地址段不能和Pod地址段重复。有关Kubernetes网络地址段规划的信息,请参见Kubernetes集群网络规划

      Service CIDR

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

      IPv6 Service CIDR

      开启IPv6双栈后,您需要为Service CIDR配置IPv6地址段。配置网段时,请注意:
      • 必须使用ULA地址,地址段范围在fc00::/7内,且地址前缀长度在112~120之间。
      • 推荐和Service CIDR保持相同的可用地址数量。
      关于Kubernetes网络地址段规划的信息,请参见Kubernetes集群网络规划

      配置 SNAT

      创建集群时,默认不开通公网。如果您选择的VPC不具备公网访问能力,选中为专有网络配置SNAT后,ACK将为您创建NAT网关并自动配置SNAT规则。

      API Server 访问

      ACK默认为API Server创建一个内网SLB实例,您可修改SLB实例规格。更多信息,请参见实例规格
      重要 删除默认创建的SLB实例将会导致无法访问API Server。
      您可设置是否开放使用 EIP 暴露API Server。API Server提供了各类资源对象(Pod,Service等)的增删改查及Watch等HTTP Rest接口。
      • 如果选择开放,ACK会创建一个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连接ACK专有版集群的Master节点

      安全组

      支持选择自动创建普通安全组自动创建企业级安全组选择已有安全组。有关安全组的详细内容,请参见安全组概述
      说明
      • 只有白名单用户可以使用选择已有安全组功能,请前往配额平台申请。
      • 指定已有安全组时,系统默认不会为安全组配置额外的访问规则,可能会导致访问异常,请自行管理安全组规则。关于如何管理安全组规则,请参见最小化集群访问规则
    2. 完成集群高级选项配置。

      配置项

      描述

      时区

      选择集群所要使用的时区。默认时区为浏览器所配置的时区。

      kube-proxy 代理模式

      支持iptables和IPVS两种模式。
      • iptables:成熟稳定的kube-proxy代理模式,Kubernetes Service的服务发现和负载均衡使用iptables规则配置,但性能一般,受规模影响较大,适用于存在少量Service的集群。
      • IPVS:高性能的kube-proxy代理模式,Kubernetes Service的服务发现和负载均衡使用Linux ipvs模块进行配置,适用于存在大量Service的集群,对负载均衡有高性能要求的场景。

      标签

      为集群绑定标签。输入键和对应的值,单击添加
      说明
      • 是必需的,而是可选的,可以不填写。
      • 不能是aliyun、http://、https://开头的字符串,不区分大小写,最多64个字符。
      • 不能是http:// 或https://,可以为空,不区分大小写,最多128个字符。
      • 同一个资源,标签键不能重复,相同标签键(Key)的标签会被覆盖。
      • 如果一个资源已经绑定了20个标签,已有标签和新建标签会失效,您需要解绑部分标签后才能再绑定新的标签。

      自定义镜像

      • 您可以选择一个自定义ECS镜像。选择自定义镜像后,集群所有节点将基于此镜像进行部署。关于创建自定义镜像操作,请参见使用自定义镜像创建Kubernetes集群
      • 您可以选择一个共享ECS镜像。选择共享的镜像后,集群所有节点将基于此镜像进行部署。关于共享镜像的更多信息,请参见操作步骤
      说明
      • 目前自定义镜像的操作系统仅支持CentOS 7.x和Alibaba Cloud Linux。
      • 当前只有白名单用户可使用该功能。请前往配额平台申请。

      集群本地域名

      设置是否配置集群本地域名。
      说明 默认域名为cluster.local,可自定义域名。域名由两段组成,每段不超过63个字符,且只能使用大小写字母和数字,不能为空。

      自定义证书 SAN

      在集群API Server服务端证书的SAN(Subject Alternative Name)字段中添加自定义的IP或域名,以实现对客户端的访问控制。

      服务账户令牌卷投影

      开启服务账户令牌卷投影以降低在Pod中使用Service Account遇到的安全性问题,可使得kubelet支持基于Pod粒度的Token签发,并且支持Token audience和过期时间的配置。详情请参见部署服务账户令牌卷投影

      集群CA

      如果选中自定义集群CA,可以将CA证书添加到Kubernetes集群中,加强服务端和客户端之间信息交互的安全性。

      集群删除保护

      设置是否启用集群删除保护。选择开启可以防止通过控制台或API误释放集群。

      资源组

      创建的集群将归属于选择的资源组。一个资源只能归属于一个资源组。根据不同的业务场景,您可以将资源组映射为项目、应用或组织等概念。更多信息,请参见资源组

  5. 单击下一步:Master配置,完成Master节点配置。

    配置项

    描述

    Master实例数量

    实例数量表示指定可用区内部署Master节点的数量。

    实例规格

    选择Master节点的实例规格。详情参见实例规格族

    系统盘

    默认为Master节点挂载系统盘,支持SSD云盘、ESSD云盘和高效云盘。

    说明
    • 支持选中开启云盘备份以备份云盘数据。

    • ESSD云盘支持自定义性能级别

      ESSD云盘容量越大,可供选择的性能级别越高(460 GiB容量以上可选PL2,1260 GiB以上可选PL3)。更多信息,请参见容量范围与性能级别的关系

  6. 单击下一步:节点池配置,完成节点池配置。

    1. 选择实例。

      • 如果您选择新增实例,需要进行以下配置。

        配置项

        描述

        节点池名称

        自定义的节点池名称。

        实例规格

        支持选择多个实例规格。可通过vCPU内存筛选实例规格,也可选择架构分类
        说明

        选择实例规格后,在已选规格区域依次展示实例规格详情。

        节点池扩容时,将从选中的实例规格中扩容。具体扩容到的实例规格取决于节点池扩缩容策略。选择的实例规格越多,节点池成功弹出节点的概率越大。

        已选规格

        呈现选中的规格。

        数量

        新增Worker实例(ECS实例)的数量。

        系统盘

        支持ESSD云盘SSD云盘高效云盘。系统盘可选的类型与选择的实例规格相关。查询实例规格支持的云盘类型,请参见实例规格族。如果云盘类型下拉列表没有显示的云盘类型,代表不支持该云盘类型。
        说明
        • ESSD云盘支持自定义性能级别。ESSD云盘容量越大,可供选择的性能级别越高(460 GiB容量以上可选PL2,1260 GiB以上可选PL3)。更多信息,请参见容量范围与性能级别的关系
        • ESSD云盘支持加密,系统盘加密仅支持aes-256加密算法。关于系统盘加密,请参见加密系统盘

        挂载数据盘

        支持ESSD云盘SSD云盘高效云盘。挂载数据盘时,数据盘可选的类型与选择的实例规格相关。查询实例规格支持的云盘类型,请参见实例规格族。如果云盘类型下拉列表没有显示的云盘类型,代表不支持该云盘类型。
        说明
        • ESSD云盘支持自定义性能级别。ESSD云盘容量越大,可供选择的性能级别越高(460 GiB容量以上可选PL2,1260 GiB以上可选PL3)。更多信息,请参见容量范围与性能级别的关系
        • ESSD云盘支持加密。数据盘加密仅支持aes-256加密算法。目前华东5(南京-本地地域)、华东6(福州-本地地域)、泰国(曼谷)和韩国(首尔)地域仅支持阿里云默认使用托管的服务密钥(Default Service CMK)进行加密,不支持自选自定义密钥(BYOK)。关于数据盘加密,请参见加密数据盘
        • 最大可挂载的数据盘数量与选择的实例规格相关,当前已挂载的数据盘数量和剩余可挂载的数据盘数量请在挂载数据盘后面查看。

        操作系统

        ACK支持的节点操作系统包括:
        • Alibaba Cloud Linux 2.x(ACK默认的操作系统)
          选中Alibaba Cloud Linux 2.x操作系统时,您可以进行以下安全加固的配置:
          • 不开启:不对Alibaba Cloud Linux 2.x操作系统进行安全加固。
          • 等保加固:对Alibaba Cloud Linux 2操作系统进行等保加固。关于等保加固的详细信息,请参见ACK等保加固使用说明
            重要

            等保加固在保障原生镜像兼容性和性能的基础上进行了等保合规适配,使其满足国家信息安全部发布的《GB/T22239-2019信息安全技术网络安全等级保护基本要求》。

            等保加固会禁止Root用户通过SSH远程登录。您可通过ECS控制台使用VNC方式登录系统创建可使用SSH的普通用户。具体操作,请参见通过密码认证登录Linux实例

          • CIS加固:对Alibaba Cloud Linux 2.x操作系统进行CIS加固。关于CIS加固的使用说明,请参见ACK CIS加固使用说明
        • Alibaba Cloud Linux 3.x

          Alibaba Cloud Linux 3操作系统镜像适用于大多数实例规格族,但存在一部分镜像仅适用于部分实例规格族。更多信息,请参见Alibaba Cloud Linux 3镜像发布记录

        • CentOS 7.x
          说明 暂不支持CentOS 8.x及以上的操作系统。

        登录方式

        • 设置密钥。
          • 密钥对:如您已经创建密钥对,在下拉列表中选择目标密钥对。
          • 新建密钥对:此项用于您还未创建密钥对。创建密钥对,请参见创建SSH密钥对。密钥对创建完毕后,设置该密钥对作为登录集群的凭据。
        • 设置密码。
          • 登录密码:设置节点的登录密码。
          • 确认密码:确认设置的节点登录密码。
          说明 密码为8~30个字符,且必须同时包含三项(大写字母、小写字母、数字和特殊符号),其中特殊字符不包括下划线(_)。
      • 如果您选择添加已有实例,则需要预先在此地域下创建ECS云服务器,然后配置操作系统登录方式密钥对,配置描述参见上文。

    2. 设置高级选项。

      配置项

      描述

      实例保护

      设置是否启用实例保护。
      说明 为防止通过控制台或API误释放集群节点,默认启用实例保护。

      实例自定义数据

      请参见ECS实例自定义数据概述

      自定义节点名称

      是否开启自定义节点名称。自定义节点名称后,将同时更改节点名称、ECS实例名称、ECS实例Hostname。

      节点名称由前缀,节点IP地址及后缀三部分组成:
      • 总长度为2-64个字符。
      • 前缀和后缀允许使用大小写字母、数字、连字符(-)和点号(.)。必须以大小写字母开头,不能以连字符(-)或点号(.)开头或结尾。不能连续使用连字符(-)或点号(.)。
      • 前缀必选(ECS限制),后缀可选。
      • 对于开启自定义节点名称的Windows实例,其Hostname固定为IP地址,用"-"代替IP地址中的".",且不包含前缀和后缀。
      例如:节点IP地址为192.1xx.x.xx,指定前缀为aliyun.com,后缀为test。
      • 如果节点为Linux节点,则节点名称、ECS实例、ECS实例Hostname均为aliyun.com192.1xx.x.xxtest。
      • 如果节点为Windows节点,则ECS实例Hostname为192-1xx-x-xx,节点名称、ECS实例名称均为aliyun.com192.1xx.x.xxtest。

      节点服务端口范围

      设置节点服务端口范围。默认端口范围为30000~32767。

      污点 (Taints)

      为Kubernetes集群节点添加污点,污点(Taints)包含Effect(效果)。有效污点键包含前缀(可选)和名称。如果有前缀,用正斜线(/)分隔。更多信息,请参见污点和容忍度。污点有以下限制:
      • :污点键的名称长度为1~63个字符,必须以字母、数字或字符[a-z0-9A-Z]开头和结尾,中间可包含字母、数字、短划线(-)、下划线(_)、英文半角句号(.)。

        如果指定前缀,必须是DNS子域。即一系列由英文半角句号(.)分隔的DNS标签,不超过253个字符,以正斜线(/)结尾。关于DNS子域,请参见DNS子域

      • :污点值可以为空,不超过63个字符,必须以字母、数字或字符[a-z0-9A-Z]开头和结尾,可包含字母、数字、短划线(-)、下划线(_)、英文半角句号(.)。
      • Effect:可选择NoScheduleNoExecutePreferNoSchedule三种。
        • NoSchedule:如果污点中存在至少一个Effect值为NoSchedule的污点,则系统不会将Pod分配到该节点。
        • NoExecute:任何不能忍受这个污点的Pod都会被驱逐,任何可以忍受这个污点的Pod都不会被驱逐。
        • PreferNoSchedule:系统会尽量避免将Pod调度到存在其不能容忍污点的节点上,但不会强制执行。

      CPU Policy

      指定Kublet节点的CPU管理策略。
      • None:默认策略。
      • Static:允许为节点上具有某些资源特征的Pod赋予增强的CPU亲和性和独占性。

      RDS白名单

      单击请选择您想要添加白名单的RDS实例,将节点IP添加至RDS实例的白名单。

  7. 单击下一步:组件配置,完成组件配置。

    配置项

    描述

    Ingress

    设置是否安装Ingress组件。默认为Nginx Ingress

    服务发现

    设置是否安装NodeLocal DNSCache组件,默认安装NodeLocal DNSCache。

    NodeLocal DNSCache用于运行DNS缓存代理以提升域名解析性能和稳定性。关于NodeLocal DNSCache的更多信息,请参见使用NodeLocal DNSCache

    存储插件

    默认是CSI存储插件。默认选中创建默认NAS文件系统和CNFS容器网络文件系统动态存储类型,并默认开启 NAS 回收站特性,支持数据快速恢复。。Kubernetes集群通过Pod可自动绑定阿里云云盘、NAS、OSS存储服务。更多信息,请参见存储管理-CSI

    监控插件

    设置是否启用云监控插件。默认选中在ECS节点上安装云监控插件

    日志服务

    设置是否启用日志服务,您可使用已有Project或新建一个Project。默认选中使用日志服务。创建应用时,您可通过简单配置,快速使用日志服务,详情参见通过日志服务采集Kubernetes容器日志

    默认选中安装node-problem-detector并创建事件中心,您可以选择是否在日志服务控制台中添加事件中心。更多信息,请参见创建并使用K8s事件中心

    工作流引擎

    设置是否使用AGS。
    说明 当前只有白名单用户可以使用该功能。
    • 如果选中AGS,则创建集群时系统自动安装AGS工作流插件。
    • 如果不选中,则需要手动安装AGS工作流插件,请参见AGS命令行帮助

    集群巡检

    启用智能运维的集群巡检功能,定期扫描集群内配额、资源水位、组件版本等,识别集群内潜在的风险。更多信息, 请参见使用集群巡检

  8. 单击下一步:确认配置

  9. 选中服务协议并单击创建集群

    说明

    一个包含多节点的Kubernetes集群的创建时间约为十分钟。

执行结果

  • 集群创建成功后,您可以在容器服务管理控制台的集群列表页面查看所创建的集群。

  • 您可以单击操作列的查看日志,进入集群日志信息页面查看集群的日志信息。 您也可以在集群日志信息页面中,单击资源栈事件查看更详细的信息。

  • 在集群列表中,找到刚创建的集群,单击操作列中的详情,单击基本信息连接信息页签,查看集群的基本信息和连接信息。

    其中:

    • API Server公网连接端点:Kubernetes的API server对公网提供服务的地址和端口,可以通过此服务在客户端使用kubectl等工具管理集群。

    • API Server内网连接端点:Kubernetes的API server对集群内部提供服务的地址和端口。此IP为负载均衡的地址,后端有3台Master提供服务。

  • 您可以获取集群KubeConfig并通过kubectl工具连接集群,执行kubectl get node查看集群的节点信息。

    集群查看结果

阿里云首页 容器服务Kubernetes版 相关技术圈