All Products
Search
Document Center

Container Compute Service:ACS pod overview

Last Updated:Jan 23, 2026

In modern cloud computing and containerized environments, a pod is the smallest deployable unit in Kubernetes and typically consists of one or more containers. The compute class and computing quality of a pod significantly affect application performance and resource utilization. Container Compute Service (ACS) provides multiple compute classes and corresponding computing quality levels to meet diverse business requirements. This topic describes the prerequisites, limits, and core features of ACS pods. These features include security isolation, CPU, memory, and GPU resource configuration, image pulling, storage, networking, and log collection.

Compute classes

ACS offers cost-effective CPU and GPU container compute classes. Different compute classes vary in resource allocation to suit different business scenarios.

Compute Type

Label

Features

General-purpose (default)

general-purpose

Suitable for most stateless microservice applications, Java web applications, and compute-intensive tasks.

Performance-enhanced

performance

Suitable for high-performance scenarios such as CPU-based AI/ML training and inference, and HPC batch processing.

GPU-accelerated

gpu

Suitable for heterogeneous computing scenarios such as AI and HPC, including single-GPU or multi-GPU inference and GPU parallel computing.

GPU-HPN

gpu-hpn

Suitable for heterogeneous computing scenarios such as AI and HPC, including GPU distributed training, distributed inference, and GPU-accelerated high-performance computing.

You can specify a pod's compute class by adding the alibabacloud.com/compute-class label to the pod. The following examples show Nginx application deployments with compute classes set to general-purpose, gpu, and gpu-hpn.

General-purpose

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-accelerated

apiVersion: apps/v1 
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
        # Set compute-class to gpu.
        alibabacloud.com/compute-class: "gpu"
        # Set GPU model to example-model. Replace with your actual GPU model, such as 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" # Specify the number of GPUs. Set the resource label and quantity based on your actual needs.
          requests:
            cpu: 4
            memory: "8Gi"
            nvidia.com/gpu: "1" # Specify the number of GPUs. Set the resource label and quantity based on your actual needs.
Note

For more information about the GPU models and specifications that are supported by ACS, see Accelerated compute instance types.

High-Performance Network GPU Type

apiVersion: apps/v1 
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
        # Set compute-class to 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" # Specify the number of GPUs. Set the resource label and quantity based on your actual needs.
          requests:
            cpu: 4
            memory: "8Gi"
            nvidia.com/gpu: "1" # Specify the number of GPUs. Set the resource label and quantity based on your actual needs.
Note

To use HPN GPUs in ACS, you must first create a GPU-HPN capacity reservation.

Definition of computing power quality

ACS provides two computing quality classes. These classes differ in resource allocation to suit different business scenarios.

Computing quality

Label

Features

Typical scenarios

Default

default

  • May experience minor computing power fluctuations.

  • Forced instance eviction does not occur. Instead, instance failures are resolved through hot migration, or you are notified to trigger an eviction.

  • Microservice applications

  • Web applications

  • Computing tasks

BestEffort

best-effort

  • May experience minor computing power fluctuations.

  • Pods may be forcibly preempted and evicted. ACS sends an event notification five minutes before eviction.

  • Big data computing

  • Audio and video transcoding

  • Batch processing tasks

You can specify a pod's computing quality by adding the alibabacloud.com/compute-qos label to the pod. The following example shows an Nginx application deployment with the computing quality set to 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 
Note
  • ACS computing quality classes differ from Kubernetes native QoS classes. The default computing quality class in ACS corresponds to the Guaranteed QoS class in Kubernetes.

  • BestEffort instances use a dynamic inventory. In production environments, you can configure inventory-priority scheduling so that ACS automatically switches to the default class when the BestEffort inventory is unavailable. For more information, see Custom resource scheduling policies.

Mapping between compute classes and computing quality classes

Compute class (label)

Supported computing quality (label)

General-purpose (general-purpose)

Default (default), BestEffort (best-effort)

Performance-enhanced (performance)

Default (default), BestEffort (best-effort)

GPU-accelerated (gpu)

Default (default), BestEffort (best-effort)

GPU-HPN (gpu-hpn)

Default (default)

Specify CPU vendor

For general-purpose and performance-enhanced compute classes, you can choose between Intel and AMD CPUs.

To specify a CPU vendor, you can add the alibabacloud.com/cpu-vendors annotation to your pod or define the alibabacloud.com/cpu-vendors annotation in your workload's pod template. To specify AMD CPUs, you must submit a ticket to add your account to the whitelist. Specifying a CPU brand is not supported for instance types other than General-purpose and Performance-enhanced. The supported values for this annotation are listed below:

Key

Value

Description

alibabacloud.com/cpu-vendors

intel (default)

Specifies an Intel CPU. If unspecified, defaults to intel.

amd

Specifies an AMD CPU.

intel,amd

Allows either Intel or AMD CPUs. ACS selects a CPU vendor based on current inventory. You cannot specify a preferred order.

After the instance is created, you can check the alibabacloud.com/cpu-vendor label in the pod YAML to verify the CPU vendor that is used.

The following example shows a Deployment for an Nginx application that specifies the CPU brand as 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 
Warning

Do not use ACS system labels, such as alibabacloud.com/compute-class, alibabacloud.com/compute-qos, and alibabacloud.com/cpu-vendor, in the matchLabels selector of your workload controller. These labels may be modified by the system. This can cause the controller to frequently recreate pods and affect application stability.

Core features

Feature

Description

Security isolation

ACS pods run in a secure and reliable serverless container environment. Each pod is fully isolated at the underlying layer using lightweight sandbox technology, ensuring no interference between pods. Additionally, ACS schedules pods across different physical machines whenever possible to enhance high availability.

CPU, memory, GPU, and ephemeral storage configuration

  • Specify resource requests for CPU, memory, ephemeral storage, and GPU for each container using standard Kubernetes methods (resources.requests). The pod’s total resource request is the sum of all its containers’ requests. ACS automatically adjusts the pod specification.

  • Specify resource limits for CPU, memory, ephemeral storage, and GPU for each container using standard Kubernetes methods (resources.limits). If unspecified, the default resource limit for a container equals the adjusted total resource request of all containers in the pod.

Image

By default, each time an ACS pod starts, it pulls the container image through the VPC associated with the pod. If the image is public, you must enable a NAT gateway for the VPC. We recommend storing container images in Alibaba Cloud Container Registry (ACR) to reduce image pull time over the VPC network. Additionally, ACS provides passwordless ACR image pulling for private ACR images.

Storage

ACS supports four types of persistent storage: cloud disks, NAS, OSS, and CPFS.

Network

By default, each ACS pod uses a dedicated pod IP address and occupies one elastic network interface (ENI) from a vSwitch.

In ACS clusters, pods communicate using the following methods:

Log collection

Configure pod environment variables to collect stdout or file logs and send them to Alibaba Cloud Simple Log Service (SLS).

Resource specifications

Warning

In ACS clusters, pod specifications for GPU and GPU-HPN compute classes are automatically adjusted when the pod is submitted. For example, GPU compute class pods are adjusted to the Guaranteed QoS class, where requests equal limits. When you use ACS GPU capacity elastically through other channels, such as ACK clusters or ACK One clusters, specification adjustments are not reflected in the pod metadata. To prevent pod status update failures, ensure that the pod's QoS class remains unchanged before and after submission. For example, GPU compute class pods must be submitted with the Guaranteed QoS class.

General-purpose compute classes

General-purpose compute class

vCPU

Memory (GiB)

Memory step size (GiB)

Network bandwidth (bidirectional) (Gbit/s)

Storage

0.25

0.5, 1, 2

N/A

0.08

Storage up to 30 GiB is free. Capacity beyond 30 GiB is billed for the excess, with a maximum of 512 GiB.

To expand storage, mount NAS volumes or other storage types.

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-enhanced compute class

vCPU

Memory (GiB)

Memory step size (GiB)

Network bandwidth (bidirectional) (Gbit/s)

Storage

0.25

0.5, 1, 2

N/A

0.1

Storage up to 30 GiB is free. Capacity beyond 30 GiB is billed for the excess, with a maximum of 512 GiB.

To expand storage, mount NAS volumes or other storage types.

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

Important

To use ACS pods with more than 16 vCPUs or 128 GiB of memory, you must submit a ticket.

If you do not specify resource requests or limits for containers (neither .resources.requests nor .resources.limits), each pod defaults to 2 vCPUs and 4 GiB of memory.

ACS automatically adjusts pod specifications by rounding the total container .resources.requests or .resources.limits up to the nearest supported specification. The adjusted specification is available in the alibabacloud.com/pod-use-spec annotation. If the specification is rounded up, ACS adjusts the container's .resources.requests or .resources.limits to ensure that all paid resources are utilized.

ACS pod specification adjustment logic

For example, if the sum of .resources.requests or .resources.limits is 2 vCPUs and 3.5 GiB of memory, ACS automatically adjusts the pod specification to 2 vCPUs and 4 GiB of memory upon startup. The additional resources are applied to the first container, and the pod receives the annotation alibabacloud.com/pod-use-spec=2-4Gi. Example resource declaration:

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 # Request 2 vCPUs.
        memory: "3.5Gi" # Request 3.5 GiB of memory.
        ephemeral-storage: "30Gi" # Request 30 GiB of storage.

Adjusted resource declaration:

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 # Request 2 vCPUs.
        memory: "4Gi" # Request 4 GiB of memory.
        ephemeral-storage: "30Gi" # Request 30 GiB of storage.

Specify pod specifications using annotations

Applicable scope

  • This feature supports only CPU pods of the general-purpose and performance-enhanced compute classes.

  • The maximum specification supported by the annotation is 64 vCPUs and 512 GiB of memory, which is subject to the limits described in General-purpose compute class specifications.

Usage

For scenarios where the pod's Quality of Service (QoS) class is Burstable (.resources.limits > .resources.requests), you can declare the target resource specifications for the pod by specifying the annotation alibabacloud.com/pod-required-spec: "X-YGi". The resource specifications must be in the <CPU>-<Memory> format, where CPU is specified in cores (for example, "2" represents 2 vCPUs) and memory is specified in GiB (for example, "4Gi" represents 4 GiB). The detailed resource adjustment and usage rules are as follows:

  1. If the specification format is invalid (for example, it is missing units, uses Mi, or is in the incorrect order), the pod fails to be created.

  2. If the annotation is set but no container defines .resources, ACS strictly follows the annotation value and does not fall back to the default specification (for example, 2 vCPUs and 4 GiB of memory).

  3. If the annotation value is less than the sum of all containers' .resources.requests, the pod fails to be created.

  4. If the annotation value exceeds the sum of all containers' .resources.limits, ACS uses the annotation value as the target specification.

    In multi-container pods, the first container is identified as the primary container. The difference between the annotation value and the sum of the current limits is allocated to the primary container's .resources.limits (and .resources.requests if necessary) so that the pod's total resources match the target specification.

Example

For example, if you set the annotation to alibabacloud.com/pod-required-spec: "2-4Gi" and the sum of the container's .resources.requests or .resources.limits is 1 vCPU and 2 GiB of memory, ACS automatically sets the pod specification to 2 vCPUs and 4 GiB of memory when it launches the pod. The additional resources are applied to the first container, and the pod is annotated with alibabacloud.com/pod-use-spec=2-4Gi.

Example resource declaration:

In this example, .resources.limits.memory is 3.5 GiB.
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 # Request 1 vCPU.
        memory: "2Gi" # Request 2 GiB of memory.
        ephemeral-storage: "30Gi" # Request 30 GiB of storage.
      limits:
        cpu: 2 # Request 2 vCPUs.
        memory: "3.5Gi" # Request 3.5 GiB of memory.
        ephemeral-storage: "30Gi" # Request 30 GiB of storage.

Adjusted resource declaration:

In the adjusted declaration, .resources.limits.memory is changed from 3.5 GiB to 4 GiB.
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 # Request 1 vCPU.
        memory: "2Gi" # Request 2 GiB of memory.
        ephemeral-storage: "30Gi" # Request 30 GiB of storage.
      limits:
        cpu: 2 # Request 2 vCPUs.
        memory: "4Gi" # Request 4 GiB of memory.
        ephemeral-storage: "30Gi" # Request 30 GiB of storage.

Accelerated compute classes

The following GPU models are supported by ACS. Specifications vary by model. To learn about the specific mappings, submit a ticket.

GU8TF

GPU (cards)

vCPU

Memory (GiB)

Memory step size (GiB)

Storage (GiB)

1 (96 GB GPU memory)

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 (96 GB × 2 GPU memory)

16

16–128

1

30–512

32

32, 64, 128, 230

N/A

46

64, 128, 230

N/A

4 (96 GB × 4 GPU memory)

32

32, 64, 128, 256

N/A

30–1024

64

64, 128, 256, 460

N/A

92

128, 256, 460

N/A

8 (96 GB GPU memory)

64

64, 128, 256, 512

N/A

30–2048

128

128, 256, 512, 920

N/A

184

256, 512, 920

N/A

GU8TEF

GPU (cards)

vCPU

Memory (GiB)

Memory step size (GiB)

Storage (GiB)

1 (141 GB GPU memory)

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 × 141 GB GPU memory

16

16–128

1

30–1536

32

32, 64, 128, 256

N/A

46

64, 128, 256, 450

N/A

4 (141 GB × 4 GPU memory)

32

32, 64, 128, 256

N/A

30–3072

64

64, 128, 256, 512

N/A

92

128, 256, 512, 900

N/A

8 × 141 GB GPU memory

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 (cards)

vCPU

Memory (GiB)

Memory step size (GiB)

Storage (GiB)

1 (48 GB GPU memory)

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 (48 GB × 2 GPU memory)

16

16–128

1

30–512

32

32, 64, 128, 230

N/A

4 (48 GB × 4 GPU memory)

32

32, 64, 128, 256

N/A

30–1024

64

64, 128, 256, 460

N/A

8 (48 GB × 8 GPU memory)

64

64, 128, 256, 512

N/A

30–2048

128

128, 256, 512, 920

N/A

L20X (GX8SF)

GPU (cards)

vCPU

Memory (GiB)

Memory step size (GiB)

Storage (GiB)

8 (141 GB × 8 GPU memory)

184

1800

N/A

30–6144

P16EN

GPU (cards)

vCPU

Memory (GiB)

Memory step size (GiB)

Storage (GiB)

1 (96 GB GPU memory)

2

2–16

1

30–384

4

4–32

1

6

6–48

1

8

8–64

1

10

10–80

1

2 (96 GB × 2 GPU memory)

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 (96 GB × 4 GPU memory)

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 (96 GB × 8 GPU memory)

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 × 96 GB GPU memory

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

G49E

GPU (cards)

vCPU

Memory (GiB)

Memory step size (GiB)

Storage (GiB)

1 (48 GB GPU memory)

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 (48 GB × 2 GPU memory)

16

16–128

1

30–512

32

32, 64, 128, 230

N/A

4 (48 GB × 4 GPU memory)

32

32, 64, 128, 256

N/A

30–1024

64

64, 128, 256, 460

N/A

8 (48 GB × 8 GPU memory)

64

64, 128, 256, 512

N/A

30–2048

128

128, 256, 512, 920

N/A

T4

GPU (cards)

vCPU

Memory (GiB)

Memory step size (GiB)

Storage (GiB)

1 (16 GB GPU memory)

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 (16 GB × 2 GPU memory)

16

16–64

1

24

24, 48, 96

N/A

32

32, 64, 128

N/A

48

48, 96, 180

N/A

A10

GPU (cards)

vCPU

Memory (GiB)

Memory step size (GiB)

Storage (GiB)

1 (24 GB GPU memory)

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 (24 GB × 2 GPU memory)

16

16–64

1

30–512

32

32, 64, 120

N/A

4 (24 GB × 4 GPU memory)

32

32, 64, 128

N/A

30–1024

64

64, 128, 240

N/A

8 (24 GB × 8 GPU memory)

64

64, 128, 256

N/A

30–2048

128

128, 256, 480

N/A

G59

GPU (cards)

vCPU

Memory (GiB)

Memory step size (GiB)

Storage (GiB)

Network

1 (32 GB GPU memory)

2

2–16

1

30–256

1 Gbps per vCPU

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 (32 GB × 2 GPU memory)

16

16–128

1

30–512

32

32, 64, 128, 256

N/A

46

64, 128, 256, 360

N/A

4 (32 GB × 4 GPU memory)

32

32, 64, 128, 256

N/A

30–1024

64

64, 128, 256, 512

N/A

92

128, 256, 512, 720

N/A

8 (32 GB × 8 GPU memory)

64

64, 128, 256, 512

N/A

30–2048

128

128, 256, 512, 1024

N/A

100 Gbps

184

256, 512, 1024, 1440

N/A

Important

All GPU models share the same specifications across pay-as-you-go, capacity reservation, and BestEffort scenarios. Specifically:

  • For specifications with 16 GiB of memory or less, the memory overhead is handled by ACS. For specifications with more than 16 GiB of memory, the memory overhead is allocated to the corresponding pod. Ensure that you reserve sufficient resources for your application to guarantee stable operation.

  • System disks up to 30 GiB, including the image size, do not incur additional charges. If a system disk is larger than 30 GiB, you are billed for the excess amount.

Automatic specification adjustment

If you do not specify a specification, GPU container pods use the smallest pod specification based on the GPU type. For example, 2 vCPUs, 2 GiB of memory, and one GPU card.

ACS automatically adjusts unsupported specifications. After the adjustment, the container's .resources.requests remains unchanged, but the pod specification is available in the alibabacloud.com/pod-use-spec annotation. If a container's specified resource limit (resources.limits) exceeds the pod specification, ACS sets the container's resource limit to the pod specification.

Note
  • CPU and memory adjustment logic: If the total resources of all containers sum to 2 vCPUs and 3.5 GiB of memory, ACS automatically adjusts the pod to 2 vCPUs and 4 GiB of memory. The additional resources are applied to the first container, and the pod receives the annotation alibabacloud.com/pod-use-spec=2-4Gi. If a single container in the pod specifies a resource limit of 3 vCPUs and 5 GiB of memory, the container's resource limit is adjusted to 2 vCPUs and 5 GiB.

  • GPU adjustment logic: If the requested GPU count is not listed in the table, the pod submission fails.

GPU-HPN compute class

For GPU-HPN compute classes, ACS aligns resource requests and limits by setting limits equal to requests. Additionally, pod specifications are constrained by the node capacity. If the specification exceeds the node capacity, the pod remains in the pending state due to insufficient resources. For more information about specific node specifications, see the purchase specifications documentation.

Kubernetes application limits

ACS integrates seamlessly with Kubernetes through virtual nodes. ACS pods are not deployed on centralized physical nodes but are distributed across Alibaba Cloud resource pools. Due to public cloud security requirements and virtual node limitations, ACS does not support certain Kubernetes features, such as HostPath and DaemonSet. The following table details these limits.

Limitations

Description

Handling policy on validation failure

Recommended alternative

DaemonSet

DaemonSet workloads are not supported.

The pod runs but does not function as expected.

Use the sidecar pattern to deploy multiple containers in the pod.

NodePort service

This service type maps host ports to containers.

The submission is rejected.

Use a type=LoadBalancer Service.

HostNetwork

Mapping host ports to containers is not supported.

The value is rewritten to HostNetwork=false.

Optional

HostIPC

Inter-process communication between container and host processes is not supported.

The value is rewritten to HostIPC=false.

Not required

HostPID

Containers cannot see the host PID namespace.

The value is rewritten to HostPID=false.

Not required

HostUsers

Restricting user namespaces

The value is rewritten to empty.

Not required

DNSPolicy

Restricting the use of a specific DNSPolicy

Note
  • None

  • Default

  • ClusterFirst

  • The `ClusterFirstWithHostNet` policy is rewritten to `ClusterFirst`.

  • Submissions that use other policies are rejected.

Use one of the allowed values.

Container environment variables

In addition to the default constraints of the Kubernetes API server, ACS requires that for GPU and GPU-HPN compute classes, environment variable names consist of letters, digits, underscores, dots, or hyphens. The names cannot start with a digit.

The pod fails to start.

Use environment variable names that follow the required format.

Port usage

The following table lists the ports that are used by ACS. Avoid using these ports when you deploy services.

Port

Description

111, 10250, 10255

Used by ACS clusters for exec, logs, metrics, and other interfaces.