您可以通过容器服务控制台非常方便的创建加密计算 Kubernetes 集群。

前提条件

您需要开通容器服务、资源编排(ROS)服务和访问控制(RAM)服务。

登录 容器服务管理控制台、ROS 管理控制台和RAM 管理控制台开通相应的服务。

登录 容器服务管理控制台、ROS 管理控制台和 RAM 管理控制台开通相应的服务。

说明 容器服务 Kubernetes 集群部署依赖阿里云资源编排 ROS 的应用部署能力,所以创建集群前,您需要开通 ROS。

背景信息

集群使用过程中,有如下限制:

  • 用户账户需有 100 元的余额并通过实名认证,否则无法创建按量付费的 ECS 实例和负载均衡。
  • 随集群一同创建的负载均衡实例只支持按量付费的方式。
  • Kubernetes 集群仅支持专有网络 VPC。
  • 每个账号默认可以创建的云资源有一定的配额,如果超过配额创建集群会失败。请在创建集群前确认您的配额。如果您需要提高配额,请提交工单申请。
    • 每个账号默认最多可以创建 5 个集群(所有地域下),每个集群中最多可以添加 40 个节点。如果您需要创建更多的集群或者节点,请提交工单申请。
      说明 Kubernetes 集群中,VPC 默认路由条目不超过 48 条,意味着 Kubernetes 集群使用 VPC 时,默认路由条目上限是 48 个,如果需要更大的节点数,需要您先对目标
      VPC 开工单,提高 VPC 路由条目,再对容器服务提交工单。

    • 每个账号默认最多可以创建 100 个安全组。
    • 每个账号默认最多可以创建 60 个按量付费的负载均衡实例。
    • 每个账号默认最多可以创建 20 个EIP。
  • 创建加密计算 Kubernetes 集群时,以下界面参数需要按照表中的要求配置,否则创建的集群将无法支持运行 Intel SGX 应用。
    参数 配置
    可用区 目前只有神龙实例 ecs.ebmhfg5.2xlarge 支持加密计算集群,请确保所选可用区有神龙实例。
    容器运行时 Docker 18.09.2
    实例规格 神龙裸金属服务器(神龙)的ecs.ebmhfg5.2xlarge 规格
    操作系统类型 AliyunLinux 2.xxxx
    网络插件 Flannel
    自定义镜像 不使用自定义镜像,否则无法保证提供加密计算服务。

操作步骤

  1. 登录容器服务管理控制台。
  2. 在 Kubernetes 菜单下, 单击左侧导航栏中的集群 > 集群,单击页面右上角的创建 Kubernetes 集群
  3. 在弹出的选择集群模板页面,选择加密计算托管版集群页面,并单击创建,进入Kubernetes 托管版页面。
    集群配置页面
  4. 可选: 选择集群所在的资源组。
    资源组
  5. 填写集群的名称。
    集群名称应包含 1~63 个字符,可包含数字、汉字、英文字符或连字符(-)。
  6. 选择集群所在的地域。
  7. 设置集群的网络。Kubernetes 托管版集群仅支持专有网络。
    您可以在已有 VPC 列表中选择所需的 VPC。如果没有您需要的专有网络,可以通过单击创建专有网络进行创建,请参见创建专有网络。

    专有网络

  8. 设置虚拟交换机。
    您可以在已有 VSwitch 列表中,根据可用区选择 1~3 个交换机 。如果没有您需要的交换机,可以通过单击创建虚拟交换机进行创建,请参见创建交换机。虚拟交换机

  9. 选择 Kubernetes 版本和容器运行时。
    在创建加密计算 Kubernetes 集群时,参数配置说明如下: Kubernetes版本

    • 根据需要选择合适的 Kubernetes 版本。
    • 加密计算集群勾选开启
    • 容器运行时仅支持 Docker 运行时。
  10. 设置 Worker 节点的配置信息。您可选择新增实例或添加已有实例。
    加密计算场景下, Worker 节点仅支持神龙工作节点,选择神龙型号为 ecs.ebmhfg5.2xlarge

    • 若您选择新增实例,则需要进行如下配置。
      配置worker节点
      • 节点类型:支持包年包月和按量付费两种节点类型。
      • 实例规格:目前机型仅支持神龙裸金属服务器(神龙),且该机型的 ecs.ebmhfg5.2xlarge 实例规格支持运行 Intel SGX 应用。
      • 已选规格:已选的实例规格,可以选一个或多个规格。
      • 数量:新增 Worker 实例的数量。
      • 系统盘:支持 SSD 云盘和高效云盘。默认120 GiB。
      • 挂载数据盘:支持 SSD 云盘、高效云盘和普通云盘。
    • 若您选择添加已有实例,则至少添加两个以上的 Worker 实例。
  11. 设置操作类型系统。仅支持AliyunLinux 2.xxxx
  12. 配置登录方式。
    • 设置密钥。
      您需要在创建集群的时候选择密钥对登录方式,单击新建密钥对,跳转到 ECS 云服务器控制台,创建密钥对,参见创建SSH密钥对。密钥对创建完毕后,设置该密钥对作为登录集群的凭据。

      登录方式

    • 设置密码。
      • 登录密码:设置节点的登录密码。
      • 确认密码:确认设置的节点登录密码。
  13. 选择网络插件,加密计算仅支持Flannel。
  14. 设置Pod网络 CIDRService CIDR
    您需要指定Pod 网络 CIDRService CIDR,两者都不能与 VPC 及 VPC 内已有 Kubernetes 集群使用的网段重复,创建成功后不能修改。而且 Service 地址段也不能和 Pod 地址段重复,有关
    kubernetes 网络地址段规划的信息,请参考VPC下 Kubernetes 的网络地址段规划。
  15. 设置是否为专有网络配置 SNAT 网关。
    • 如果您使用的 VPC 中当前已有 NAT 网关,容器服务会使用已有的 NAT 网关。
    • 如果 VPC 中没有 NAT 网关,系统会默认自动为您创建一个 NAT 网关。如果您不希望系统自动创建 NAT 网关,可以取消勾选页面下方的为专有网络配置 SNAT。此时您需要自行配置 NAT 网关实现 VPC 安全访问公网环境,或者手动配置 SNAT,否则 VPC 内实例将不能正常访问公网,会导致集群创建失败。
  16. 设置是否开放使用 EIP 暴露 API Server
    API Server 提供了各类资源对象(Pod,Service 等)的增删改查及 watch 等 HTTP Rest 接口。

    公网访问
    • 如果选择开放,会创建一个 EIP,并挂载到内网 SLB 上。此时,Master 节点的 6443 端口(对应 API Server)暴露出来,用户可以在外网通过 kubeconfig
      连接并操作集群。
    • 如果选择不开放,则不会创建 EIP,用户只能在 VPC 内部用 kubeconfig 连接并操作集群。
  17. 设置是否启用云监控插件。
    您可以选择在 ECS 节点上安装云监控插件,从而在云监控控制台查看所创建 ECS 实例的监控信息。

    云监控插件

  18. 设置是否安装 Ingress 组件。
    默认勾选安装 Ingress 组件 ,请参见 Ingress 支持。

    ingress
    说明 如果您勾选创建 Ingress Dashboard,则需要同步安装日志服务组件。

  19. 设置是否启用日志服务,您可使用已有 Project 或新建一个 Project。
    勾选使用日志服务,会在集群中自动配置日志服务插件。创建应用时,您可通过简单配置,快速使用日志服务,详情参见使用日志服务进行Kubernetes日志采集。日志服务
  20. 设置存储插件,支持 Flexvolume 和 CSI。
    Kubernetes 集群通过 Pod 可自动绑定阿里云云盘、NAS、 OSS 存储服务。请参见存储管理-Flexvolume 和存储管理-CSI。
  21. 设置是否启用集群删除保护。
    说明 为防止通过控制台或 API 误释放集群,默认启用集群删除保护。

  22. 设置 RDS 白名单。
    将节点 IP 添加到 RDS 实例的白名单。RDS白名单
  23. 设置是否启用实例保护。
    实例保护

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

  24. 为集群绑定标签。
    输入键和对应的值,单击添加

    说明

    • 标签由区分大小写的键值对组成,您最多可以设置20个标签。
    • 标签键不可以重复,最长为64位。
    • 标签值可以为空,最长为63位。
    • 标签和键值均不能是以 aliyun、acs:、http:// 、https:// 开头的字符串。请参见Labels and Selectors。

  25. 是否启用高级选项。
    1. 在网络模式为 Flannel 时,通过设置节点 Pod 数量,是指单个节点可运行 Pod 数量的上限,建议保持默认值。
      节点Pod

    2. 设置 kube-proxy 代理模式,支持 iptables 和 IPVS 两种模式。
      Kube-proxy代理
      • iptables:成熟稳定的 kube-proxy 代理模式,Kubernetes service 的服务发现和负载均衡使用 iptables 规则配置,但性能一般,受规模影响较大,适用于集群存在少量的
        service。
      • IPVS:高性能的 kube-proxy 代理模式,Kubernetes service 的服务发现和负载均衡使用 Linux ipvs 模块进行配置,适用于集群存在大量的
        service,对负载均衡有高性能要求的场景。
    3. 是否开启自定义节点名称
      自定义节点名称节点名称由前缀 + 节点 IP 地址子串 + 后缀三部分组成:

      • 前缀和后缀均可由.分隔的一个或多个部分构成,每个部分可以使用小写字母、数字和-,且首尾必须为小写字母和数字。
      • IP 地址段长度指截取节点 IP 地址末尾的位数,取值范围 5-12。

      例如:节点 IP 地址为192.168.0.55,指定前缀为 aliyun.com,IP 地址段长度为 5,后缀为 test,则节点名称为aliyun.com00055test

    4. 设置污点(Taints)
      污点
    5. 设置 CPU policy。
      CPU策略

      • none:默认策略,表示启用现有的默认 CPU 亲和方案。
      • static:允许为节点上具有某些资源特征的 Pod 赋予增强的 CPU 亲和性和独占性。
    6. 是否配置集群本地域名。

      默认域名为 cluster.local,可自定义域名。

      域名由两段组成,每段不超过 63 个字符,且只能使用大小写字母和数字,不能为空。

    7. 设置是否使用 AGS
      • 如果勾选 AGS,则创建集群时系统自动安装 AGS 工作流插件。
      • 如果不勾选,则需要手动安装 AGS 工作流插件,请参见AGS命令行帮助。
    8. 设置实例自定义数据
      客户自定义脚本,在节点初始化之后会执行该脚本。

      说明

      Windows 支持 bat 和 powershell 两种格式,在 Base64 编码前,第一行为 [bat] 或者 [powershell]。Linux 支持
      shell 脚本,更多的格式请参见 cloud-init查看详情

      如果您使用的自定义脚本长度大于 1 KB,建议您将脚本上传到 OSS,通过 OSS 内网端点拉取脚本执行。

  26. 单击创建集群,在弹出的当前配置确认页面,单击创建,启动部署。
    此时您可以看到集群创建的进度。

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

    集群创建进度

执行结果

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

您可以单击操作列的查看日志,进入集群日志信息页面查看集群的日志信息。 您也可以在集群日志信息页面中,单击资源栈事件查看更详细的信息。集群日志详情
集群列表页面中,找到刚创建的集群,单击操作列中的管理,查看集群的基本信息和连接信息。集群基本信息
其中:

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

    绑定 EIP解绑 EIP功能仅支持托管版 Kubernetes 集群。

    • 绑定 EIP:您可以选择在已有 EIP 列表中绑定 EIP 或者新建 EIP。

      绑定 EIP 操作为导致 API Server 短暂重启,请避免在此期间操作集群。

    • 解绑 EIP:解绑 EIP 后您将无法通过公网访问 API Server。

      解绑 EIP 操作会导致 API Server 短暂重启,请避免在此期间操作集群。

  • API Service 内网连接端点:Kubernetes 的 API server 对集群内部提供服务的地址和端口,此 IP 为负载均衡的地址。
  • Pod网络CIDR:Kubernetes的Pod CIDR定义集群内Pod的网段范围。
  • Service CIDR:Kubernetes的Service CIDR定义集群内暴露服务的网段范围。
  • 测试域名:为集群中的服务提供测试用的访问域名。服务访问域名后缀是<cluster_id>.<region_id>.alicontainer.com
  • kube-proxy 代理模式:Kubernetes service的服务发现和负载均衡需要通过服务代理进行配置,支持iptables和IPVS两种模式。
  • 节点 Pod 数量:单个节点可运行 Pod 数量的上限,默认值为128。
  • 网络插件:支持 flannel。
您可以通过 kubectl 连接 Kubernetes 集群,执行kubectl get node查看集群的节点信息。查看集群结果