阿里云容器服务Kubernetes版(简称容器服务ACK)提供高性能的容器化应用管理服务,让您轻松高效地在云端运行Kubernetes容器化应用。本文将指导您如何通过控制台在ACK集群中快速部署并公开一个容器化Demo应用,并监控应用的运行情况。

背景信息

  • 本教程中所使用的Demo应用ACK-Cube为一个线上魔方游戏,该游戏将通过容器镜像部署到ACK Pro版集群中。完成本教程后,您将得到一个ACK Pro版集群和魔方游戏应用。cube
  • Demo应用的容器镜像基于开源项目构建,镜像地址为registry.cn-hangzhou.aliyuncs.com/acr-toolkit/ack-cube:1.0
  • ACK标准版和Pro版都是托管集群。相比于标准版,本教程所创建的Pro版集群具有更高的可靠性和安全性,并提供可赔付的SLA。关于ACK集群及其所使用云资源的收费情况,请参见产品计费

前提条件

操作流程

workflow

步骤一:开通并授权容器服务ACK

首次使用时,您需要开通容器服务ACK,并为其授权相应云资源的访问权限。

  1. 登录容器服务ACK开通页面
  2. 阅读并选中容器服务ACK服务协议
  3. 单击立即开通
  4. 登录容器服务管理控制台
  5. 容器服务需要创建默认角色页面,单击前往RAM进行授权进入云资源访问授权页面,然后单击同意授权
    完成以上授权后,刷新控制台即可使用容器服务ACK。

步骤二:创建ACK Pro版集群

本步骤指导您如何快速创建一个ACK Pro版集群,因此参数配置大多以默认为主。关于创建集群的详细参数描述,请参见创建ACK Pro版集群

  1. 登录容器服务管理控制台
  2. 在控制台左侧导航栏中,单击集群
  3. 集群列表页面中,单击页面右上角的创建集群
  4. ACK托管版页签下,配置以下相关的集群参数,未说明参数保留默认设置即可。
    集群配置
    参数 说明
    集群名称 填写集群的名称。示例:ACK-Demo。
    集群规格 选择集群规格。示例:Pro版。关于ACK Pro版集群的详细信息,请参见ACK Pro版集群概述
    地域 选择集群所在的地域。示例:华北2(北京)。
    专有网络 Kubernetes集群仅支持运行于专有网络,因此您需要为集群指定专有网络VPC,且该VPC必须与集群处于同一地域。

    示例:在华北2(北京)地域下创建名为vpc-ack-demo的VPC。通过单击创建专有网络进行创建,详情请参见创建和管理专有网络

    虚拟交换机 选择用于集群节点间通信的交换机。示例:在vpc-ack-demo的VPC下创建一个名为vswitch-ack-demo的虚拟交换机,并选择使用该交换机。

    通过单击创建虚拟交换机进行创建,详情请参见使用交换机

    API Server访问 设置集群API Server是否可在公网访问,当您需要从公网远程管理集群时,需要配置弹性公网IP(EIP)。

    示例:选中使用EIP暴露API Server

  5. 单击下一步:节点池配置,配置以下相关参数,未说明参数保留默认设置即可。
    worker配置
    参数 说明
    实例规格 为集群选配所使用的节点。为了保证集群的稳定性,建议的实例规格为:vCPU ≥ 4核,内存 ≥ 8 GiB。关于如何选型以及规格介绍,请参见ECS选型实例规格族

    示例:搜索实例规格ecs.g5.xlarge,并选用该规格的节点。

    数量 根据需要设置集群的节点数量。示例:2个,防止单点故障。
    系统盘 选择节点所使用的系统盘。示例:ESSD云盘,40 GiB(最小规格)。
    登录方式 选择登录节点的方式,并输入密码。示例:设置密码。
  6. 单击下一步:组件配置,所有组件使用默认配置。
  7. 单击下一步:确认配置,然后选中并阅读服务协议,单击创建集群
    说明 集群的创建时间一般约为10分钟。创建完成后,在集群列表页面,可以看到新创建的集群。

步骤三:部署并公开应用

本步骤指导您如何在新创建的ACK集群中快速部署一个无状态应用(Deployment),即魔方游戏,并将该应用向公网公开。关于创建Deployment的详细参数描述,请参见创建无状态工作负载Deployment

  1. 在集群列表页面中,单击目标集群名称(即ACK-Demo)。
  2. 在集群管理页左侧导航栏中,选择工作负载 > 无状态
  3. 无状态页面中,单击使用镜像创建
  4. 应用基本信息页签,设置应用名称为ack-cube。
  5. 单击下一步,在容器配置页签,配置容器的相关参数。
    容器配置
    参数 说明
    镜像名称 直接输入不包含镜像Tag的镜像地址或通过单击选择镜像来选择所需的镜像。

    示例:输入registry.cn-hangzhou.aliyuncs.com/acr-toolkit/ack-cube

    镜像Tag 单击选择镜像Tag选择镜像的版本。若不指定,默认为最新版。示例:1.0。
    资源限制 根据需要为该应用指定所能使用的资源上限,防止占用过多资源。

    示例:1 Core,内存 1024 MiB,Ephemeral Storage为空。

    所需资源 根据需要为该应用指定预留的资源额度,防止因资源不足而导致应用不可用。

    示例:0.5 Core,内存 512 MiB,Ephemeral Storage为空。

    端口 设置容器的端口。示例:ack-cube,80,TCP。
  6. 单击下一步,在高级配置页签,单击服务(Service)右侧的创建
  7. 创建服务对话框中,设置服务的相关参数,单击创建,以通过该服务公开ack-cube应用。
    service
    参数 说明
    名称 输入服务的名称。示例:ack-cube-svc
    类型 选择服务类型,即服务访问的方式。依次选择负载均衡 -> 公网访问 -> 新建SLB -> 单击修改选择所需的SLB规格。

    示例:使用默认规格,简约型I(slb.s1.small)。

    端口 设置服务端口和容器端口。容器端口需要与后端的Pod中暴露的容器端口一致。

    示例:皆为80。

  8. 高级配置页签,单击页面右下角的创建
    创建成功后,默认进入创建完成页面,会列出应用包含的对象,您可以单击查看应用详情进行查看。succeed

步骤四:测试应用

本步骤指导您如何通过服务(Service)来访问新部署的容器化应用。

  1. 在集群列表页面中,单击目标集群名称(即ACK-Demo)。
  2. 在集群管理页左侧导航栏中,选择网络 > 服务
  3. 在服务列表页面,找到新创建的服务(即ack-cube-svc),单击外部端点列的IP地址,即可访问魔方游戏。
    service endpoint

步骤五:监控应用

本步骤指导您如何监控应用的运行状况,如CPU利用率、内存利用率、网络I/O压力等指标。

  1. 在集群列表页面中,单击目标集群名称(即ACK-Demo)。
  2. 在集群管理页左侧导航栏中,选择运维管理 > Prometheus监控
  3. Prometheus监控页面,单击Deployment页签,选择命名空间为default,选择deployment为ack-cube。
    您可以查看应用的资源使用情况,包括创建应用时所设置的资源阈值,即所需资源(对应图中request)和资源限制(对应图中limit)。prometheus-deploy
  4. Prometheus监控页面,单击Pod页签,选择命名空间为default,选择Pod为待监控Pod。
    您可以查看单个Pod的资源使用情况。prometheus-pod

相关文档

  • 为了保证应用能够动态调整所需容器资源,您可以配置容器水平伸缩(HPA)、定时容器水平伸缩(CronHPA)、容器垂直伸缩(VPA)等,详情请参见弹性伸缩概述
  • 除了通过服务(Service)公开应用,您还可以通过路由(Ingress)实现对应用的七层网络路由控制,详情请参见创建Ingress路由
  • 除了观测容器性能,您还可以观测集群基础设施、应用性能和用户业务,详情请参见可观测性体系概述
  • 为了避免产生不必要的费用,请及时清理不需要的集群,详情请参见删除集群