本文介绍使用容器服务ACK过程中涉及的规划及使用方案等常见问题。
容器服务ACK中使用容器运行应用的大致流程是什么?
您的应用代码可部署在线下或者云上。不论何种语言的代码,您都可以将其以容器化的方式部署、交付及运行。从开发代码到运行容器化应用,大致需要以下四个阶段:
编写代码。
使用Dockerfile构建镜像。
上传镜像至镜像仓库。您可以使用容器镜像服务ACR来存放镜像。
运行容器化应用。您可以使用容器服务 Kubernetes 版来一站式管理您的容器化应用。
术语 | 描述 |
Dockerfile | Dockerfile是一个文本文件,包含了将代码打包成镜像所需的指令。具体操作,请参见在Dockerfile中使用构建打包镜像并运行。 |
镜像 | 镜像是软件交付的载体。相比传统的如JAR、WAR、RPM包等,除了代码外,镜像还包含应用所依赖的软件环境(容器运行时所需要的所有的文件集合)。使用镜像可以快速生成一个容器,即运行的应用。 更多信息,请参见使用镜像快速创建无状态Deployment应用。 |
容器 | 容器是一组具有隔离特性的进程集合,其特点是视图隔离、资源可限制、具备独立文件系统。您可以通过阿里云容器服务ACK对您所有的容器化应用进行全生命周期的高效管理。例如将某些容器组(Pod)调度到指定的Node节点(ECS服务器)上,或者在业务负载升高时进行扩容操作。 |
容器服务ACK与阿里云其他产品一起使用的推荐方案是什么?
通过阿里云容器服务ACK,您可以为应用业务创建所需的云服务器ECS、网络、存储等阿里云其他产品资源。您可以根据下图创建最小交叉产品集合,获得云原生系统构建、安全合规、微服务、可观测、存储、计算与网络等方面的专业技术支持,适配您集群的开发与运维工作。
建议您关注与容器服务ACK相结合的可观测性方案,即日志与监控产品。对于基础设施监控、容器监控、应用性能监控和业务监控,不同层面可配上对应的可观测性服务。
如何选择容器服务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。
线上或线下已有一套环境,是否可以迁移到云上ACK?
可以,自建Kubernetes集群可以平滑迁移到阿里云Kubernetes集群。具体步骤,请参见Kubernetes迁移方案概述和自建Kubernetes集群应用迁移至线上ACK集群。
请在集群迁移前充分评估,确保应用迁移对业务无影响。