本文介绍使用容器服务ACK过程中涉及的规划及使用方案等常见问题。

容器服务ACK中使用容器运行应用的大致流程是什么?

您的应用代码可部署在线下或者云上。不论何种语言的代码,您都可以将其以容器化的方式部署、交付及运行。从开发代码到运行容器化应用,大致需要以下四个阶段:
  1. 编写代码。
  2. 使用Dockerfile构建镜像。
  3. 上传镜像至镜像仓库。
  4. 运行容器化应用。
部署应用
术语 描述
Dockerfile Dockerfile是一个文本文件,包含了将代码打包成镜像所需的指令。具体操作,请参见在Dockerfile中使用多阶段构建打包Java应用
镜像 镜像是软件交付的载体。相比传统的如JAR、WAR、RPM包等,除了代码外,镜像还包含应用所依赖的软件环境(容器运行时所需要的所有的文件集合)。使用镜像可以快速生成一个容器,即运行的应用。

更多信息,请参见使用镜像快速创建无状态Deployment应用

容器 容器是一组具有隔离特性的进程集合,其特点是视图隔离、资源可限制、具备独立文件系统。您可以通过阿里云容器服务ACK对您所有的容器化应用进行全生命周期的高效管理。例如将某些容器组(Pod)调度到指定的Node节点(ECS服务器)上,或者在业务负载升高时进行扩容操作。

具体操作,请参见调度应用Pod至指定节点节点自动伸缩容器与镜像

容器服务ACK与阿里云其他产品一起使用的推荐方案是什么?

通过阿里云容器服务ACK,您会为应用业务创建所需的ECS、网络、存储等阿里云其他产品资源。您可以根据下图创建最小交叉产品集合。建议您关注与容器服务ACK相结合的可观测性方案,即日志与监控产品。对于基础设施监控、容器监控、应用性能监控和业务监控,不同层面可配上对应的可观测性服务。产品售卖
如果您是微服务架构,比如主流的Spring、Dubbo或Isito,可以参考以下微服务架构选型图创建相关产品。微服务

如何选择容器服务ACK的集群类型?

关于阿里云容器服务ACK的集群类型的特点及使用场景,请参见什么是容器服务Kubernetes版

如何规划集群容量?

集群的容量需要根据您业务流量压力而定。集群总容量算法公式如下。公式

例如:有100个微服务,平均每个服务5个实例,每个实例用2核4 GB,预留10%冗余。总容量:100×5×110%×2核/100×5×110%×4 GB=1100核/2200 GB

如果您的业务波动明显,有波峰和波谷变化,可以将日常容量之外的弹性容量以容器扩容的方式实现。具体操作,请参见弹性伸缩概述

ECS服务器怎么选型?

集群选择节点时,节点规格优先于节点数量。在同样满足业务需求的情况下,优选方案为少量大规格ECS,而不是大量小规格ECS。如果是超大规模海量应用,推荐选用弹性裸金属服务器(具体操作,请参见创建弹性裸金属服务器实例)。集群中所有Worker节点的算力要看集群日常使用的总核数以及对服务可用度的容忍度。更多信息,请参见ECS选型

如何选择阿里云容器镜像服务ACR免费版和企业版?

使用容器技术必不可少的步骤是把应用代码打包成容器镜像。对于容器镜像的存放、版本管理和分发拉取等,需要开通容器镜像服务ACR。容器镜像服务分为个人版和企业版:
  • 个人版面向容器开发者,存储及流量限额免费。
  • 企业版面向企业,对安全及性能需求高,业务多地域大规模部署。
更多信息,请参见产品类型

哪些典型场景需要使用容器镜像服务的企业版(ACR EE)?

  • 场景一:容器镜像很大(例如单个容器镜像大于5 GB)或者有大规模化分发需求(单集群达50个节点)。
  • 场景二:容器镜像需要跨国跨海同步。
  • 场景三:客户对安全需求极高(镜像内容安全、访问安全、整个链路DevSecOps)。

线上或线下已有一套环境,是否可以迁移到云上ACK?

可以,自建Kubernetes集群可以平滑迁移到阿里云Kubernetes集群。具体步骤,请参见Kubernetes迁移方案概述云原生应用迁云解决方案
注意 请确保应用迁移对业务无影响。