在现代云计算和容器化环境中,Pod实例是Kubernetes中最小的可部署单元,通常由一个或多个容器组成。Pod实例的计算类型和算力质量对于应用的性能以及资源利用率有着重要的影响。容器计算服务 ACS(Container Compute Service)提供了多种计算类型和相对应的算力质量,以满足多样化的业务需求。本文主要介绍ACS Pod的使用准备工作、使用限制以及核心功能,包括安全隔离、CPU/Memory/GPU资源和规格配置、镜像拉取、存储、网络和日志采集等。
计算类型定义
ACS当前提供了具有高性价比的CPU和GPU容器计算类型,不同的计算类型在资源供给上会有所区别,以适应不同的业务场景。
|
计算类型 |
标签 |
特点 |
|
通用型(默认) |
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应用的示例编排,分别指定了计算类型为通用型general-purpose、GPU型gpu和高性能网络GPU型gpu-hpn。
通用型
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
alibabacloud.com/compute-class: general-purpose
spec:
containers:
- name: nginx
image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
GPU型
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
# 指定compute-class为gpu类型
alibabacloud.com/compute-class: "gpu"
# 指定GPU型号为example-model,请按实际情况填写,如T4
alibabacloud.com/gpu-model-series: "example-model"
spec:
containers:
- name: nginx
image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
resources:
limits:
cpu: 4
memory: "8Gi"
nvidia.com/gpu: "1" # 指定GPU数量,资源标签和数量请按实际情况填写
requests:
cpu: 4
memory: "8Gi"
nvidia.com/gpu: "1" # 指定GPU数量,资源标签和数量请按实际情况填写
ACS支持的GPU卡型和规格请参见加速计算类型规格表。
高性能网络GPU型
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
# 指定compute-class为gpu-hpn类型
alibabacloud.com/compute-class: "gpu-hpn"
spec:
containers:
- name: nginx
image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
resources:
limits:
cpu: 4
memory: "8Gi"
nvidia.com/gpu: "1" # 指定GPU数量,资源标签和数量请按实际情况填写
requests:
cpu: 4
memory: "8Gi"
nvidia.com/gpu: "1" # 指定GPU数量,资源标签和数量请按实际情况填写
如需在ACS使用高性能网络GPU,请先创建GPU-HPN容量预留。
算力质量定义
ACS当前提供了2种算力质量。不同的算力质量在资源供给上会有所区别,以适应不同的业务场景。
|
算力质量 |
标签 |
特点 |
典型应用场景 |
|
默认型 |
default |
|
|
|
BestEffort型 |
best-effort |
|
|
您可以通过Pod上的alibabacloud.com/compute-qos标签来指定实例的算力质量。下面是一个Nginx应用的示例编排,指定了算力质量为默认型default。
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
alibabacloud.com/compute-qos: default
spec:
containers:
- name: nginx
image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
-
ACS算力质量定义和Kubernetes原生的QoS类型定义不同,目前默认型的算力质量对应Kubernetes的原生QoS Class是Guaranteed。
-
BestEffort算力质量实例为动态库存,强烈建议您在生产环境配置库存优先调度策略,在库存不足时由平台自动切换至默认型。更多信息,请参见自定义资源调度策略。
计算类型与算力质量的对应关系
|
计算类型(标签) |
支持的算力质量(标签) |
|
通用型(general-purpose) |
默认型(default)、BestEffort型(best-effort) |
|
性能型(performance) |
默认型(default)、BestEffort型(best-effort) |
|
GPU型(gpu) |
默认型(default)、BestEffort型(best-effort) |
|
高性能网络GPU型(gpu-hpn) |
默认型(default) |
指定CPU品牌
计算类型为通用型(general-purpose)及性能型(performance)当前提供了2个供应商的CPU算力,包括Intel和AMD。
您可以通过为Pod添加alibabacloud.com/cpu-vendors注解或者在工作负载Pod Template中定义alibabacloud.com/cpu-vendors注解来指定。除通用型(general-purpose)及性能型(performance)以外其他计算类型指定该注解会提示暂未支持CPU品牌指定。该注解支持声明值包括:
|
Key |
Value |
含义 |
|
|
intel(默认值) |
指定CPU品牌为Intel,不指定的情况下为默认值 "intel"。 |
|
amd |
指定CPU品牌为AMD。 |
|
|
intel,amd |
指定CPU品牌为Intel或者AMD,系统会根据库存供给选择合适的CPU品牌创建实例。填多个值的情况下,不支持自定义指定先后顺序。 |
实例创建成功以后,可通过Pod YAML中alibabacloud.com/cpu-vendor标签的值查看实例实际使用的CPU品牌。
以下是一个Nginx应用的示例编排,指定了CPU品牌为amd。
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
alibabacloud.com/compute-class: general-purpose
alibabacloud.com/compute-qos: default
annotations:
alibabacloud.com/cpu-vendors: amd
spec:
containers:
- name: nginx
image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
请勿将ACS系统标签(比如alibabacloud.com/compute-class、alibabacloud.com/compute-qos、alibabacloud.com/cpu-vendor等)作为工作负载matchLabels的过滤标签,这些标签可能被系统修改,导致控制器频繁重建Pod,影响应用稳定性。
核心功能
|
功能项 |
说明 |
|
安全隔离 |
作为安全可靠的Serverless容器运行环境,每个ACS Pod实例底层通过轻量级安全沙箱技术完全强隔离,实例间互不影响。同时实例在调度时尽可能分布在不同的物理机上,进一步保障了高可用性。 |
|
CPU/Memory/GPU/EphemeralStorage资源规格配置 |
|
|
镜像 |
ACS Pod默认每次启动后使用与Pod关联的VPC从远端拉取容器镜像。如果镜像为公共镜像,则需要开通VPC的NAT网关。建议您将容器镜像存储在阿里云容器镜像服务 ACR(Container Registry),通过VPC网络减少镜像拉取时间。另外,对于ACR上的私有镜像,ACS提供了免密拉取ACR镜像功能,方便您使用。 |
|
存储 |
ACS支持云盘、NAS、OSS和CPFS四种持久化存储。
|
|
网络 |
ACS Pod默认使用独立的Pod IP,占用交换机(vSwitch)的一个弹性网卡。 在ACS集群环境中,Pod互联互通的方法如下:
|
|
日志采集 |
您可以直接配置Pod的环境变量收集 |
资源规格
在ACS集群中,GPU和GPU-HPN计算类的Pod规格会在提交时自动规整(例如GPU计算类的Pod会被统一规整为Guaranteed QoS,Request与Limit相等)。在ACK集群、ACK One集群等其他渠道弹性使用ACS GPU算力时,资源规格规整不会体现在Pod元数据中,需要确保Pod在提交前后的QoS不变(例如GPU计算类需要确保提交时为Guaranteed QoS),以避免Pod状态无法更新。
通用计算类型
General-Purpose计算类型
|
vCPU |
Memory(GiB) |
Memory支持步长(GiB) |
网络带宽(出+入)(Gbits/s) |
存储 |
|
0.25 |
0.5、1、2 |
N/A |
0.08 |
30 GiB及以下容量免费,30 GiB以上容量将按照超出部分进行计费,最大支持配置2000 GiB。 如果您需要额外的存储空间,可以通过挂载NAS等存储卷扩展。 |
|
0.5 |
1~4 |
1 |
0.08 |
|
|
1 |
1~8 |
0.1 |
||
|
1.5 |
2~12 |
1 |
||
|
2 |
2~16 |
|||
|
2.5 |
3~20 |
1.5 |
||
|
3 |
3~24 |
|||
|
3.5 |
4~28 |
|||
|
4 |
4~32 |
|||
|
4.5 |
5~36 |
|||
|
5 |
5~40 |
|||
|
5.5 |
6~44 |
|||
|
6 |
6~48 |
|||
|
6.5 |
7~52 |
2.5 |
||
|
7 |
7~56 |
|||
|
7.5 |
8~60 |
|||
|
8 |
8~64 |
|||
|
8.5 |
9~68 |
|||
|
9 |
9~72 |
|||
|
9.5 |
10~76 |
|||
|
10 |
10~80 |
|||
|
10.5 |
11~84 |
|||
|
11 |
11~88 |
|||
|
11.5 |
12~92 |
|||
|
12 |
12~96 |
|||
|
12.5 |
13~100 |
3 |
||
|
13 |
13~104 |
|||
|
13.5 |
14~108 |
|||
|
14 |
14~112 |
|||
|
14.5 |
15~116 |
|||
|
15 |
15~120 |
|||
|
15.5 |
16~124 |
|||
|
16 |
16~128 |
|||
|
24 |
24、48、96、192 |
N/A |
4.5 |
|
|
32 |
32、64、128、256 |
N/A |
6 |
|
|
48 |
48、96、192、384 |
N/A |
12.5 |
|
|
64 |
64、128、256、512 |
N/A |
20 |
Performance计算类型
|
vCPU |
Memory(GiB) |
Memory支持步长(GiB) |
网络带宽(出+入)(Gbits/s) |
存储 |
|
0.25 |
0.5、1、2 |
N/A |
0.1 |
30 GiB及以下容量免费,30 GiB以上容量将按照超出部分进行计费,最大支持配置2000 GiB。 如果您需要额外的存储空间,可以通过挂载NAS等存储卷扩展。 |
|
0.5 |
1~4 |
1 |
0.5 |
|
|
1 |
1~8 |
|||
|
1.5 |
2~12 |
|||
|
2 |
2~16 |
1.5 |
||
|
2.5 |
3~20 |
|||
|
3 |
3~24 |
|||
|
3.5 |
4~28 |
|||
|
4 |
4~32 |
2 |
||
|
4.5 |
5~36 |
|||
|
5 |
5~40 |
|||
|
5.5 |
6~44 |
|||
|
6 |
6~48 |
2.5 |
||
|
6.5 |
7~52 |
|||
|
7 |
7~56 |
|||
|
7.5 |
8~60 |
|||
|
8 |
8~64 |
3 |
||
|
8.5 |
9~68 |
|||
|
9 |
9~72 |
|||
|
9.5 |
10~76 |
|||
|
10 |
10~80 |
3.5 |
||
|
10.5 |
11~84 |
|||
|
11 |
11~88 |
|||
|
11.5 |
12~92 |
|||
|
12 |
12~96 |
4 |
||
|
12.5 |
13~100 |
|||
|
13 |
13~104 |
|||
|
13.5 |
14~108 |
|||
|
14 |
14~112 |
4.5 |
||
|
14.5 |
15~116 |
|||
|
15 |
15~120 |
|||
|
15.5 |
16~124 |
|||
|
16 |
16~128 |
6 |
||
|
24 |
24、48、96、192 |
N/A |
8 |
|
|
32 |
32、64、128、256 |
N/A |
10 |
|
|
48 |
48、96、192、384 |
N/A |
16 |
|
|
64 |
64、128、256、512 |
N/A |
25 |
如需使用CPU超过16vCPU或内存超过128GiB的ACS Pod,请提交工单申请。
如不指定规格(容器的.resources.requests和.resources.limits均不设置),默认单个Pod的资源为2 vCPU和4 GiB内存。
ACS会自动规整Pod的规格,根据容器的.resources.requests或.resources.limits的累加值取最大值规整到一个最接近并且支持的规格,并通过alibabacloud.com/pod-use-spec注解透出。若发生了向上规整,ACS会调整容器的.resources.requests或.resources.limits以确保所有付费资源均可被使用到。
ACS Pod规格规整逻辑
以.resources.requests或.resources.limits的累加值为2 vCPU和3.5 GiB内存为例。在Pod启动时,ACS会自动将Pod的规格规整为2 vCPU和4 GiB内存。调整的额外资源会生效到第一个容器中,同时Pod会增加注解alibabacloud.com/pod-use-spec=2-4Gi。资源声明示例如下:
apiVersion: v1
kind: Pod
metadata:
labels:
app: nginx
alibabacloud.com/compute-class: general-purpose
alibabacloud.com/compute-qos: default
name: nginx
spec:
containers:
- name: nginx
image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
ports:
- containerPort: 80
resources:
requests:
cpu: 2 # 声明CPU为2 vCPU
memory: "3.5Gi" #声明内存为 3.5 GiB
ephemeral-storage: "30Gi" #声明存储空间为30 GiB
规整后资源声明如下:
apiVersion: v1
kind: Pod
metadata:
annotations:
alibabacloud.com/pod-use-spec: "2-4Gi"
labels:
app: nginx
alibabacloud.com/compute-class: general-purpose
alibabacloud.com/compute-qos: default
name: nginx
spec:
containers:
- name: nginx
image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
ports:
- containerPort: 80
resources:
requests:
cpu: 2 # 声明CPU为2 vCPU
memory: "4Gi" #声明内存为 4 GiB
ephemeral-storage: "30Gi" #声明存储空间为30 GiB
通过Annotation指定Pod规格
适用范围
-
仅支持通用型(general-purpose)和性能型(performance)的CPU Pod。
-
Annotation支持的最大规格为64 vCPU/512 GiB,遵循通用计算类型规格限制。
使用方式
针对服务质量QoS为Burstable的场景(.resources.limits > .resources.requests),可通过指定Annotation alibabacloud.com/pod-required-spec: "X-YGi" 声明 Pod 的目标资源规格。资源规格必须采用<CPU>-<Memory>格式,其中 CPU 单位为核数(如 "2" 表示 2 vCPU),内存单位为 GiB(如 "4Gi" 表示 4 GiB)。详细的资源对齐和使用规则如下:
-
若资源规格格式不符(如缺少单位、使用 Mi、顺序颠倒等),Pod将创建失败。
-
若设置了Annotation但未定义任何容器的
.resources,系统将严格遵循Annotation声明值进行规整,不会回退至默认规格(如2 vCPU/4 GiB)。 -
若Annotation声明值小于Pod中所有容器
.resources.requests总和,Pod将创建失败。 -
若Annotation声明值大于Pod中所有容器
.resources.limits总和,系统将把Annotation声明值作为Pod的目标规整规格。在多容器 Pod 场景下,第一个容器将被识别为主容器。Annotation声明值与
limits总和的规格差值(声明值 - 当前limits总和)将被优先分配至主容器的.resources.limits(必要时同步调整.resources.requests),以确保Pod整体资源与目标规格对齐。
使用示例
以配置alibabacloud.com/pod-required-spec: "2-4Gi",容器的.resources.requests或.resources.limits的累加值为1 vCPU和2 GiB内存为例。在Pod启动时,ACS会自动将Pod的规格规整为2 vCPU和4 GiB内存。调整的额外资源会生效到第一个容器中,同时Pod会增加注解alibabacloud.com/pod-use-spec=2-4Gi。
资源声明示例如下:
其中.resources.limits.memory为3.5Gi。apiVersion: v1
kind: Pod
metadata:
labels:
app: nginx
alibabacloud.com/compute-class: general-purpose
alibabacloud.com/compute-qos: default
annotations:
alibabacloud.com/pod-required-spec: "2-4Gi"
name: nginx
spec:
containers:
- name: nginx
image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
ports:
- containerPort: 80
resources:
requests:
cpu: 1 # 声明CPU为1 vCPU
memory: "2Gi" #声明内存为 2 GiB
ephemeral-storage: "30Gi" #声明存储空间为30 GiB
limits:
cpu: 2 # 声明CPU为2 vCPU
memory: "3.5Gi" #声明内存为 3.5 GiB
ephemeral-storage: "30Gi" #声明存储空间为30 GiB
规整后资源声明如下:
其中.resources.limits.memory从3.5Gi规整为4Gi。apiVersion: v1
kind: Pod
metadata:
annotations:
alibabacloud.com/pod-required-spec: "2-4Gi"
alibabacloud.com/pod-use-spec: "2-4Gi"
labels:
app: nginx
alibabacloud.com/compute-class: general-purpose
alibabacloud.com/compute-qos: default
name: nginx
spec:
containers:
- name: nginx
image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
ports:
- containerPort: 80
resources:
requests:
cpu: 1 # 声明CPU为1 vCPU
memory: "2Gi" #声明内存为 2 GiB
ephemeral-storage: "30Gi" #声明存储空间为30 GiB
limits:
cpu: 2 # 声明CPU为2 vCPU
memory: "4Gi" #声明内存为 4 GiB
ephemeral-storage: "30Gi" #声明存储空间为30 GiB
加速计算类型
以下为ACS支持的GPU卡型,不同卡型的规格会有一定的差异。具体规格对应关系,请提交工单获取。
GU8TF
|
GPU(卡) |
vCPU |
Memory(GiB) |
Memory支持步长(GiB) |
存储(GiB) |
|
1(96G显存) |
2 |
2 ~ 16 |
1 |
30 ~ 256 |
|
4 |
4 ~ 32 |
1 |
||
|
6 |
6 ~ 48 |
1 |
||
|
8 |
8 ~ 64 |
1 |
||
|
10 |
10 ~ 80 |
1 |
||
|
12 |
12 ~ 96 |
1 |
||
|
14 |
14 ~ 112 |
1 |
||
|
16 |
16 ~ 128 |
1 |
||
|
22 |
22, 32, 64, 128 |
N/A |
||
|
2(96Gx2显存) |
16 |
16 ~ 128 |
1 |
30 ~ 512 |
|
32 |
32, 64, 128, 230 |
N/A |
||
|
46 |
64, 128, 230 |
N/A |
||
|
4(96Gx4显存) |
32 |
32, 64, 128, 256 |
N/A |
30 ~ 1024 |
|
64 |
64, 128, 256, 460 |
N/A |
||
|
92 |
128, 256, 460 |
N/A |
||
|
8(96Gx8显存) |
64 |
64, 128, 256, 512 |
N/A |
30 ~ 2048 |
|
128 |
128, 256, 512, 920 |
N/A |
||
|
184 |
256, 512, 920 |
N/A |
GU8TEF
|
GPU(卡) |
vCPU |
Memory(GiB) |
Memory支持步长(GiB) |
存储(GiB) |
|
1(141G显存) |
2 |
2 ~ 16 |
1 |
30 ~ 768 |
|
4 |
4 ~ 32 |
1 |
||
|
6 |
6 ~ 48 |
1 |
||
|
8 |
8 ~ 64 |
1 |
||
|
10 |
10 ~ 80 |
1 |
||
|
12 |
12 ~ 96 |
1 |
||
|
14 |
14 ~ 112 |
1 |
||
|
16 |
16 ~ 128 |
1 |
||
|
22 |
22, 32, 64, 128, 225 |
N/A |
||
|
2(141Gx2显存) |
16 |
16 ~ 128 |
1 |
30 ~ 1536 |
|
32 |
32, 64, 128, 256 |
N/A |
||
|
46 |
64, 128, 256, 450 |
N/A |
||
|
4(141Gx4显存) |
32 |
32, 64, 128, 256 |
N/A |
30 ~ 3072 |
|
64 |
64, 128, 256, 512 |
N/A |
||
|
92 |
128, 256, 512, 900 |
N/A |
||
|
8(141Gx8显存) |
64 |
64, 128, 256, 512 |
N/A |
30 ~ 6144 |
|
128 |
128, 256, 512, 1024 |
N/A |
||
|
184 |
256, 512, 1024, 1800 |
N/A |
L20(GN8IS)
|
GPU(卡) |
vCPU |
Memory(GiB) |
Memory支持步长(GiB |
存储(GiB) |
|
1(48G显存) |
2 |
2 ~ 16 |
1 |
30 ~ 256 |
|
4 |
4 ~ 32 |
1 |
||
|
6 |
6 ~ 48 |
1 |
||
|
8 |
8 ~ 64 |
1 |
||
|
10 |
10 ~ 80 |
1 |
||
|
12 |
12 ~ 96 |
1 |
||
|
14 |
14 ~ 112 |
1 |
||
|
16 |
16 ~ 120 |
1 |
||
|
2(48Gx2显存) |
16 |
16 ~ 128 |
1 |
30 ~ 512 |
|
32 |
32, 64, 128, 230 |
N/A |
||
|
4(48Gx4显存) |
32 |
32, 64, 128, 256 |
N/A |
30 ~ 1024 |
|
64 |
64, 128, 256, 460 |
N/A |
||
|
8(48Gx8显存) |
64 |
64, 128, 256, 512 |
N/A |
30 ~ 2048 |
|
128 |
128, 256, 512, 920 |
N/A |
L20X(GX8SF)
|
GPU(卡) |
vCPU |
Memory(GiB) |
Memory支持步长(GiB) |
存储(GiB) |
|
8(141Gx8显存) |
184 |
1800 |
N/A |
30 ~ 6144 |
P16EN
|
GPU(卡) |
vCPU |
Memory(GiB) |
Memory支持步长(GiB) |
存储(GiB) |
|
1(96G显存) |
2 |
2~16 |
1 |
30 ~ 384 |
|
4 |
4~32 |
1 |
||
|
6 |
6~48 |
1 |
||
|
8 |
8~64 |
1 |
||
|
10 |
10~80 |
1 |
||
|
2(96Gx2显存) |
4 |
4~32 |
1 |
30 ~ 768 |
|
6 |
6~48 |
1 |
||
|
8 |
8~64 |
1 |
||
|
16 |
16~128 |
1 |
||
|
22 |
32, 64, 128, 225 |
N/A |
||
|
4(96Gx4显存) |
8 |
8~64 |
1 |
30 ~ 1536 |
|
16 |
16~128 |
1 |
||
|
32 |
32, 64, 128, 256 |
N/A |
||
|
46 |
64, 128, 256, 450 |
N/A |
||
|
8(96Gx8显存) |
16 |
16~128 |
1 |
30 ~ 3072 |
|
32 |
32, 64, 128, 256 |
N/A |
||
|
64 |
64, 128, 256, 512 |
N/A |
||
|
92 |
128, 256, 512, 900 |
N/A |
||
|
16(96Gx16显存) |
32 |
32, 64, 128, 256 |
N/A |
30 ~ 6144 |
|
64 |
64, 128, 256, 512 |
N/A |
||
|
128 |
128, 256, 512, 1024 |
N/A |
||
|
184 |
256, 512, 1024, 1800 |
N/A |
T4
|
GPU(卡) |
vCPU |
Memory(GiB) |
Memory支持步长(GiB) |
存储(GiB) |
|
1(16G显存) |
2 |
2~8 |
1 |
30 ~ 1536 |
|
4 |
4~16 |
1 |
||
|
6 |
6~24 |
1 |
||
|
8 |
8~32 |
1 |
||
|
10 |
10~40 |
1 |
||
|
12 |
12~48 |
1 |
||
|
14 |
14~56 |
1 |
||
|
16 |
16~64 |
1 |
||
|
24 |
24, 48, 90 |
N/A |
30 ~ 1536 |
|
|
2(16Gx2显存) |
16 |
16~64 |
1 |
|
|
24 |
24, 48, 96 |
N/A |
||
|
32 |
32, 64, 128 |
N/A |
||
|
48 |
48, 96, 180 |
N/A |
A10
|
GPU(卡) |
vCPU |
Memory(GiB) |
Memory支持步长(GiB) |
存储(GiB) |
|
1(24G显存) |
2 |
2~8 |
1 |
30 ~ 256 |
|
4 |
4~16 |
1 |
||
|
6 |
6~24 |
1 |
||
|
8 |
8~32 |
1 |
||
|
10 |
10~40 |
1 |
||
|
12 |
12~48 |
1 |
||
|
14 |
14~56 |
1 |
||
|
16 |
16~60 |
1 |
||
|
2(24Gx2显存) |
16 |
16~64 |
1 |
30 ~ 512 |
|
32 |
32, 64, 120 |
N/A |
||
|
4(24Gx4显存) |
32 |
32, 64, 128 |
N/A |
30 ~ 1024 |
|
64 |
64, 128, 240 |
N/A |
||
|
8(24Gx8显存) |
64 |
64, 128, 256 |
N/A |
30 ~ 2048 |
|
128 |
128, 256, 480 |
N/A |
G28Ti
|
GPU(卡) |
vCPU |
Memory(GiB) |
Memory支持步长(GiB) |
存储(GiB) |
|
1(11G显存) |
2 |
2~8 |
1 |
30 ~ 1536 |
|
4 |
4~16 |
1 |
||
|
6 |
6~24 |
1 |
||
|
8 |
8~32 |
1 |
||
|
10 |
10~40 |
1 |
||
|
12 |
12~48 |
1 |
G49E
|
GPU(卡) |
vCPU |
Memory(GiB) |
Memory支持步长(GiB) |
存储(GiB) |
|
1(48G显存) |
2 |
2~16 |
1 |
30 ~ 256 |
|
4 |
4~32 |
1 |
||
|
6 |
6~48 |
1 |
||
|
8 |
8~64 |
1 |
||
|
10 |
10~80 |
1 |
||
|
12 |
12~96 |
1 |
||
|
14 |
14~112 |
1 |
||
|
16 |
16~120 |
1 |
||
|
2(48Gx2显存) |
16 |
16~128 |
1 |
30 ~ 512 |
|
32 |
32, 64, 128, 230 |
N/A |
||
|
4(48Gx4显存) |
32 |
32, 64, 128, 256 |
N/A |
30 ~ 1024 |
|
64 |
64, 128, 256, 460 |
N/A |
||
|
8(48Gx8显存) |
64 |
64, 128, 256, 512 |
N/A |
30 ~ 2048 |
|
128 |
128, 256, 512, 920 |
N/A |
G59
|
GPU(卡) |
vCPU |
Memory(GiB) |
Memory支持步长(GiB) |
存储(GiB) |
|
1(32G显存) |
2 |
2 ~ 16 |
1 |
30 ~ 256 |
|
4 |
4 ~ 32 |
1 |
||
|
6 |
6 ~ 48 |
1 |
||
|
8 |
8 ~ 64 |
1 |
||
|
10 |
10 ~ 80 |
1 |
||
|
12 |
12 ~ 96 |
1 |
||
|
14 |
14 ~ 112 |
1 |
||
|
16 |
16 ~ 128 |
1 |
||
|
22 |
22,32,64,128 |
N/A |
||
|
2(32Gx2显存) |
16 |
16 ~ 128 |
1 |
30 ~ 512 |
|
32 |
32,64,128,256 |
N/A |
||
|
46 |
64,128,256,360 |
N/A |
||
|
4(32Gx4显存) |
32 |
32,64,128,256 |
N/A |
30 ~ 1024 |
|
64 |
64,128,256,512 |
N/A |
||
|
92 |
128,256,512,720 |
N/A |
||
|
8(32Gx8显存) |
64 |
64,128,256,512 |
N/A |
30 ~ 2048 |
|
128 |
128,256,512,1024 |
N/A |
||
|
184 |
256,512,1024,1440 |
N/A |
L20N
|
GPU(卡) |
vCPU |
Memory(GiB) |
Memory支持步长(GiB) |
存储(GiB) |
|
1(48G显存) |
2 |
2 ~ 16 |
1 |
30 ~ 2048 |
|
4 |
4 ~ 32 |
1 |
||
|
6 |
6 ~ 48 |
1 |
||
|
8 |
8 ~ 64 |
1 |
||
|
10 |
10 ~ 80 |
1 |
||
|
12 |
12 ~ 96 |
1 |
||
|
14 |
14 ~ 112 |
1 |
||
|
16 |
16 ~ 128 |
1 |
||
|
32 |
32,64,128,256 |
N/A |
||
|
2(48Gx2显存) |
16 |
16 ~ 128 |
1 |
|
|
32 |
32,64,128,256 |
N/A |
||
|
64 |
64,128,256,512 |
N/A |
||
|
4(48Gx4显存) |
32 |
32,64,128,256 |
N/A |
|
|
64 |
64,128,256,512 |
N/A |
||
|
128 |
128,256,512,1024 |
N/A |
||
|
8(48Gx8显存) |
64 |
64,128,256,512 |
N/A |
|
|
128 |
128,256,512,1024 |
N/A |
||
|
256 |
256,512,1024,2048 |
N/A |
L20NE
|
GPU(卡) |
vCPU |
Memory(GiB) |
Memory支持步长(GiB) |
存储(GiB) |
|
1(72G显存) |
2 |
2 ~ 16 |
1 |
30 ~ 2048 |
|
4 |
4 ~ 32 |
1 |
||
|
6 |
6 ~ 48 |
1 |
||
|
8 |
8 ~ 64 |
1 |
||
|
10 |
10 ~ 80 |
1 |
||
|
12 |
12 ~ 96 |
1 |
||
|
14 |
14 ~ 112 |
1 |
||
|
16 |
16 ~ 128 |
1 |
||
|
32 |
32,64,128,180 |
N/A |
||
|
2(72Gx2显存) |
16 |
16 ~ 128 |
1 |
|
|
32 |
32,64,128,256 |
N/A |
||
|
64 |
64,128,256,360 |
N/A |
||
|
4(72Gx4显存) |
32 |
32,64,128,256 |
N/A |
|
|
64 |
64,128,256,512 |
N/A |
||
|
128 |
128,256,512,720 |
N/A |
||
|
8(72Gx8显存) |
64 |
64,128,256,512 |
N/A |
|
|
128 |
128,256,512,1024 |
N/A |
||
|
256 |
256,512,1024,1440 |
N/A |
上述所有卡型在按量使用、容量预留和BestEffort等场景下共用相同的规格。其中:
-
16GiB内存及以下的规格,内存开销由ACS承担;16GiB内存以上规格,内存开销将分摊到对应的Pod中,请务必确保为应用预留足够的资源,以保证其稳定运行。
-
30GB及以下容量的系统盘不收取额外费用(含镜像大小),30GB以上系统盘将按照超出部分进行计费。
规格自动规整
如不指定规格,GPU容器Pod会根据GPU类型选择最小规格Pod(如上表是2 vCPU,2GiB内存和1卡GPU)。
ACS会自动规整不支持的规格,规整后容器的.resources.requests 不会变化,但Pod规格会通过alibabacloud.com/pod-use-spec注解透出。 当容器指定的资源上限(resources.limits)超过了Pod的规格,ACS会以Pod规格来设置容器的资源上限。
-
CPU和Memory规整逻辑:如果所有容器相加的资源为2 vCPU和3.5 GiB内存,那么ACS将会自动规整Pod为2 vCPU和4 GiB内存。调整的额外资源会生效到第一个容器中。Pod会透出注解
alibabacloud.com/pod-use-spec=2-4Gi。若Pod中单个容器指定了资源上限为3 vCPU和5 GiB内存,则该容器资源上限会生效成2 vCPU和5 GiB。 -
GPU规整逻辑:Pod申请的GPU数量不在表格中时,Pod提交失败。
GPU-HPN计算类
对于高性能网络GPU型的资源规整,ACS会以request为准,将request与limit对齐相等。此外,Pod的资源规格还受节点容量约束,规格超过节点容量时Pod会因资源不足导致pending,具体节点规格请参照购买规格说明。
Kubernetes应用限制
ACS通过虚拟节点与Kubernetes实现无缝对接,因此ACS Pod实例并不会运行在一个集中式的真实节点上,而是打散分布在整个阿里云的资源池中。基于公有云的安全性和虚拟节点本身带来的限制,ACS对Kubernetes中的HostPath、DaemonSet等功能存在一定的使用限制,具体如下表所示。
|
限制项 |
说明 |
校验失败时处理策略 |
推荐替代方案 |
|
DaemonSet |
限制使用DaemonSet类工作负载 |
Pod运行但无法正常工作 |
通过Sidecar形式在Pod中部署多个容器 |
|
type=NodePort的Service |
将宿主机端口映射到容器上 |
拒绝提交 |
使用 |
|
HostNetwork |
使用宿主机网络 |
实际生效为 |
无需使用 |
|
HostIPC |
限制容器进程和宿主机进程间通信 |
实际生效为 |
无需使用 |
|
HostPID |
限制容器可见宿主机PID空间 |
实际生效为 |
无需使用 |
|
HostUsers |
限制使用用户命名空间 |
不校验 |
无需使用 |
|
HostPort |
限制将宿主机端口映射到容器上 |
实际生效为空值 |
无需使用 |
|
Runtimeclass |
指定容器运行时配置 |
拒绝提交 |
无需使用 |
|
DNSPolicy |
限制使用特定的DNSPolicy 说明
|
|
使用允许值 |
|
容器环境变量格式 |
在Kubernetes APIServer对环境变量的默认约束以外,对于GPU和GPU-HPN计算类,ACS要求环境变量名称必须由字母、数字、下划线、点或连字符组成,但第一个字符不能是数字。 |
Pod启动失败。 |
使用符合规范的环境变量名。 |
|
容器环境变量数量 |
受Linux系统对系统调用的参数列表长度约束,需要限制单个容器的环境变量数量(约2000以内)。 此外,若Pod开启enableServiceLinks(默认值为true),当前命名空间中所有Service的信息以环境变量形式注入到容器中,也可能导致环境变量总数超过系统限制。 |
Pod启动失败。 |
减少容器环境变量数量,对于Service较多的情况,为Pod关闭enableServiceLinks配置。 |
容器安全验证
Kubernetes容器安全验证和配置是为了确保容器化应用在部署和运行时的安全性,防止潜在的攻击和数据泄露。通过检查和配置适当的安全上下文,企业能够有效地减少安全漏洞的风险,保护应用程序及其处理的数据免受恶意行为或配置错误的影响,从而提升整体系统的安全性和合规性。
如果业务场景需要开放容器安全验证,可以提交工单放开限制,但由此带来的安全风险需要业务承担一定责任,相关机制请参见安全责任共担模型。具体限制项如下表所示:
|
限制项 |
说明 |
校验失败时处理策略 |
推荐替代方案 |
|
Privileged Container |
限制容器拥有privileged权限 (securityContext.privileged) |
启动失败 |
使用Security Context为Pod添加允许的capability或sysctl |
|
PrivilegeEscalation |
限制容器进行特权提升(securityContext.allowPrivilegeEscalation) |
启动失败 |
使用默认配置 |
|
Linux capabilities |
限制Linux系统特权使用(securityContext.capabilities) 说明
支持配置以下选项:
|
启动失败 |
使用允许值 |
|
HostPath |
限制挂载本地宿主机文件到容器中 说明
支持配置以下选项:
GPU、GPU-HPN计算类不支持SubPath配置。 |
启动失败 |
使用emptyDir、云盘或者NAS文件系统 |
|
Sysctl |
限制内核参数(securityContext.sysctls)使用 说明
支持配置以下选项:
|
启动失败 |
使用允许值 |
端口占用说明
下表为ACS占用的端口情况,在部署服务时,请您避免使用以下端口。
|
端口 |
说明 |
|
111、10250、10255 |
ACS集群使用端口,exec、logs、metrics等接口使用。 |