本文主要介绍ACS Pod的使用准备工作、使用限制以及核心功能,包括安全隔离、CPU/Memory资源和规格配置、镜像拉取、存储、网络、日志收集等。
计算类定义
ACS当前提供了2种计算类型,2种类型均是运行在x86架构服务器上。不同的实例类型在资源供给上会有所区别,以适应不同的业务场景。
计算类 | 标签 | 特点 |
通用型(默认) | general-purpose | 满足绝大部分无状态微服务应用 、Java Web 应用、计算类任务等。 |
性能型 | performance | 满足性能需求更强的业务场景,如 CPU Based AI/ML 训推、HPC 批处理等。 |
GPU型 | gpu | 满足 AI/HPC 等异构计算场景 ,如 GPU 单卡、多卡推理,GPU 并行计算等。 |
高性能网络GPU型(gpu-hpn) | gpu-hpn | 满足 AI/HPC 等异构计算场景 ,如 GPU 分布式训练,分布式推理,GPU 高性能计算等。 |
您可以通过Pod上的alibabacloud.com/compute-class
标签来指定实例的计算类。下面是一个Nginx应用的示例编排,指定了计算类型为通用型。
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
# 通用型(general-purpose), 性能型(performance)
# 不填默认为通用型
alibabacloud.com/compute-class: general-purpose
spec:
containers:
- name: nginx
image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
算力质量定义
ACS当前提供了2种算力质量。不同的服务质量在资源供给上会有所区别,以适应不同的业务场景。
算力质量 | 标签 | 特点 | 典型应用场景 |
默认型 | default |
|
|
BestEffort型 | best-effort |
|
|
您可以通过Pod上的alibabacloud.com/compute-qos
标签来指定实例的类。下面是一个Nginx应用的示例编排,指定了算力质量为默认型。
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
# 默认型(default), BestEffort型(best-effort)
# 不填默认为默认型
alibabacloud.com/compute-qos: default
spec:
containers:
- name: nginx
image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
ACS 算力质量定义和Kubernetes原生的QoS类型定义不同,目前所有ACS算力都使用Kubernetes原生的Guaranteed类型。
计算类与算力质量的对应关系
计算类(标签) | 支持的算力质量(标签) |
通用型(general-purpose) | 默认型(default)、BestEffort型(best-effort) |
性能型(performance) | 默认型(default) |
GPU型(gpu) | 默认型(default) |
高性能网络GPU型(gpu-hpn) | 默认型(default) |
Kubernetes应用限制
ACS通过虚拟节点与Kubernetes实现无缝对接,因此ACS实例并不会运行在一个集中式的真实节点上,而是打散分布在整个阿里云的资源池中。基于公有云的安全性和虚拟节点本身带来的限制,ACS目前还不支持Kubernetes中的HostPath、DaemonSet等功能,具体如下表所示。
限制项 | 说明 | 校验失败时处理策略 | 推荐替代方案 |
DaemonSet | 限制使用Daemonset类workload | Pod运行但无法正常工作 | 通过Sidecar形式在Pod中部署多个镜像 |
HostPath | 限制挂载本地宿主机文件到容器中 | 拒绝提交 | 使用emptyDir、云盘或者NAS文件系统 |
type=NodePort的Service | 将宿主机端口映射到容器上 | 拒绝提交 | 使用 |
HostNetwork | 限制将宿主机端口映射到容器上 | 改写为 | 无需使用 |
HostIPC | 限制容器进程和宿主机进程间通信 | 改写为 | 无需使用 |
HostPID | 限制容器可见宿主机PID空间 | 改写为 | 无需使用 |
HostUsers | 限制使用用户命名空间 | 改写为 | 无需使用 |
Linux capabilities | 限制Linux系统特权(securityContext.capabilities)使用,不在允许值范围内的将被拒绝提交 说明 支持使用的特权:
| 拒绝提交 | 使用允许值 |
Sysctl | 限制内核参数(securityContext.sysctls)使用 说明
| 拒绝提交 | 使用允许值 |
PrivilegeEscalation | 限制容器进行特权提升(securityContext.allowPrivilegeEscalation) | 拒绝提交 | 使用默认配置 |
Privileged Container | 限制容器拥有privileged权限 | 拒绝提交 | 使用Security Context为Pod添加允许的capability或sysctl |
ImagePullPolicy | 限制ImagePullPolicy值为Always | 改写为 | 使用允许值 |
DNSPolicy | 限制使用特定的DNSPolicy 说明
|
| 使用允许值 |
核心功能
功能项 | 说明 |
安全隔离 | 作为安全可靠的Serverless容器运行环境,每个ACS实例底层通过轻量级安全沙箱技术完全强隔离,实例间互不影响。同时实例在调度时尽可能分布在不同的物理机上,进一步保障了高可用性。 |
CPU/Memory资源或规格配置 |
|
镜像 | 镜像拉取 ACS Pod默认每次启动后使用与Pod关联的VPC从远端拉取容器镜像。如果镜像为公共镜像,则需要开通VPC的NAT网关。建议您将容器镜像存储在阿里云镜像仓库(ACR),通过VPC网络减少镜像拉取时间。另外,对于ACR上的私有镜像,ACS提供了免密拉取功能,方便您使用。 |
存储 | ACS支持云盘和NAS两种持久化存储。 |
网络 | ACS Pod默认使用独立的Pod IP,占用交换机vSwitch的一个弹性网卡。 在Kubernetes集群环境中,ACS Pod互联互通的方法如下:
|
日志采集 | 您可以直接配置Pod的Env收集 |
资源规格
general-purpose/performace计算类
vCPU | Memory | 网络带宽(出+入)(Gbits/s)理论上限值 | 存储 |
0.25 | 0.5, 1, 2 GiB | 0.08 | 30GiB, 额外的存储空间可以通过挂载NAS 等存储卷扩展 |
0.5 | 1, 2, 4 GiB | 0.08 | |
1 | 2, 4, 8 GiB | 0.1 | |
2 | 2 ~ 16 GiB, 支持2 GiB步长 | 1 | |
4 | 4 ~ 32 GiB, 支持2 GiB步长 | 1.5 | |
6 | 6 ~ 48 GiB, 支持2 GiB步长 | 1.5 | |
8 | 8 ~ 64 GiB, 支持2 GiB步长 | 2.5 | |
12 | 12, 24, 48, 96 GiB | 2.5 | |
16 | 16, 32, 64, 128 GiB | 3 |
如不指定规格,对于general-purpose类型, 默认单个Pod的资源为0.25 vCPU和0.5 GiB内存; 对于performance类型, 默认单个Pod的资源为2 vCPU和4 GiB内存。
ACS会自动规整不支持的规格,规整后容器的resources.requests
不会变化,但Pod规格会通过alibabacloud.com/pod-use-spec
标注透出。 当容器指定的资源上限(resources.limits
) 超过了Pod的规格,ACS会生效容器的资源上限为Pod规格的资源数值。
ACS规整逻辑:如果所有容器相加的资源为2 vCPU和3 GiB内存,那么ACS将会自动规整Pod为2 vCPU和4 GiB内存。调整的额外资源会生效到第一个容器中。Pod 会透出标注alibabacloud.com/pod-use-spec=2-4Gi
。若Pod中单个容器指定了资源上限为3 vCPU和5 GiB内存,则该容器资源上限会生效成2 vCPU和4 GiB。
gpu计算类
GPU | vCPU | Memory | 网络带宽(出+入)(Gbits/s)理论上限值 | 存储 |
1 | 2 | 2 ~ 16 GiB, 支持2 GiB步长 | 1.25 | 30GiB 额外的存储空间可以通过挂载NAS 等存储卷扩展 |
4 | 4 ~ 32 GiB, 支持2 GiB步长 | 2.5 | ||
6 | 6 ~ 48 GiB, 支持2 GiB步长 | 5 | ||
8 | 8 ~ 64 GiB, 支持2 GiB步长 | 10 | ||
16 | 16, 32, 64,115 GiB | 20 | ||
2 | 16 | 16, 32, 64,128 GiB | 40 | |
32 | 32, 64,128, 230 GiB | |||
4 | 32 | 32, 64, 128, 256 GiB | 80 | |
64 | 64, 128, 256, 460 GiB | |||
8 | 64 | 64, 128, 256, 512 GiB | 160 | |
128 | 128, 256, 512, 920 GiB |
gpu-hpn计算类
高性能网络 GPU 按节点预定,可提交的 Pod 规格受节点规格约束,具体节点规格请参照购买规格说明。
GPU | vCPU | Memory | 存储 |
1 | 0~节点最大值 | 0~节点最大值 | 缺省 30GiB,用户可以指定,最大值为预定的节点规格 |
2 | 0~节点最大值 | 0~节点最大值 | |
4 | 0~节点最大值 | 0~节点最大值 | |
8 | 0~节点最大值 | 0~节点最大值 |
端口占用说明
下表为ACS占用的端口情况,在部署服务时,请您避免使用以下端口。
端口 | 说明 |
111、10250、10255 | ACS系统使用端口,exec、logs、metrics等接口使用 |