接口

各接口中可能用到的参数清单如下,部分参数暂不支持配置,已在配置中标出。

接口参数列表

  • DNSConfig

    配置sandbox的DNS服务器和搜索域

    参数成员

    描述

    repeated string servers

    集群的DNS服务器列表

    repeated string searches

    集群的DNS搜索域列表

    repeated string options

    DNS可选项列表,参考https://linux.die.net/man/5/resolv.conf

  • Protocol

    协议的enum值列表

    参数成员

    描述

    TCP = 0↵

    TCP协议

    UDP = 1

    UDP协议

  • PortMapping

    指定sandbox的端口映射配置

    参数成员

    描述

    Protocol protocol

    端口映射使用的协议

    int32 container_port

    容器内的端口号

    int32 host_port

    主机上的端口号

    string host_ip

    主机IP地址

  • MountPropagation

    挂载传播属性的enum列表

    参数成员

    描述

    PROPAGATION_PRIVATE = 0

    无挂载传播属性,即linux中的private

    PROPAGATION_HOST_TO_CONTAINER = 1

    挂载属性能从host传播到容器中,即linux中的rslave

    PROPAGATION_BIDIRECTIONAL = 2

    挂载属性能在host和容器中双向传播,即linux中的rshared

  • Mount

    Mount指定host上的一个挂载卷挂载到容器中(只支持文件和文件夹)

    参数成员

    描述

    string container_path

    容器中的路径

    string host_path

    主机上的路径

    bool readonly

    是否配置在容器中是只读的, 默认值: false

    bool selinux_relabel

    是否设置SELinux标签(不支持配置)

    MountPropagation propagation

    挂载传播属性配置(取值0/1/2,分别对应private/rslave/rshared传播属性) 默认值:0

  • NamespaceOption

    参数成员

    描述

    bool host_network

    是否使用host的网络命名空间

    bool host_pid

    是否使用host的PID命名空间

    bool host_ipc

    是否使用host的IPC命名空间

  • Capability

    包含待添加与待删除的权能信息

    参数成员

    描述

    repeated string add_capabilities

    待新增的权能

    repeated string drop_capabilities

    待删除的权能

  • Int64Value

    int64类型的封装

    参数成员

    描述

    int64 value

    实际的int64值

  • UInt64Value

    uint64类型的封装

    参数成员

    描述

    uint64 value

    实际的uint64值

  • LinuxSandboxSecurityContext

    配置sandbox的linux安全选项。

    注意,这些安全选项不会应用到sandbox中的容器中,也可能不适用于没有任何running进程的sandbox

    参数成员

    描述

    NamespaceOption namespace_options

    配置sandbox的命名空间选项

    SELinuxOption selinux_options

    配置SELinux选项(不支持)

    Int64Value run_as_user

    配置sandbox中进程的uid

    bool readonly_rootfs

    配置sandbox的根文件系统是否只读

    repeated int64 supplemental_groups

    配置除主GID之外的sandbox的1号进程用户组信息

    bool privileged

    配置sandbox是否为特权容器

    string seccomp_profile_path

    seccomp配置文件路径,有效值为:

    // unconfined: 不配置seccomp

    // localhost/<配置文件的全路径>: 安装在系统上的配置文件路径

    // <配置文件的全路径>: 配置文件全路径

    // 默认不配置,即unconfined。

  • LinuxPodSandboxConfig

    设定和Linux主机及容器相关的一些配置

    参数成员

    描述

    string cgroup_parent

    sandbox的cgroup父路径,runtime可根据实际情况使用cgroupfs或systemd的语法。(不支持配置)

    LinuxSandboxSecurityContext security_context

    sandbox的安全属性

    map<string, string> sysctls

    sandbox的linux sysctls配置

  • PodSandboxMetadata

    Sandbox元数据包含构建sandbox名称的所有信息,鼓励容器运行时在用户界面中公开这些元数据以获得更好的用户体验,例如,运行时可以根据元数据生成sandbox的唯一命名。

    参数成员

    描述

    string name

    sandbox的名称

    string uid

    sandbox的UID

    string namespace

    sandbox的命名空间

    uint32 attempt

    尝试创建sandbox的次数,默认为0

  • PodSandboxConfig

    包含创建sandbox的所有必选和可选配置信息

    参数成员

    描述

    PodSandboxMetadata metadata

    sandbox的元数据,这项信息唯一标识一个sandbox,runtime必须利用此信息确保操作正确,runtime也可以根据此信息来改善用户体验,例如构建可读的sandbox名称。

    string hostname

    sandbox的hostname

    string log_directory

    配置sandbox内的容器的日志文件所存储的文件夹

    DNSConfig dns_config

    sandbox的DNS配置

    repeated PortMapping port_mappings

    sandbox的端口映射

    map<string, string> labels

    可用于标识单个或一系列sandbox的键值对

    map<string, string> annotations

    存储任意信息的键值对,这些值是不可更改的,且能够利用PodSandboxStatus接口查询

    LinuxPodSandboxConfig linux

    与linux主机相关的可选项

  • PodSandboxNetworkStatus

    描述sandbox的网络状态

    参数成员

    描述

    string ip

    sandbox的ip地址

    string name

    sandbox内的网络接口名

    string network

    附加网络的名称

  • Namespace

    命名空间选项

    参数成员

    描述

    NamespaceOption options

    Linux 命名空间选项

  • LinuxPodSandboxStatus

    描述Linux sandbox的状态

    参数成员

    描述

    Namespace namespaces

    sandbox命名空间

  • PodSandboxState

    sandbox状态值的enum数据

    参数成员

    描述

    SANDBOX_READY = 0

    sandbox处于ready状态

    SANDBOX_NOTREADY = 1

    sandbox处于非ready状态

  • PodSandboxStatus

    描述Podsandbox的状态信息

    参数成员

    描述

    string id

    sandbox的ID

    PodSandboxMetadata metadata

    sandbox的元数据

    PodSandboxState state

    sandbox的状态值

    int64 created_at

    sandbox的创建时间戳,单位纳秒

    repeated PodSandboxNetworkStatus networks

    sandbox的多平面网络状态

    LinuxPodSandboxStatus linux

    Linux规范的sandbox状态

    map<string, string> labels

    可用于标识单个或一系列sandbox的键值对

    map<string, string> annotations

    存储任意信息的键值对,这些值是不可被runtime更改的

  • PodSandboxStateValue

    PodSandboxState的封装

    参数成员

    描述

    PodSandboxState state

    sandbox的状态值

  • PodSandboxFilter

    用于列出sandbox时添加过滤条件,多个条件取交集显示

    参数成员

    描述

    string id

    sandbox的ID

    PodSandboxStateValue state

    sandbox的状态

    map<string, string> label_selector

    sandbox的labels,label只支持完全匹配,不支持正则匹配

  • PodSandbox

    包含最小化描述一个sandbox的数据

    参数成员

    描述

    string id

    sandbox的ID

    PodSandboxMetadata metadata

    sandbox的元数据

    PodSandboxState state

    sandbox的状态值

    int64 created_at

    sandbox的创建时间戳,单位纳秒

    map<string, string> labels

    可用于标识单个或一系列sandbox的键值对

    map<string, string> annotations

    存储任意信息的键值对,这些值是不可被runtime更改的

  • KeyValue

    键值对的封装

    参数成员

    描述

    string key

    string value

  • SELinuxOption

    应用于容器的SELinux标签

    参数成员

    描述

    string user

    用户

    string role

    角色

    string type

    类型

    string level

    级别

  • ContainerMetadata

    Container元数据包含构建container名称的所有信息,鼓励容器运行时在用户界面中公开这些元数据以获得更好的用户体验,例如,运行时可以根据元数据生成container的唯一命名。

    参数成员

    描述

    string name

    container的名称

    uint32 attempt

    尝试创建container的次数,默认为0

  • ContainerState

    容器状态值的enum列表

    参数成员

    描述

    CONTAINER_CREATED = 0

    container创建完成

    CONTAINER_RUNNING = 1

    container处于运行状态

    CONTAINER_EXITED = 2

    container处于退出状态

    CONTAINER_UNKNOWN = 3

    未知的容器状态

  • ContainerStateValue

    封装ContainerState的数据结构

    参数成员

    描述

    ContainerState state

    容器状态值

  • ContainerFilter

    用于列出container时添加过滤条件,多个条件取交集显示

    参数成员

    描述

    string id

    container的ID

    PodSandboxStateValue state

    container的状态

    string pod_sandbox_id

    sandbox的ID

    map<string, string> label_selector

    container的labels,label只支持完全匹配,不支持正则匹配

  • LinuxContainerSecurityContext

    指定应用于容器的安全配置

    参数成员

    描述

    Capability capabilities

    新增或去除的权能

    bool privileged

    指定容器是否未特权模式, 默认值:false

    NamespaceOption namespace_options

    指定容器的namespace选项

    SELinuxOption selinux_options

    SELinux context(可选配置项) 暂不支持

    Int64Value run_as_user

    运行容器进程的UID。 一次只能指定run_as_user与run_as_username其中之一,run_as_username优先生效

    string run_as_username

    运行容器进程的用户名。 如果指定,用户必须存在于容器映像中(即在映像内的/etc/passwd中),并由运行时在那里解析; 否则,运行时必须出错

    bool readonly_rootfs

    设置容器中根文件系统是否为只读 默认值由config.json配置

    repeated int64 supplemental_groups

    容器运行的除主GID外首进程组的列表

    string apparmor_profile

    容器的AppArmor配置文件 暂不支持

    string seccomp_profile_path

    容器的seccomp配置文件路径

    bool no_new_privs

    是否在容器上设置no_new_privs的标志

  • LinuxContainerResources

    指定Linux容器资源的特定配置

    参数成员

    描述

    int64 cpu_period

    CPU CFS(完全公平调度程序)周期。 默认值:0

    int64 cpu_quota

    CPU CFS(完全公平调度程序)配额。 默认值:0

    int64 cpu_shares

    所占CPU份额(相对于其他容器的相对权重)。 默认值:0

    int64 memory_limit_in_bytes

    内存限制(字节)。 默认值:0

    int64 oom_score_adj

    OOMScoreAdj用于调整oom-killer。 默认值:0

    string cpuset_cpus

    指定容器使用的CPU核心。 默认值:“”

    string cpuset_mems

    指定容器使用的内存节点。 默认值:“”

  • Image

    Image信息描述一个镜像的基本数据。

    参数成员

    描述

    string id

    镜像ID

    repeated string repo_tags

    镜像tag 名称 repo_tags

    repeated string repo_digests

    镜像digest信息

    uint64 size

    镜像大小

    Int64Value uid

    镜像默认用户UID

    string username

    镜像默认用户名称

  • ImageSpec

    表示镜像的内部数据结构,当前,ImageSpec只封装容器镜像名称

    参数成员

    描述

    string image

    容器镜像名

  • StorageIdentifier

    唯一定义storage的标识

    参数成员

    描述

    string uuid

    设备的UUID

  • FilesystemUsage

    参数成员

    描述

    int64 timestamp

    收集文件系统信息时的时间戳

    StorageIdentifier storage_id

    存储镜像的文件系统UUID

    UInt64Value used_bytes

    存储镜像元数据的大小

    UInt64Value inodes_used

    存储镜像元数据的inodes个数

  • AuthConfig

    参数成员

    描述

    string username

    下载镜像使用的用户名

    string password

    下载镜像使用的密码

    string auth

    下载镜像时使用的认证信息,base64编码

    string server_address

    下载镜像的服务器地址,暂不支持

    string identity_token

    用于与镜像仓库鉴权的令牌信息,暂不支持

    string registry_token

    用于与镜像仓库交互的令牌信息,暂不支持

  • Container

    用于描述容器信息,例如ID, 状态等。

    参数成员

    描述

    string id

    container的ID

    string pod_sandbox_id

    该容器所属的sandbox的ID

    ContainerMetadata metadata

    container的元数据

    ImageSpec image

    镜像规格

    string image_ref

    代表容器使用的镜像,对大多数runtime来产,这是一个image ID值

    ContainerState state

    container的状态

    int64 created_at

    container的创建时间戳,单位为纳秒

    map<string, string> labels

    可用于标识单个或一系列container的键值对

    map<string, string> annotations

    存储任意信息的键值对,这些值是不可被runtime更改的

  • ContainerStatus

    用于描述容器状态信息

    参数成员

    描述

    string id

    container的ID

    ContainerMetadata metadata

    container的元数据

    ContainerState state

    container的状态

    int64 created_at

    container的创建时间戳,单位为纳秒

    int64 started_at

    container启动时的时间戳,单位为纳秒

    int64 finished_at

    container退出时的时间戳,单位为纳秒

    int32 exit_code

    容器退出码

    ImageSpec image

    镜像规格

    string image_ref

    代表容器使用的镜像,对大多数runtime来产,这是一个image ID值

    string reason

    简要描述为什么容器处于当前状态

    string message

    易于人工阅读的信息,用于表述容器处于当前状态的原因

    map<string, string> labels

    可用于标识单个或一系列container的键值对

    map<string, string> annotations

    存储任意信息的键值对,这些值是不可被runtime更改的

    repeated Mount mounts

    容器的挂载点信息

    string log_path

    容器日志文件路径,该文件位于PodSandboxConfig中配置的log_directory文件夹下

  • ContainerStatsFilter

    用于列出container stats时添加过滤条件,多个条件取交集显示

    参数成员

    描述

    string id

    container的ID

    string pod_sandbox_id

    sandbox的ID

    map<string, string> label_selector

    container的labels,label只支持完全匹配,不支持正则匹配

  • ContainerStats

    用于列出container stats时添加过滤条件,多个条件取交集显示

    参数成员

    描述

    ContainerAttributes attributes

    容器的信息

    CpuUsage cpu

    CPU使用情况

    MemoryUsage memory

    内存使用情况

    FilesystemUsage writable_layer

    可写层使用情况

  • ContainerAttributes

    列出container的基本信息

    参数成员

    描述

    string id

    容器的ID

    ContainerMetadata metadata

    容器的metadata

    map<string,string> labels

    可用于标识单个或一系列container的键值对

    map<string,string> annotations

    存储任意信息的键值对,这些值是不可被runtime更改的

  • CpuUsage

    列出container的CPU使用信息

    参数成员

    描述

    int64 timestamp

    时间戳

    UInt64Value usage_core_nano_seconds

    CPU的使用值,单位/纳秒

  • MemoryUsage

    列出container的内存使用信息

    参数成员

    描述

    int64 timestamp

    时间戳

    UInt64Value working_set_bytes

    内存的使用值

  • FilesystemUsage

    列出container的读写层信息

    参数成员

    描述

    int64 timestamp

    时间戳

    StorageIdentifier storage_id

    可写层目录

    UInt64Value used_bytes

    镜像在可写层的占用字节

    UInt64Value inodes_used

    镜像在可写层的占用inode数

  • Device

    指定待挂载至容器的主机卷

    参数成员

    描述

    string container_path

    容器内的挂载路径

    string host_path

    主机上的挂载路径

    string permissions

    设备的Cgroup权限,(r允许容器从指定的设备读取; w允许容器从指定的设备写入; m允许容器创建尚不存在的设备文件)

  • LinuxContainerConfig

    包含特定于Linux平台的配置

    参数成员

    描述

    LinuxContainerResources resources

    容器的资源规范

    LinuxContainerSecurityContext security_context

    容器的Linux容器安全配置

  • ContainerConfig

    包含用于创建容器的所有必需和可选字段

    参数成员

    描述

    ContainerMetadata metadata

    容器的元数据。 此信息将唯一标识容器,运行时应利用此信息来确保正确操作。 运行时也可以使用此信息来提升UX(用户体检设计),例如通过构造可读名称。(必选)

    ImageSpec image

    容器使用的镜像 (必选)

    repeated string command

    待执行的命令 默认值: “/bin/sh”

    repeated string args

    待执行命令的参数

    string working_dir

    命令执行的当前工作路径

    repeated KeyValue envs

    在容器中配置的环境变量

    repeated Mount mounts

    待在容器中挂载的挂载点信息

    repeated Device devices

    待在容器中映射的设备信息

    map<string, string> labels

    可用于索引和选择单个资源的键值对。

    map<string, string> annotations

    可用于存储和检索任意元数据的非结构化键值映射。

    string log_path

    相对于PodSandboxConfig.LogDirectory的路径,用于存储容器主机上的日志(STDOUT和STDERR)。

    bool stdin

    是否打开容器的stdin

    bool stdin_once

    当某次连接stdin的数据流断开时,是否立即断开其他与stdin连接的数据流(暂不支持

    bool tty

    是否使用伪终端连接容器的stdio

    LinuxContainerConfig linux

    linux系统上容器的特定配置信息

  • NetworkConfig

    Runtime的网络配置

    参数成员

    描述

    string pod_cidr

    Pod IP 地址使用的CIDR

  • RuntimeConfig

    Runtime的网络配置

    参数成员

    描述

    NetworkConfig network_config

    Runtime的网络配置

  • RuntimeCondition

    描述runtime的状态信息

    参数成员

    描述

    string type

    Runtime状态的类型

    bool status

    Runtime状态

    string reason

    简要描述runtime状态变化的原因

    string message

    具备可阅读性的信息表明runtime状态变化的原因

  • RuntimeStatus

    Runtime的状态

    参数成员

    描述

    repeated RuntimeCondition conditions

    描述当前runtime状态的列表