全部產品
Search
文件中心

Container Service for Kubernetes:runC容器和安全沙箱(runV)容器的區別

更新時間:Aug 12, 2026

本文通過對比runC容器和安全沙箱(runV)容器的效能和建立方式,讓您瞭解安全沙箱容器的優勢以便更好地使用安全沙箱容器。

runC容器和安全沙箱(runV)容器方案對比

配置

runC容器

安全沙箱(runV)容器

容器引擎

Docker、Containerd

Containerd

容器所在節點型號

ECS、EBM

EBM

容器核心

與宿主機共用核心

獨佔核心

容器隔離方式

Cgroups和Namespace

輕量虛擬機器

Rootfs Graph Driver

OverlayFS

OverlayFS

Rootfs IO限速

Cgroups

否

NAS直掛

否

是

雲端硬碟直掛

否

否

容器記錄檔採集

日誌採集組件可直接從節點側採集容器內的日誌。

logtail sidecar

Pod Overhead

無

Memory:M=64 Mi+Pod記憶體申請 *2%。當M>512,M最終取值為512 Mi。當M<64,M最終取值為64。

runC Pod和安全沙箱(runV)Pod的建立方式對比

前提條件

通過kubectl串連叢集

建立runC Pod

  1. 可選:通過runtimeClassName: runc指定使用runC容器運行時。

    說明

    您也可以不配置,Pod會用預設的容器運行時runC。

  2. 執行以下命令建立runC Pod。

    cat <<EOF | kubectl create -f -
    apiVersion: v1
    kind: Pod
    metadata:
      name: busybox-runc
      labels:
        app: busybox-runc
    spec:
      containers:
      - name: busybox
        image: registry.cn-hangzhou.aliyuncs.com/acs/busybox:v1.29.2
        command:
        - tail
        - -f
        - /dev/null 
        resources:
          limits:
            cpu: 1000m
            memory: 512Mi
          requests:
            cpu: 1000m
            memory: 512Mi
    EOF

建立安全沙箱容器(runV)

  1. 通過runtimeClassName: runv指定使用安全沙箱容器運行時。

  2. 可選:執行以下命令查看叢集中已經存在的runv這個RuntimeClass對象。

    kubectl get runtimeclass runv -o yaml
    說明

    安全沙箱容器叢集中預設建立了RuntimeClass對象runv。

  3. 執行以下命令建立安全沙箱Pod。

    cat <<EOF | kubectl create -f -
    apiVersion: v1
    kind: Pod
    metadata:
      name: busybox-runv
      labels:
        app: busybox-runv
    spec:
      runtimeClassName: runv
      # 注意:以下nodeSelector僅在Kubernetes 1.16以下版本需要
      # 如果您的叢集版本是1.16及以上,請刪除以下兩行
      # nodeSelector:
      #   alibabacloud.com/container-runtime: Sandboxed-Container.runv
      containers:
      - name: busybox
        image: registry.cn-hangzhou.aliyuncs.com/acs/busybox:v1.29.2
        command:
        - tail
        - -f
        - /dev/null
        resources:
          limits:
            cpu: 1000m
            memory: 512Mi
          requests:
            cpu: 1000m
            memory: 512Mi
    EOF
    重要

    如果您的Kubernetes版本小於1.16,需添加以下nodeSelector配置;1.16及以上版本不需要添加。

    nodeSelector:
        alibabacloud.com/container-runtime: Sandboxed-Container.runv
  4. 執行以下命令查看建立的Pod。如果輸出結果為runv,則表示Pod已經運行在安全沙箱內了。

    kubectl get pod busybox-runv -o jsonpath={.spec.runtimeClassName}
  5. 執行以下命令登入容器查看CPU和記憶體規格。

    kubectl exec -ti busybox-runv -- /bin/sh
    / # cat /proc/meminfo | head -n1
    MemTotal:        1130692 kB
    / # cat /proc/cpuinfo | grep processor
    processor    : 0

    通過以上命令返回的結果,可以看出CPU核心數並非宿主機CPU核心數,記憶體總大小為Pod記憶體與Overhead記憶體之和(系統會消耗一些記憶體,所以看到的記憶體會少一些)。