int64 memory_limit_in_bytes
@@ -963,44 +592,14 @@ ISulad使用的为pass使用的1.14版本API描述文件,与官方API略有出
Image信息描述一个镜像的基本数据。
-
- 参数成员
- |
- 描述
- |
-
- string id
- |
- 镜像ID
- |
-
- repeated string repo_tags
- |
- 镜像tag 名称 repo_tags
- |
-
- repeated string repo_digests
- |
- 镜像digest信息
- |
-
- uint64 size
- |
- 镜像大小
- |
-
- Int64Value uid
- |
- 镜像默认用户UID
- |
-
- string username
- |
- 镜像默认用户名称
- |
-
-
-
+ | **参数成员** | **描述** |
+ |------------------------------|------------------------|
+ | string id | 镜像ID |
+ | repeated string repo_tags | 镜像tag 名称 repo_tags |
+ | repeated string repo_digests | 镜像digest信息 |
+ | uint64 size | 镜像大小 |
+ | Int64Value uid | 镜像默认用户UID |
+ | string username | 镜像默认用户名称 |
- **ImageSpec**
@@ -1042,34 +641,12 @@ ISulad使用的为pass使用的1.14版本API描述文件,与官方API略有出
- **FilesystemUsage**
-
- 参数成员
- |
- 描述
- |
-
- int64 timestamp
- |
- 收集文件系统信息时的时间戳
- |
-
- StorageIdentifier storage_id
- |
- 存储镜像的文件系统UUID
- |
-
- UInt64Value used_bytes
- |
- 存储镜像元数据的大小
- |
-
- UInt64Value inodes_used
- |
- 存储镜像元数据的inodes个数
- |
-
-
-
+ | **参数成员** | **描述** |
+ |------------------------------|----------------------------|
+ | int64 timestamp | 收集文件系统信息时的时间戳 |
+ | StorageIdentifier storage_id | 存储镜像的文件系统UUID |
+ | UInt64Value used_bytes | 存储镜像元数据的大小 |
+ | UInt64Value inodes_used | 存储镜像元数据的inodes个数 |
- **AuthConfig**
@@ -1116,149 +693,39 @@ ISulad使用的为pass使用的1.14版本API描述文件,与官方API略有出
用于描述容器信息,例如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更改的
- |
-
-
-
+ | **参数成员** | **描述** |
+ |---------------------------------|-------------------------------------------------------------|
+ | 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\ labels | 可用于标识单个或一系列container的键值对 |
+ | map\ 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文件夹下
- |
-
-
-
+ | **参数成员** | **描述** |
+ |---------------------------------|---------------------------------------------------------------------------|
+ | 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\ labels | 可用于标识单个或一系列container的键值对 |
+ | map\ annotations | 存储任意信息的键值对,这些值是不可被runtime更改的 |
+ | repeated Mount mounts | 容器的挂载点信息 |
+ | string log_path | 容器日志文件路径,该文件位于PodSandboxConfig中配置的log_directory文件夹下 |
- **ContainerStatsFilter**
@@ -1293,69 +760,23 @@ ISulad使用的为pass使用的1.14版本API描述文件,与官方API略有出
用于列出container stats时添加过滤条件,多个条件取交集显示
-
- 参数成员
- |
- 描述
- |
-
-
- ContainerAttributes attributes
- |
- 容器的信息
- |
-
- CpuUsage cpu
- |
- CPU使用情况
- |
-
- MemoryUsage memory
- |
- 内存使用情况
- |
-
- FilesystemUsage writable_layer
- |
- 可写层使用情况
- |
-
-
-
+ | **参数成员** | **描述** |
+ |--------------------------------|----------------|
+ | 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更改的
- |
-
-
-
+ | **参数成员** | **描述** |
+ |--------------------------------|---------------------------------------------------|
+ | string id | 容器的ID |
+ | ContainerMetadata metadata | 容器的metadata |
+ | map\ labels | 可用于标识单个或一系列container的键值对 |
+ | map\ annotations | 存储任意信息的键值对,这些值是不可被runtime更改的 |
- **CpuUsage**
@@ -1412,207 +833,99 @@ ISulad使用的为pass使用的1.14版本API描述文件,与官方API略有出
参数成员
|
- 描述
- |
-
-
- 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
+
+ | int64 timestamp
|
- 待在容器中映射的设备信息
+ | 时间戳
|
- map<string, string> labels
+ | StorageIdentifier storage_id
|
- 可用于索引和选择单个资源的键值对。
+ | 可写层目录
|
- map<string, string> annotations
+ | UInt64Value used_bytes
|
- 可用于存储和检索任意元数据的非结构化键值映射。
+ | 镜像在可写层的占用字节
|
- string log_path
+ | UInt64Value inodes_used
|
- 相对于PodSandboxConfig.LogDirectory的路径,用于存储容器主机上的日志(STDOUT和STDERR)。
+ | 镜像在可写层的占用inode数
|
- bool stdin
+ |
+
+
+- **Device**
+
+ 指定待挂载至容器的主机卷
+
+
+ 参数成员
|
- 是否打开容器的stdin
+ | 描述
|
- bool stdin_once
+ | string container_path
|
- 当某次连接stdin的数据流断开时,是否立即断开其他与stdin连接的数据流(暂不支持)
+ | 容器内的挂载路径
|
- bool tty
+ | string host_path
|
- 是否使用伪终端连接容器的stdio
+ | 主机上的挂载路径
|
- LinuxContainerConfig linux
+ | string permissions
|
- linux系统上容器的特定配置信息
+ | 设备的Cgroup权限,(r允许容器从指定的设备读取; w允许容器从指定的设备写入; m允许容器创建尚不存在的设备文件)
|
-- **NetworkConfig**
+- **LinuxContainerConfig**
- Runtime的网络配置
+ 包含特定于Linux平台的配置
-
- 参数成员
- |
- 描述
- |
-
- string pod_cidr
- |
- Pod IP 地址使用的CIDR
- |
-
-
-
+ | **参数成员** | **描述** |
+ |------------------------------------------------|-------------------------|
+ | 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\ labels | 可用于索引和选择单个资源的键值对。 |
+ | map\ annotations | 可用于存储和检索任意元数据的非结构化键值映射。 |
+ | string log_path | 相对于PodSandboxConfig.LogDirectory的路径,用于存储容器主机上的日志(STDOUT和STDERR)。 |
+ | bool stdin | 是否打开容器的stdin |
+ | bool stdin_once | 当某次连接stdin的数据流断开时,是否立即断开其他与stdin连接的数据流 **(暂不支持)** |
+ | bool tty | 是否使用伪终端连接容器的stdio |
+ | LinuxContainerConfig linux | linux系统上容器的特定配置信息 |
- **RuntimeConfig**
Runtime的网络配置
-
- 参数成员
- |
- 描述
- |
-
- NetworkConfig network_config
- |
- Runtime的网络配置
- |
-
-
-
+ | **参数成员** | **描述** |
+ |------------------------------|-------------------|
+ | NetworkConfig network_config | Runtime的网络配置 |
- **RuntimeCondition**
@@ -1673,7 +986,7 @@ Runtime服务中包含操作pod和容器的接口,以及查询runtime自身配
#### 接口原型
-```
+```text
rpc RunPodSandbox(RunPodSandboxRequest) returns (RunPodSandboxResponse) {}
```
@@ -1688,24 +1001,10 @@ rpc RunPodSandbox(RunPodSandboxRequest) returns (RunPodSandboxResponse) {}
#### 参数
-
-参数成员
- |
-描述
- |
-
-PodSandboxConfig config
- |
-sandbox的配置
- |
-
-string runtime_handler
- |
-指定创建sandbox的runtime运行时,当前支持lcr、kata-runtime运行时类型。
- |
-
-
-
+| **参数成员** | **描述** |
+|-------------------------|-----------------------------------------------------------------------|
+| PodSandboxConfig config | sandbox的配置 |
+| string runtime_handler | 指定创建sandbox的runtime运行时,当前支持lcr、kata-runtime运行时类型。 |
#### 返回值
@@ -1727,7 +1026,7 @@ rpc RunPodSandbox(RunPodSandboxRequest) returns (RunPodSandboxResponse) {}
#### 接口原型
-```
+```text
rpc StopPodSandbox(StopPodSandboxRequest) returns (StopPodSandboxResponse) {}
```
@@ -1851,24 +1150,10 @@ rpc PodSandboxStatus(PodSandboxStatusRequest) returns (PodSandboxStatusResponse)
#### 返回值
-
-返回值
- |
-描述
- |
-
-PodSandboxStatus status
- |
-sandbox的状态信息
- |
-
-map<string, string> info
- |
-sandbox的额外信息,key是任意string,value是json格式的字符串,这些信息可以是任意调试内容。当verbose为true时info不能为空。(暂不支持配置)
- |
-
-
-
+| **返回值** | **描述** |
+|--------------------------|------------------------------------------------------------------------------------------------------------------------------------------|
+| PodSandboxStatus status | sandbox的状态信息 |
+| map\ info | sandbox的额外信息,key是任意string,value是json格式的字符串,这些信息可以是任意调试内容。当verbose为true时info不能为空。(暂不支持配置) |
#### ListPodSandbox
@@ -1884,35 +1169,15 @@ rpc ListPodSandbox(ListPodSandboxRequest) returns (ListPodSandboxResponse) {}
#### 参数
-
-参数成员
- |
-描述
- |
-
-PodSandboxFilter filter
- |
-条件过滤参数
- |
-
-
-
+| **参数成员** | **描述** |
+|-------------------------|--------------|
+| PodSandboxFilter filter | 条件过滤参数 |
#### 返回值
-
-返回值
- |
-描述
- |
-
-repeated PodSandbox items
- |
-sandbox信息的列表
- |
-
-
-
+| **返回值** | **描述** |
+|---------------------------|-------------------|
+| repeated PodSandbox items | sandbox信息的列表 |
#### CreateContainer
@@ -1934,29 +1199,11 @@ rpc CreateContainer(CreateContainerRequest) returns (CreateContainerResponse) {}
#### 参数
-
-参数成员
- |
-描述
- |
-
-string pod_sandbox_id
- |
-待在其中创建容器的PodSandbox的ID。
- |
-
-ContainerConfig config
- |
-容器的配置信息
- |
-
-PodSandboxConfig sandbox_config
- |
-PodSandbox的配置信息
- |
-
-
-
+| **参数成员** | **描述** |
+|---------------------------------|------------------------------------|
+| string pod_sandbox_id | 待在其中创建容器的PodSandbox的ID。 |
+| ContainerConfig config | 容器的配置信息 |
+| PodSandboxConfig sandbox_config | PodSandbox的配置信息 |
#### 补充
@@ -2121,35 +1368,15 @@ rpc ListContainers(ListContainersRequest) returns (ListContainersResponse) {}
#### 参数
-
-参数成员
- |
-描述
- |
-
-ContainerFilter filter
- |
-条件过滤参数
- |
-
-
-
+| **参数成员** | **描述** |
+|------------------------|--------------|
+| ContainerFilter filter | 条件过滤参数 |
#### 返回值
-
-返回值
- |
-描述
- |
-
-repeated Container containers
- |
-容器信息的列表
- |
-
-
-
+| **返回值** | **描述** |
+|-------------------------------|----------------|
+| repeated Container containers | 容器信息的列表 |
#### ContainerStatus
@@ -2186,24 +1413,10 @@ rpc ContainerStatus(ContainerStatusRequest) returns (ContainerStatusResponse) {}
#### 返回值
-
-返回值
- |
-描述
- |
-
-ContainerStatus status
- |
-容器的状态信息
- |
-
-map<string, string> info
- |
-sandbox的额外信息,key是任意string,value是json格式的字符串,这些信息可以是任意调试内容。当verbose为true时info不能为空。(暂不支持配置)
- |
-
-
-
+| **返回值** | **描述** |
+|--------------------------|------------------------------------------------------------------------------------------------------------------------------------------|
+| ContainerStatus status | 容器的状态信息 |
+| map\ info | sandbox的额外信息,key是任意string,value是json格式的字符串,这些信息可以是任意调试内容。当verbose为true时info不能为空。(暂不支持配置) |
#### UpdateContainerResources
@@ -2224,24 +1437,10 @@ rpc UpdateContainerResources(UpdateContainerResourcesRequest) returns (UpdateCon
#### 参数
-
-参数成员
- |
-描述
- |
-
-string container_id
- |
-容器id
- |
-
-LinuxContainerResources linux
- |
-linux资源配置信息
- |
-
-
-
+| **参数成员** | **描述** |
+|-------------------------------|-------------------|
+| string container_id | 容器id |
+| LinuxContainerResources linux | linux资源配置信息 |
#### 返回值
@@ -2482,19 +1681,9 @@ rpc ContainerStats(ContainerStatsRequest) returns (ContainerStatsResponse) {}
#### 返回值
-
-返回值
- |
-描述
- |
-
-ContainerStats stats
- |
-容器信息。注:disk和inodes只支持oci格式镜像起的容器查询
- |
-
-
-
+| **返回值** | **描述** |
+|----------------------|---------------------------------------------------------|
+| ContainerStats stats | 容器信息。 注:disk和inodes只支持oci格式镜像起的容器查询 |
#### ListContainerStats
@@ -2510,35 +1699,15 @@ rpc ListContainerStats(ListContainerStatsRequest) returns (ListContainerStatsRes
#### 参数
-
-参数成员
- |
-描述
- |
-
-ContainerStatsFilter filter
- |
-条件过滤参数
- |
-
-
-
+| **参数成员** | **描述** |
+|-----------------------------|--------------|
+| ContainerStatsFilter filter | 条件过滤参数 |
#### 返回值
-
-返回值
- |
-描述
- |
-
-repeated ContainerStats stats
- |
-容器信息的列表。注:disk和inodes只支持oci格式镜像启动的容器查询
- |
-
-
-
+| **返回值** | **描述** |
+|-------------------------------|-----------------------------------------------------------------|
+| repeated ContainerStats stats | 容器信息的列表。注:disk和inodes只支持oci格式镜像启动的容器查询 |
#### UpdateRuntimeConfig
@@ -2558,19 +1727,9 @@ rpc UpdateRuntimeConfig(UpdateRuntimeConfigRequest) returns (UpdateRuntimeConfig
#### 参数
-
-参数成员
- |
-描述
- |
-
-RuntimeConfig runtime_config
- |
-包含Runtime要配置的信息
- |
-
-
-
+| **参数成员** | **描述** |
+|------------------------------|-------------------------|
+| RuntimeConfig runtime_config | 包含Runtime要配置的信息 |
#### 返回值
@@ -2610,24 +1769,10 @@ rpc Status(StatusRequest) returns (StatusResponse) {};
#### 返回值
-
-返回值
- |
-描述
- |
-
-RuntimeStatus status
- |
-Runtime的状态
- |
-
-map<string, string> info
- |
-Runtime额外的信息,info的key为任意值,value为json格式,可包含任何debug信息;只有Verbose为true是才应该被赋值
- |
-
-
-
+| **返回值** | **描述** |
+|--------------------------|-------------------------------------------------------------------------------------------------------------|
+| RuntimeStatus status | Runtime的状态 |
+| map\ info | Runtime额外的信息,info的key为任意值,value为json格式,可包含任何debug信息;只有Verbose为true是才应该被赋值 |
### Image服务
@@ -2654,35 +1799,15 @@ rpc ListImages(ListImagesRequest) returns (ListImagesResponse) {}
#### 参数
-
-参数成员
- |
-描述
- |
-
-ImageSpec filter
- |
-筛选的镜像名称
- |
-
-
-
+| **参数成员** | **描述** |
+|------------------|----------------|
+| ImageSpec filter | 筛选的镜像名称 |
#### 返回值
-
-返回值
- |
-描述
- |
-
-repeated Image images
- |
-镜像信息列表
- |
-
-
-
+| **返回值** | **描述** |
+|-----------------------|--------------|
+| repeated Image images | 镜像信息列表 |
#### ImageStatus
@@ -2703,45 +1828,17 @@ rpc ImageStatus(ImageStatusRequest) returns (ImageStatusResponse) {}
#### 参数
-
-参数成员
- |
-描述
- |
-
-ImageSpec image
- |
-镜像名称
- |
-
-bool verbose
- |
-查询额外信息,暂不支持,无额外信息返回
- |
-
-
-
+| **参数成员** | **描述** |
+|-----------------|----------------------------------------|
+| ImageSpec image | 镜像名称 |
+| bool verbose | 查询额外信息,暂不支持,无额外信息返回 |
#### 返回值
-
-返回值
- |
-描述
- |
-
-Image image
- |
-镜像信息
- |
-
-map<string, string> info
- |
-镜像额外信息,暂不支持,无额外信息返回
- |
-
-
-
+| **返回值** | **描述** |
+|--------------------------|----------------------------------------|
+| Image image | 镜像信息 |
+| map\ info | 镜像额外信息,暂不支持,无额外信息返回 |
#### PullImage
@@ -2761,29 +1858,11 @@ rpc ImageStatus(ImageStatusRequest) returns (ImageStatusResponse) {}
#### 参数
-
-参数成员
- |
-描述
- |
-
-ImageSpec image
- |
-要下载的镜像名称
- |
-
-AuthConfig auth
- |
-下载私有镜像时的验证信息
- |
-
-PodSandboxConfig sandbox_config
- |
-在Pod上下文中下载镜像(暂不支持)
- |
-
-
-
+| **参数成员** | **描述** |
+|---------------------------------|-----------------------------------|
+| ImageSpec image | 要下载的镜像名称 |
+| AuthConfig auth | 下载私有镜像时的验证信息 |
+| PodSandboxConfig sandbox_config | 在Pod上下文中下载镜像(暂不支持) |
#### 返回值
@@ -2819,19 +1898,9 @@ rpc RemoveImage(RemoveImageRequest) returns (RemoveImageResponse) {}
#### 参数
-
-参数成员
- |
-描述
- |
-
-ImageSpec image
- |
-要删除的镜像名称或者ID
- |
-
-
-
+| **参数成员** | **描述** |
+|-----------------|------------------------|
+| ImageSpec image | 要删除的镜像名称或者ID |
#### 返回值
@@ -2859,19 +1928,9 @@ rpc ImageFsInfo(ImageFsInfoRequest) returns (ImageFsInfoResponse) {}
#### 返回值
-
-返回值
- |
-描述
- |
-
-repeated FilesystemUsage image_filesystems
- |
-镜像存储文件系统信息
- |
-
-
-
+| **返回值** | **描述** |
+|--------------------------------------------|----------------------|
+| repeated FilesystemUsage image_filesystems | 镜像存储文件系统信息 |
### 约束
diff --git a/docs/zh/docs/Container/figures/zh-cn_image_0183048952.png b/docs/zh/docs/cloud/container_engine/isula_container_engine/figures/zh-cn_image_0183048952.png
similarity index 100%
rename from docs/zh/docs/Container/figures/zh-cn_image_0183048952.png
rename to docs/zh/docs/cloud/container_engine/isula_container_engine/figures/zh-cn_image_0183048952.png
diff --git "a/docs/zh/docs/Container/\351\225\234\345\203\217\347\256\241\347\220\206.md" b/docs/zh/docs/cloud/container_engine/isula_container_engine/image_management.md
similarity index 86%
rename from "docs/zh/docs/Container/\351\225\234\345\203\217\347\256\241\347\220\206.md"
rename to docs/zh/docs/cloud/container_engine/isula_container_engine/image_management.md
index fd948bc5dbfa2c8d868b833f43ac52d6913e77a5..df14898899ee847c67ed2e55e2607a0406a1b319 100644
--- "a/docs/zh/docs/Container/\351\225\234\345\203\217\347\256\241\347\220\206.md"
+++ b/docs/zh/docs/cloud/container_engine/isula_container_engine/image_management.md
@@ -1,26 +1,5 @@
# 镜像管理
-
-
-- [镜像管理](#镜像管理)
- - [docker镜像管理](#docker镜像管理)
- - [登录到镜像仓库](#登录到镜像仓库)
- - [从镜像仓库退出登录](#从镜像仓库退出登录)
- - [从镜像仓库拉取镜像](#从镜像仓库拉取镜像)
- - [删除镜像](#删除镜像)
- - [加载镜像](#加载镜像)
- - [列出镜像](#列出镜像)
- - [检视镜像](#检视镜像)
- - [双向认证](#双向认证)
- - [embedded镜像管理](#embedded镜像管理)
- - [加载镜像](#加载镜像-1)
- - [列出镜像](#列出镜像-1)
- - [检视镜像](#检视镜像-1)
- - [删除镜像](#删除镜像-1)
-
-
-
-
## docker镜像管理
### 登录到镜像仓库
@@ -31,7 +10,7 @@ isula login命令用于登录到镜像仓库。登录成功后可以使用isula
#### 用法
-```
+```sh
isula login [OPTIONS] SERVER
```
@@ -41,7 +20,7 @@ login命令支持参数请参见"附录 > 命令行参数说明" 章节的 "表1
#### 示例
-```
+```sh
$ isula login -u abc my.csp-edge.com:5000
Login Succeeded
@@ -55,7 +34,7 @@ isula logout命令用于从镜像仓库退出登录。退出登录成功后再
#### 用法
-```
+```sh
isula logout SERVER
```
@@ -65,7 +44,7 @@ logout命令支持参数请参见"附录 > 命令行参数说明" 章节的 "表
#### 示例
-```
+```sh
$ isula logout my.csp-edge.com:5000
Logout Succeeded
```
@@ -78,7 +57,7 @@ Logout Succeeded
#### 用法
-```
+```sh
isula pull [OPTIONS] NAME[:TAG]
```
@@ -88,7 +67,7 @@ login命令支持参数请参见"附录 > 命令行参数说明" 章节的 "表3
#### 示例
-```
+```sh
$ isula pull localhost:5000/official/busybox
Image "localhost:5000/official/busybox" pulling
Image "localhost:5000/official/busybox@sha256:bf510723d2cd2d4e3f5ce7e93bf1e52c8fd76831995ac3bd3f90ecc866643aff" pulled
@@ -102,7 +81,7 @@ Image "localhost:5000/official/busybox@sha256:bf510723d2cd2d4e3f5ce7e93bf1e52c8f
#### 用法
-```
+```sh
isula rmi [OPTIONS] IMAGE [IMAGE...]
```
@@ -112,7 +91,7 @@ rmi命令支持参数请参见"附录 > 命令行参数说明" 章节的 "表4 r
#### 示例
-```
+```sh
$ isula rmi rnd-dockerhub.huawei.com/official/busybox
Image "rnd-dockerhub.huawei.com/official/busybox" removed
```
@@ -125,7 +104,7 @@ tag命令用于添加镜像标签
#### 用法
-```
+```sh
isula tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
```
@@ -135,7 +114,7 @@ tag命令支持参数请参见"附录 > 命令行参数说明" 章节的 "表8 t
#### 示例
-```
+```sh
$ isula tag busybox:latest test:latest
```
@@ -147,7 +126,7 @@ $ isula tag busybox:latest test:latest
#### 用法
-```
+```sh
isula load [OPTIONS]
```
@@ -157,7 +136,7 @@ load命令支持参数请参见"附录 > 命令行参数说明" 章节的 "表5
#### 示例
-```
+```sh
$ isula load -i busybox.tar
Load image from "/root/busybox.tar" success
```
@@ -170,7 +149,7 @@ Load image from "/root/busybox.tar" success
#### 用法
-```
+```sh
isula images [OPTIONS]
```
@@ -180,7 +159,7 @@ images命令支持参数请参见"附录 > 命令行参数说明" 章节的 "表
#### 示例
-```
+```sh
$ isula images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest beae173ccac6 2021-12-31 03:19:41 1.184MB
@@ -194,7 +173,7 @@ busybox latest beae173ccac6 202
#### 用法
-```
+```sh
isula inspect [options] CONTAINER|IMAGE [CONTAINER|IMAGE...]
```
@@ -204,7 +183,7 @@ inspect命令支持参数请参见"附录 > 命令行参数说明" 章节的 "
#### 示例
-```
+```sh
$ isula inspect -f "{{json .image.id}}" rnd-dockerhub.huawei.com/official/busybox
"e4db68de4ff27c2adfea0c54bbb73a61a42f5b667c326de4d7d5b19ab71c6a3b"
```
@@ -219,19 +198,18 @@ $ isula inspect -f "{{json .image.id}}" rnd-dockerhub.huawei.com/official/busybo
要支持该功能,需要镜像仓库支持该功能,同时isulad也需要做相应的配置:
-1. 修改isulad的配置\(默认路径/etc/isulad/daemon.json\),将配置里的use-decrypted-key项配置为false。
-2. 需要将相关的证书放置到/etc/isulad/certs.d目录下对应的镜像仓库命名的文件夹下,证书具体的生成方法见docker的官方链接:
- - [https://docs.docker.com/engine/security/certificates/](https://docs.docker.com/engine/security/certificates/)
- - [https://docs.docker.com/engine/security/https/](https://docs.docker.com/engine/security/https/)
-
+1. 修改isulad的配置\(默认路径/etc/isulad/daemon.json\),将配置里的use-decrypted-key项配置为false。
+2. 需要将相关的证书放置到/etc/isulad/certs.d目录下对应的镜像仓库命名的文件夹下,证书具体的生成方法见docker的官方链接:
+ - [https://docs.docker.com/engine/security/certificates/](https://docs.docker.com/engine/security/certificates/)
+ - [https://docs.docker.com/engine/security/https/](https://docs.docker.com/engine/security/https/)
-1. 执行systemctl restart isulad重启isulad。
+3. 执行systemctl restart isulad重启isulad。
#### 参数
可以在/etc/isulad/daemon.json中配置参数,也可以在启动isulad时携带参数:
-```
+```sh
isulad --use-decrypted-key=false
```
@@ -239,7 +217,7 @@ isulad --use-decrypted-key=false
配置use-decrypted-key参数为false
-```
+```sh
$ cat /etc/isulad/daemon.json
{
"group": "isulad",
@@ -281,7 +259,7 @@ $ cat /etc/isulad/daemon.json
将证书放到对应的目录下
-```
+```sh
$ pwd
/etc/isulad/certs.d/my.csp-edge.com:5000
$ ls
@@ -290,13 +268,13 @@ ca.crt tls.cert tls.key
重启isulad
-```
+```sh
$ systemctl restart isulad
```
执行pull命令从仓库下载镜像
-```
+```sh
$ isula pull my.csp-edge.com:5000/busybox
Image "my.csp-edge.com:5000/busybox" pulling
Image "my.csp-edge.com:5000/busybox@sha256:f1bdc62115dbfe8f54e52e19795ee34b4473babdeb9bc4f83045d85c7b2ad5c0" pulled
@@ -311,9 +289,10 @@ Image "my.csp-edge.com:5000/busybox@sha256:f1bdc62115dbfe8f54e52e19795ee34b4473b
#### 用法
-```
+```sh
isula import file REPOSITORY[:TAG]
```
+
导入成功后打印的字符串是导入的rootfs生成的镜像id
#### 参数
@@ -322,7 +301,7 @@ import命令支持参数请参见"附录 > 命令行参数说明" 章节的 "表
#### 示例
-```
+```sh
$ isula import busybox.tar test
sha256:441851e38dad32478e6609a81fac93ca082b64b366643bafb7a8ba398301839d
$ isula images
@@ -338,7 +317,7 @@ test latest 441851e38dad 2020-09-01 11:14:35 1.168 MB
#### 用法
-```
+```sh
isula export [OPTIONS] [ID|NAME]
```
@@ -348,7 +327,7 @@ export命令支持参数请参见"附录 > 命令行参数说明" 章节的 "表
#### 示例
-```
+```sh
$ isula run -tid --name container_test test sh
d7e601c2ef3eb8d378276d2b42f9e58a2f36763539d3bfcaf3a0a77dc668064b
$ isula export -o rootfs.tar d7e601c
@@ -356,7 +335,6 @@ $ ls
rootfs.tar
```
-
## embedded镜像管理
### 加载镜像
@@ -367,7 +345,7 @@ rootfs.tar
#### 用法
-```
+```sh
isula load [OPTIONS] --input=FILE --type=TYPE
```
@@ -377,7 +355,7 @@ load命令支持参数请参见"附录 > 命令行参数说明" 章节的 "表5
#### 示例
-```
+```sh
$ isula load -i test.manifest --type embedded
Load image from "/root/work/bugfix/tmp/ci_testcase_data/embedded/img/test.manifest" success
```
@@ -390,7 +368,7 @@ Load image from "/root/work/bugfix/tmp/ci_testcase_data/embedded/img/test.manife
#### 用法
-```
+```sh
isula images [OPTIONS]
```
@@ -400,7 +378,7 @@ images命令支持参数请参见"附录 > 命令行参数说明" 章节的 "表
#### 示例
-```
+```sh
$ isula images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest beae173ccac6 2021-12-31 03:19:41 1.184MB
@@ -414,7 +392,7 @@ busybox latest beae173ccac6 202
#### 用法
-```
+```sh
isula inspect [options] CONTAINER|IMAGE [CONTAINER|IMAGE...]
```
@@ -424,7 +402,7 @@ inspect命令支持参数请参见"附录 > 命令行参数说明" 章节的 "
#### 示例
-```
+```sh
$ isula inspect -f "{{json .created}}" test:v1
"2018-03-01T15:55:44.322987811Z"
```
@@ -437,7 +415,7 @@ $ isula inspect -f "{{json .created}}" test:v1
#### 用法
-```
+```sh
isula rmi [OPTIONS] IMAGE [IMAGE...]
```
@@ -447,7 +425,7 @@ rmi命令支持参数请参见"附录 > 命令行参数说明" 章节的 "表4 r
#### 示例
-```
+```sh
$ isula rmi test:v1
Image "test:v1" removed
```
@@ -460,7 +438,7 @@ Image "test:v1" removed
#### 用法
-```
+```sh
isula tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
```
@@ -470,7 +448,7 @@ tag命令支持参数请参见"附录 > 命令行参数说明" 章节的 "表8 t
#### 示例
-```
+```sh
$ isula tag test:v1 test:v2
```
@@ -482,7 +460,7 @@ $ isula tag test:v1 test:v2
#### 用法
-```
+```sh
isula export [command options] [ID|NAME]
```
@@ -492,6 +470,6 @@ export命令支持参数请参见"附录 > 命令行参数说明" 章节的 "表
#### 示例
-```
+```sh
$ isula export -o test.tar containername
```
diff --git "a/docs/zh/docs/Container/\345\256\211\350\243\205\344\270\216\351\205\215\347\275\256.md" b/docs/zh/docs/cloud/container_engine/isula_container_engine/installation_configuration.md
similarity index 35%
rename from "docs/zh/docs/Container/\345\256\211\350\243\205\344\270\216\351\205\215\347\275\256.md"
rename to docs/zh/docs/cloud/container_engine/isula_container_engine/installation_configuration.md
index 8f36bbb0558592c4c87b505d564ede5a3c4157b2..9758f2a60e227ae6bcb47476676a7892ba899783 100644
--- "a/docs/zh/docs/Container/\345\256\211\350\243\205\344\270\216\351\205\215\347\275\256.md"
+++ b/docs/zh/docs/cloud/container_engine/isula_container_engine/installation_configuration.md
@@ -1,15 +1,9 @@
# 安装与配置
-本章介绍iSulad的安装、安装后配置,以及升级和卸载的方法。
-> **说明:**
->iSulad的安装、升级、卸载均需要使用root权限。
-
-
-- [安装与配置](#安装与配置)
- - [安装方法](#安装方法)
- - [配置方法](#配置方法)
-
-
+本章介绍iSulad的安装、安装后配置,以及升级和卸载的方法。
+> [!NOTE]说明
+>
+> iSulad的安装、升级、卸载均需要使用root权限。
## 安装方法
@@ -17,16 +11,15 @@ iSulad可以通过yum或rpm命令两种方式安装,由于yum会自动安装
这里给出两种安装方式的操作方法。
-- (推荐)使用yum安装iSulad,参考命令如下:
+- (推荐)使用yum安装iSulad,参考命令如下:
- ```
+ ```bash
# sudo yum install -y iSulad
```
+- 使用rpm安装iSulad,需要下载iSulad及其所有依赖库的RPM包,然后手动安装。安装单个iSulad的RPM包(依赖包安装方式相同),参考命令如下:
-- 使用rpm安装iSulad,需要下载iSulad及其所有依赖的RPM包,然后手动安装。安装单个iSulad的RPM包(依赖包安装方式相同),参考命令如下:
-
- ```
+ ```bash
# sudo rpm -ihv iSulad-xx.xx.xx-xx.xxx.aarch64.rpm
```
@@ -38,14 +31,15 @@ iSulad 安装完成后,可以根据需要进行相关配置。
轻量级容器引擎(iSulad)服务端daemon为isulad,isulad可以通过配置文件进行配置,也可以通过命令行的方式进行配置,例如:isulad --xxx,优先级从高到低是:命令行方式\>配置文件\>代码中默认配置。
-> **说明:**
->如果采用systemd管理iSulad进程,修改/etc/sysconfig/iSulad文件中的OPTIONS字段,等同于命令行方式进行配置。
+> [!NOTE]说明
+>
+> 如果采用systemd管理iSulad进程,修改/etc/sysconfig/iSulad文件中的OPTIONS字段,等同于命令行方式进行配置。
-- **命令行方式**
+- **命令行方式**
在启动服务的时候,直接通过命令行进行配置。其配置选项可通过以下命令查阅:
- ```
+ ```bash
# isulad --help
isulad
@@ -68,14 +62,14 @@ iSulad 安装完成后,可以根据需要进行相关配置。
--help Show help
--hook-spec Default hook spec file applied to all containers
-H, --host The socket name used to create gRPC server
- --image-layer-check Check layer intergrity when needed
+ --image-layer-check Check layer integrity when needed
--insecure-registry Disable TLS verification for the given registry
--insecure-skip-verify-enforce Force to skip the insecure verify(default false)
--log-driver Set daemon log driver, such as: file
-l, --log-level Set log level, the levels can be: FATAL ALERT CRIT ERROR WARN NOTICE INFO DEBUG TRACE
--log-opt Set daemon log driver options, such as: log-path=/tmp/logs/ to set directory where to store daemon logs
--native.umask Default file mode creation mask (umask) for containers
- --network-plugin Set network plugin, default is null, suppport null and cni
+ --network-plugin Set network plugin, default is null, support null and cni
-p, --pidfile Save pid into this file
--pod-sandbox-image The image whose network/ipc namespaces containers in each pod will use. (default "pause-${machine}:3.0")
--registry-mirrors Registry to be prepended when pulling unqualified images, can be specified multiple times
@@ -97,128 +91,127 @@ iSulad 安装完成后,可以根据需要进行相关配置。
示例: 启动isulad,并将日志级别调整成DEBUG
- ```
+ ```bash
# isulad -l DEBUG
```
-
-- **配置文件方式**
+- **配置文件方式**
isulad配置文件为/etc/isulad/daemon.json和/etc/isulad/daemon_constants.json,各配置字段说明如下:
配置文件/etc/isulad/daemon.json
- 配置参数
+ 配置参数
|
- 配置文件示例
+ | 配置文件示例
|
- 参数解释
+ | 参数解释
|
- 备注
+ | 备注
|
- -e, --engine
+ | -e, --engine
|
- "engine": "lcr"
+ | "engine": "lcr"
|
- iSulad的运行时,默认是lcr
+ | iSulad的运行时,默认是lcr
|
- 无
+ | 无
|
- -G, --group
+ | -G, --group
|
- "group": "isulad"
+ | "group": "isulad"
|
- socket所属组
+ | socket所属组
|
- 无
+ | 无
|
- --hook-spec
+ | --hook-spec
|
- "hook-spec": "/etc/default/isulad/hooks/default.json"
+ | "hook-spec": "/etc/default/isulad/hooks/default.json"
|
- 针对所有容器的默认钩子配置文件
+ | 针对所有容器的默认钩子配置文件
|
- 无
+ | 无
|
- -H, --host
+ | -H, --host
|
- "hosts": "unix:///var/run/isulad.sock"
+ | "hosts": "unix:///var/run/isulad.sock"
|
- 通信方式
+ | 通信方式
|
- 除本地socket外,还支持tcp://ip:port方式,port范围(0-65535,排除被占用端口)
+ | 除本地socket外,还支持tcp://ip:port方式,port范围(0-65535,排除被占用端口)
|
- --log-driver
+ | --log-driver
|
- "log-driver": "file"
+ | "log-driver": "file"
|
- 日志驱动配置
+ | 日志驱动配置
|
- 无
+ | 无
|
- -l, --log-level
+ | -l, --log-level
|
- "log-level": "ERROR"
+ | "log-level": "ERROR"
|
- 设置日志输出级别
+ | 设置日志输出级别
|
- 无
+ | 无
|
- --log-opt
+ | --log-opt
|
- "log-opts": {
+ | "log-opts": {
"log-file-mode": "0600",
"log-path": "/var/lib/isulad",
"max-file": "1",
"max-size": "30KB"
}
|
- 日志相关的配置
+ | 日志相关的配置
|
- 可以指定max-file,max-size,log-path。max-file指日志文件个数;max-size指日志触发防爆的阈值,若max-file为1,max-size失效;log-path指定日志文件存储路径;log-file-mode用于设置日志文件的读写权限,格式要求必须为八进制格式,如0666。
+ | 可以指定max-file,max-size,log-path。max-file指日志文件个数;max-size指日志触发防爆的阈值,若max-file为1,max-size失效;log-path指定日志文件存储路径;log-file-mode用于设置日志文件的读写权限,格式要求必须为八进制格式,如0666。
|
- --container-log-driver
+ | --container-log-driver
|
- "container-log": {
+ | "container-log": {
"driver": "json-file"
}
|
- 容器串口日志驱动默认配置
+ | 容器串口日志驱动默认配置
|
- 指定所有容器的默认串口日志的驱动
+ | 指定所有容器的默认串口日志的驱动
|
- --start-timeout
+ | --start-timeout
|
- "start-timeout": "2m"
+ | "start-timeout": "2m"
|
- 启动容器的耗时
+ | 启动容器的耗时
|
- 无
+ | 无
|
- 无
+ | 无
|
- "default-runtime": "lcr"
+ | "default-runtime": "lcr"
|
- 创建容器时的runtime运行时,默认是lcr
+ | 创建容器时的runtime运行时,默认是lcr
|
- 当命令行和配置文件均未指定时,默认为lcr,runtime的三种指定方式优先级:命令行>配置文件>默认lcr,当前支持lcr、kata-runtime。
+ | 当命令行和配置文件均未指定时,默认为lcr,runtime的三种指定方式优先级:命令行>配置文件>默认lcr,当前支持lcr、kata-runtime。
|
- 无
+ | 无
|
- "runtimes": {
+ "runtimes": {
"kata-runtime": {
"path": "/usr/bin/kata-runtime",
"runtime-args": [
@@ -228,203 +221,203 @@ iSulad 安装完成后,可以根据需要进行相关配置。
}
}
|
- 启动容器时,通过此字段指定多runtimes配置,在此集合中的元素均为有效的启动容器的runtime运行时。
+ | 启动容器时,通过此字段指定多runtimes配置,在此集合中的元素均为有效的启动容器的runtime运行时。
|
- 容器的runtime白名单,在此集合中的自定义runtime才是有效的。示例为以kata-runtime为例的配置。
+ | 容器的runtime白名单,在此集合中的自定义runtime才是有效的。示例为以kata-runtime为例的配置。
|
|
- -p, --pidfile
+ | -p, --pidfile
|
- "pidfile": "/var/run/isulad.pid"
+ | "pidfile": "/var/run/isulad.pid"
|
- 保存pid的文件
+ | 保存pid的文件
|
- 当启动一个容器引擎的时候不需要配置,当需要启动两个以上的容器引擎时才需要配置。
+ | 当启动一个容器引擎的时候不需要配置,当需要启动两个以上的容器引擎时才需要配置。
|
- -g, --graph
+ | -g, --graph
|
- "graph": "/var/lib/isulad"
+ | "graph": "/var/lib/isulad"
|
- iSulad运行时的根目录
+ | iSulad运行时的根目录
|
- -S, --state
+ | -S, --state
|
- "state": "/var/run/isulad"
+ | "state": "/var/run/isulad"
|
- 执行文件的根目录
+ | 执行文件的根目录
|
- --storage-driver
+ | --storage-driver
|
- "storage-driver": "overlay2"
+ | "storage-driver": "overlay2"
|
- 镜像存储驱动,默认为overlay2
+ | 镜像存储驱动,默认为overlay2
|
- 当前只支持overlay2
+ | 当前只支持overlay2
|
- -s, --storage-opt
+ | -s, --storage-opt
|
- "storage-opts": [ "overlay2.override_kernel_check=true" ]
+ | "storage-opts": [ "overlay2.override_kernel_check=true" ]
|
- 镜像存储驱动配置选项
+ | 镜像存储驱动配置选项
|
- 可使用的选项为:
+ | 可使用的选项为:
overlay2.override_kernel_check=true # 忽略内核版本检查
overlay2.size=${size} # 设置rootfs quota限额为${size}大小
overlay2.basesize=${size} #等价于overlay2.size
|
- --registry-mirrors
+ | --registry-mirrors
|
- "registry-mirrors": [ "docker.io" ]
+ | "registry-mirrors": [ "docker.io" ]
|
- 镜像仓库地址
+ | 镜像仓库地址
|
- 无
+ | 无
|
- --insecure-registry
+ | --insecure-registry
|
- "insecure-registries": [ ]
+ | "insecure-registries": [ ]
|
- 不使用TLS校验的镜像仓库
+ | 不使用TLS校验的镜像仓库
|
- 无
+ | 无
|
- --native.umask
+ | --native.umask
|
- "native.umask": "secure"
+ | "native.umask": "secure"
|
- 容器umask策略,默认"secure",normal为不安全配置
+ | 容器umask策略,默认"secure",normal为不安全配置
|
- 设置容器umask值。
+ | 设置容器umask值。
支持配置空字符(使用缺省值0027)、"normal"、"secure":
normal # 启动的容器umask值为0022
secure # 启动的容器umask值为0027(缺省值)
|
- --pod-sandbox-image
+ | --pod-sandbox-image
|
- "pod-sandbox-image": "rnd-dockerhub.huawei.com/library/pause-aarch64:3.0"
+ | "pod-sandbox-image": "rnd-dockerhub.huawei.com/library/pause-aarch64:3.0"
|
- pod默认使用镜像,默认为"rnd-dockerhub.huawei.com/library/pause-${machine}:3.0"
+ | pod默认使用镜像,默认为"rnd-dockerhub.huawei.com/library/pause-${machine}:3.0"
|
- 无
+ | 无
|
- --network-plugin
+ | --network-plugin
|
- "network-plugin": ""
+ | "network-plugin": ""
|
- 指定网络插件,默认为空字符,表示无网络配置,创建的sandbox只有loop网卡。
+ | 指定网络插件,默认为空字符,表示无网络配置,创建的sandbox只有loop网卡。
|
- 支持cni和空字符,其他非法值会导致isulad启动失败。
+ | 支持cni和空字符,其他非法值会导致isulad启动失败。
|
- --cni-bin-dir
+ | --cni-bin-dir
|
- "cni-bin-dir": ""
+ | "cni-bin-dir": ""
|
- 指定cni插件依赖的二进制的存储位置
+ | 指定cni插件依赖的二进制的存储位置
|
- 默认为/opt/cni/bin
+ | 默认为/opt/cni/bin
|
- --cni-conf-dir
+ | --cni-conf-dir
|
- "cni-conf-dir": ""
+ | "cni-conf-dir": ""
|
- 指定cni网络配置文件的存储位置
+ | 指定cni网络配置文件的存储位置
|
- 默认为/etc/cni/net.d
+ | 默认为/etc/cni/net.d
|
- --image-layer-check=false
+ | --image-layer-check=false
|
- "image-layer-check": false
+ | "image-layer-check": false
|
- 开启镜像层完整性检查功能,设置为true;关闭该功能,设置为false。默认为关闭。
+ | 开启镜像层完整性检查功能,设置为true;关闭该功能,设置为false。默认为关闭。
|
- isulad启动时会检查镜像层的完整性,如果镜像层被破坏,则相关的镜像不可用。isulad进行镜像完整性校验时,无法校验内容为空的文件和目录,以及链接文件。因此若镜像因掉电导致上述类型文件丢失,isulad的镜像数据完整性校验可能无法识别。isulad版本变更时需要检查是否支持该参数,如果不支持,需要从配置文件中删除。
+ | isulad启动时会检查镜像层的完整性,如果镜像层被破坏,则相关的镜像不可用。isulad进行镜像完整性校验时,无法校验内容为空的文件和目录,以及链接文件。因此若镜像因掉电导致上述类型文件丢失,isulad的镜像数据完整性校验可能无法识别。isulad版本变更时需要检查是否支持该参数,如果不支持,需要从配置文件中删除。
|
- --insecure-skip-verify-enforce=false
+ | --insecure-skip-verify-enforce=false
|
- "insecure-skip-verify-enforce": false
+ | "insecure-skip-verify-enforce": false
|
- Bool类型,是否强制跳过证书的主机名/域名验证,默认为false。当设置为true时,为不安全配置,会跳过证书的主机名/域名验证
+ | Bool类型,是否强制跳过证书的主机名/域名验证,默认为false。当设置为true时,为不安全配置,会跳过证书的主机名/域名验证
|
- 默认为false(不跳过),注意:因isulad使用的yajl json 解析库限制,若在/etc/isulad/daemon.json配置文件中配置非Bool类型的其他符合json格式的值时,isulad将使用缺省值false。
+ | 默认为false(不跳过),注意:因isulad使用的yajl json 解析库限制,若在/etc/isulad/daemon.json配置文件中配置非Bool类型的其他符合json格式的值时,isulad将使用缺省值false。
|
- --use-decrypted-key=true
+ | --use-decrypted-key=true
|
- "use-decrypted-key": true
+ | "use-decrypted-key": true
|
- Bool类型,指定是否使用不加密的私钥。指定为true,表示使用不加密的私钥;指定为false,表示使用的为加密后的私钥,即需要进行双向认证。
+ | Bool类型,指定是否使用不加密的私钥。指定为true,表示使用不加密的私钥;指定为false,表示使用的为加密后的私钥,即需要进行双向认证。
|
- 默认配置为true(使用不加密的私钥),注意:因isulad使用的yajl json 解析库限制,若在/etc/isulad/daemon.json配置文件中配置非Bool类型的其他符合json格式的值时,isulad将使用缺省值true。
+ | 默认配置为true(使用不加密的私钥),注意:因isulad使用的yajl json 解析库限制,若在/etc/isulad/daemon.json配置文件中配置非Bool类型的其他符合json格式的值时,isulad将使用缺省值true。
|
- --tls
+ | --tls
|
- "tls":false
+ | "tls":false
|
- Bool类型,是否使用TLS
+ | Bool类型,是否使用TLS
|
- 缺省值为false, 仅用于-H tcp://IP:PORT方式
+ | 缺省值为false, 仅用于-H tcp://IP:PORT方式
|
- --tlsverify
+ | --tlsverify
|
- "tlsverify":false
+ | "tlsverify":false
|
- Bool类型,是否使用TLS,并验证远程访问
+ | Bool类型,是否使用TLS,并验证远程访问
|
- 仅用于-H tcp://IP:PORT方式
+ | 仅用于-H tcp://IP:PORT方式
|
- --tlscacert
+ | --tlscacert
--tlscert
--tlskey
|
- "tls-config": {
+ | "tls-config": {
"CAFile": "/root/.iSulad/ca.pem",
"CertFile": "/root/.iSulad/server-cert.pem",
"KeyFile":"/root/.iSulad/server-key.pem"
}
|
- TLS证书相关的配置
+ | TLS证书相关的配置
|
- 仅用于-H tcp://IP:PORT方式
+ | 仅用于-H tcp://IP:PORT方式
|
- --authorization-plugin
+ | --authorization-plugin
|
- "authorization-plugin": "authz-broker"
+ | "authorization-plugin": "authz-broker"
|
- 用户权限认证插件
+ | 用户权限认证插件
|
- 当前只支持authz-broker
+ | 当前只支持authz-broker
|
- --cgroup-parent
+ | --cgroup-parent
|
- "cgroup-parent": "lxc/mycgroup"
+ | "cgroup-parent": "lxc/mycgroup"
|
- 字符串类型,容器默认cgroup父路径
+ | 字符串类型,容器默认cgroup父路径
|
- 指定daemon端容器默认的cgroup父路径,如果客户端指定了--cgroup-parent,以客户端参数为准。
+ | 指定daemon端容器默认的cgroup父路径,如果客户端指定了--cgroup-parent,以客户端参数为准。
注意:如果启了一个容器A,然后启一个容器B,容器B的cgroup父路径指定为容器A的cgroup路径,在删除容器的时候需要先删除容器B再删除容器A,否则会导致cgroup资源残留。
|
- --default-ulimits
+ | --default-ulimits
|
- "default-ulimits": {
+ | "default-ulimits": {
"nofile": {
"Name": "nofile",
"Hard": 6400,
@@ -432,68 +425,67 @@ iSulad 安装完成后,可以根据需要进行相关配置。
}
}
|
- ulimit指定限制的类型,soft值及hard值
+ | ulimit指定限制的类型,soft值及hard值
|
- 指定限制的资源类型,如“nofile”。两个字段名字必须相同,即都为nofile,否则会报错。Hard指定的值需要大于等于Soft'。如果Hard字段或者Soft字段未设置,则默认该字段默认为0。
+ | 指定限制的资源类型,如“nofile”。两个字段名字必须相同,即都为nofile,否则会报错。Hard指定的值需要大于等于Soft'。如果Hard字段或者Soft字段未设置,则默认该字段默认为0。
|
- --websocket-server-listening-port
+ | --websocket-server-listening-port
|
- "websocket-server-listening-port": 10350
+ | "websocket-server-listening-port": 10350
|
- 设置CRI websocket流式服务侦听端口,默认端口号10350
+ | 设置CRI websocket流式服务侦听端口,默认端口号10350
|
- 指定CRI websocket流式服务侦听端,如果客户端指定了
+ | 指定CRI websocket流式服务侦听端,如果客户端指定了
--websocket-server-listening-port,以客户端参数为准。端口范围1024-49151
|
- 无
+ | 无
|
- "cri-runtimes": {
+ | "cri-runtimes": {
"kata": "io.containerd.kata.v2"
}
|
- 自定义cri runtimes的映射
+ | 自定义cri runtimes的映射
|
- isulad通过自定义的cri runtimes映射,可以将runtimeclass转换为对应的runtime。
+ | isulad通过自定义的cri runtimes映射,可以将runtimeclass转换为对应的runtime。
|
-
配置文件/etc/isulad/daemon_constants.json
- 配置参数
+ 配置参数
|
- 配置文件示例
+ | 配置文件示例
|
- 参数解释
+ | 参数解释
|
- 备注
+ | 备注
|
- 不支持
+ | 不支持
|
- "default-host": "docker.io"
+ | "default-host": "docker.io"
|
- 如果镜像名以该镜像仓库名为前缀,则保存和显示时会去除该镜像仓库名前缀
+ | 如果镜像名以该镜像仓库名为前缀,则保存和显示时会去除该镜像仓库名前缀
|
- 一般情况下该参数不需要修改
+ | 一般情况下该参数不需要修改
|
- 不支持
+ | 不支持
|
- "registry-transformation": {
+ | "registry-transformation": {
"docker.io": "registry-1.docker.io",
"index.docker.io": "registry-1.docker.io"
}
|
- "key":"value"格式,表示从key指定的仓库拉取镜像时实际从value指定的仓库拉取镜像
+ | "key":"value"格式,表示从key指定的仓库拉取镜像时实际从value指定的仓库拉取镜像
|
- 一般情况下该参数不需要修改
+ | 一般情况下该参数不需要修改
|
@@ -501,7 +493,7 @@ iSulad 安装完成后,可以根据需要进行相关配置。
示例:
- ```
+ ```bash
# cat /etc/isulad/daemon.json
{
"group": "isulad",
@@ -554,75 +546,75 @@ iSulad 安装完成后,可以根据需要进行相关配置。
```
- > **须知:**
- >默认配置文件/etc/isulad/daemon.json仅供参考,请根据实际需要进行配置
-
+ > [!TIP]须知
+ >
+ > 默认配置文件/etc/isulad/daemon.json仅供参考,请根据实际需要进行配置。
### 存储说明
-文件名
+文件名
|
-文件路径
+ | 文件路径
|
-内容
+ | 内容
|
-\*
+ | \*
|
-/etc/default/isulad/
+ | /etc/default/isulad/
|
-存放isulad的OCI配置文件和钩子模板文件,文件夹下的配置文件权限设置为0640,sysmonitor检查脚本权限为0550
+ | 存放isulad的OCI配置文件和钩子模板文件,文件夹下的配置文件权限设置为0640,sysmonitor检查脚本权限为0550
|
-\*
+ | \*
|
-/etc/isulad/
+ | /etc/isulad/
|
-isulad的默认配置文件和seccomp的默认配置文件
+ | isulad的默认配置文件和seccomp的默认配置文件
|
-isulad.sock
+ | isulad.sock
|
-/var/run/
+ | /var/run/
|
-管道通信文件,客户端和isulad的通信使用的socket文件
+ | 管道通信文件,客户端和isulad的通信使用的socket文件
|
-isulad.pid
+ | isulad.pid
|
-/var/run/
+ | /var/run/
|
-存放isulad的PID,同时也是一个文件锁防止启动多个isulad实例
+ | 存放isulad的PID,同时也是一个文件锁防止启动多个isulad实例
|
-\*
+ | \*
|
-/run/lxc/
+ | /run/lxc/
|
-文件锁文件,isula运行过程创建的文件
+ | 文件锁文件,isula运行过程创建的文件
|
-\*
+ | \*
|
-/var/run/isulad/
+ | /var/run/isulad/
|
-实时通讯缓存文件,isulad运行过程创建的文件
+ | 实时通讯缓存文件,isulad运行过程创建的文件
|
-\*
+ | \*
|
-/var/run/isula/
+ | /var/run/isula/
|
-实时通讯缓存文件,isula运行过程创建的文件
+ | 实时通讯缓存文件,isula运行过程创建的文件
|
-\*
+ | \*
|
-/var/lib/isulad/
+ | /var/lib/isulad/
|
-isulad运行的根目录,存放创建的容器配置、日志的默认路径、数据库文件、mount点等
+ | isulad运行的根目录,存放创建的容器配置、日志的默认路径、数据库文件、mount点等
/var/lib/isulad/mnt/ :容器rootfs的mount点
/var/lib/isulad/engines/lcr/ :存放lcr容器配置目录,每个容器一个目录(以容器名命名)
|
@@ -632,50 +624,48 @@ iSulad 安装完成后,可以根据需要进行相关配置。
### 约束限制
-- 高并发场景(并发启动200容器)下,glibc的内存管理机制会导致内存空洞以及虚拟内存较大(例如10GB)的问题。该问题是高并发场景下glibc内存管理机制的限制,而不是内存泄露,不会导致内存消耗无限增大。可以通过设置MALLOC\_ARENA\_MAX环境变量来减少虚拟内存的问题,而且可以增大减少物理内存的概率。但是这个环境变量会导致iSulad的并发性能下降,需要用户根据实际情况做配置。
+- 高并发场景(并发启动200容器)下,glibc的内存管理机制会导致内存空洞以及虚拟内存较大(例如10GB)的问题。该问题是高并发场景下glibc内存管理机制的限制,而不是内存泄露,不会导致内存消耗无限增大。可以通过设置MALLOC\_ARENA\_MAX环境变量来减少虚拟内存的问题,而且可以增大减少物理内存的概率。但是这个环境变量会导致iSulad的并发性能下降,需要用户根据实际情况做配置。
- ```
参考实践情况,平衡性能和内存,可以设置MALLOC_ARENA_MAX为4。(在arm64服务器上面对iSulad的性能影响在10%以内)
配置方法:
1. 手动启动iSulad的场景,可以直接export MALLOC_ARENA_MAX=4,然后再启动iSulad即可。
2. systemd管理iSulad的场景,可以修改/etc/sysconfig/iSulad,增加一条MALLOC_ARENA_MAX=4即可。
- ```
-- 为daemon指定各种运行目录时的注意事项
+- 为daemon指定各种运行目录时的注意事项
以--root为例,当使用/new/path/作为daemon新的Root Dir时,如果/new/path/下已经存在文件,且目录或文件名与isulad需要使用的目录或文件名冲突(例如:engines、mnt等目录)时,isulad可能会更新原有目录或文件的属性,包括属主、权限等为自己的属主和权限。
所以,用户需要明白重新指定各种运行目录和文件,会对冲突目录、文件属性的影响。建议用户指定的新目录或文件为isulad专用,避免冲突导致的文件属性变化以及带来的安全问题。
-- 日志文件管理:
+- 日志文件管理:
- > **须知:**
- >日志功能对接: iSulad由systemd管理,日志也由systemd管理,然后传输给rsyslogd。rsyslog默认会对写日志速度有限制,可以通过修改/etc/rsyslog.conf文件,增加"$imjournalRatelimitInterval 0"配置项,然后重启rsyslogd的服务即可。
+ > [!TIP]须知
+ >
+ > 日志功能对接: iSulad由systemd管理,日志也由systemd管理,然后传输给rsyslogd。rsyslog默认会对写日志速度有限制,可以通过修改/etc/rsyslog.conf文件,增加"$imjournalRatelimitInterval 0"配置项,然后重启rsyslogd的服务即可。
-- 命令行参数解析限制
+- 命令行参数解析限制
使用iSulad命令行接口时,其参数解析方式与docker略有不同,对于命令行中带参数的flag,不管使用长flag还是短flag,只会将该flag后第一个空格或与flag直接相连接的'='后的字符串作为flag的参数,具体如下:
- 1. 使用短flag时,与“-”连接的字符串中的每个字符都被当作短flag(当有=号时,=号后的字符串当成=号前的短flag的参数)。
+ 1. 使用短flag时,与“-”连接的字符串中的每个字符都被当作短flag(当有=号时,=号后的字符串当成=号前的短flag的参数)。
isula run -du=root busybox 等价于 isula run -du root busybox 或 isula run -d -u=root busybox 或 isula run -d -u root busybox ,当使用isula run -du:root时,由于-:不是有效的短flag,因此会报错。前述的命令行也等价于isula run -ud root busybox,但不推荐这种使用方式,可能带来语义困扰。
- 1. 使用长flag时,与“--”连接的字符串作为一个整体当成长flag,若包含=号,则=号前的字符串为长flag,=号后的为参数。
+ 2. 使用长flag时,与“--”连接的字符串作为一个整体当成长flag,若包含=号,则=号前的字符串为长flag,=号后的为参数。
- ```
+ ```bash
isula run --user=root busybox
```
等价于
- ```
+ ```bash
isula run --user root busybox
```
-
-- 启动一个isulad容器,不能够以非root用户进行isula run -i/-t/-ti以及isula attach/exec操作。
-- isulad的临时文件存放路径默认为/var/lib/isulad/isulad_tmpdir,如果更换了isulad的根目录,则路径为`$isulad_root/isulad_tmpdir`。如果需要修改isulad存放临时文件的目录,可以通过在启动isulad前配置ISULAD_TMPDIR环境变量来实现,isulad启动时会进行检查,如果发现配置了ISULAD_TMPDIR环境变量,则会将`$ISULAD_TMPDIR/isulad_tmpdir`目录作为临时文件存放的路径,注意`$ISULAD_TMPDIR`下面的不要存放名称为isulad_tmpdir的文件/文件夹等,因为isulad启动时会递归删除`$ISULAD_TMPDIR/isulad_tmpdir`目录来防止数据残留。同时请确保`$ISULAD_TMPDIR`路径只有root用户可以访问,防止其他用户操作导致的安全问题。
+- 启动一个isulad容器,不能够以非root用户进行isula run -i/-t/-ti以及isula attach/exec操作。
+- isulad的临时文件存放路径默认为/var/lib/isulad/isulad_tmpdir,如果更换了isulad的根目录,则路径为`$isulad_root/isulad_tmpdir`。如果需要修改isulad存放临时文件的目录,可以通过在启动isulad前配置ISULAD_TMPDIR环境变量来实现,isulad启动时会进行检查,如果发现配置了ISULAD_TMPDIR环境变量,则会将`$ISULAD_TMPDIR/isulad_tmpdir`目录作为临时文件存放的路径,注意`$ISULAD_TMPDIR`下面的不要存放名称为isulad_tmpdir的文件/文件夹等,因为isulad启动时会递归删除`$ISULAD_TMPDIR/isulad_tmpdir`目录来防止数据残留。同时请确保`$ISULAD_TMPDIR`路径只有root用户可以访问,防止其他用户操作导致的安全问题。
### DAEMON多端口的绑定
@@ -687,7 +677,7 @@ daemon端可以绑定多个unix socket或者tcp端口,并在这些端口上侦
用户可以在/etc/isulad/daemon.json文件的hosts字段配置一个或者多个端口。当然用户也可以不指定hosts。
-```
+```conf
{
"hosts": [
"unix:///var/run/isulad.sock",
@@ -699,7 +689,7 @@ daemon端可以绑定多个unix socket或者tcp端口,并在这些端口上侦
用户也可以在/etc/sysconfig/iSulad中通过-H或者--host配置端口。用户同样可以不指定hosts。
-```
+```conf
OPTIONS='-H unix:///var/run/isulad.sock --host tcp://127.0.0.1:6789'
```
@@ -707,27 +697,27 @@ OPTIONS='-H unix:///var/run/isulad.sock --host tcp://127.0.0.1:6789'
## 限制
-- 用户不可以在/etc/isulad/daemon.json和/etc/sysconfig/iSulad两个文件中同时指定hosts,如果这样做将会出现错误,isulad无法正常启动;
+- 用户不可以在/etc/isulad/daemon.json和/etc/sysconfig/iSulad两个文件中同时指定hosts,如果这样做将会出现错误,isulad无法正常启动;
- ```
+ ```text
unable to configure the isulad with file /etc/isulad/daemon.json: the following directives are specified both as a flag and in the configuration file: hosts: (from flag: [unix:///var/run/isulad.sock tcp://127.0.0.1:6789], from file: [unix:///var/run/isulad.sock tcp://localhost:5678 tcp://127.0.0.1:6789])
```
-- 若指定的host是unix socket,则必须是合法的unix socket,需要以"unix://"开头,后跟合法的socket绝对路径;
-- 若指定的host是tcp端口,则必须是合法的tcp端口,需要以"tcp://"开头,后跟合法的IP地址和端口,IP地址可以为localhost;
-- 可以指定至多10个有效的端口,超过10个则会出现错误,isulad无法正常启动。
+- 若指定的host是unix socket,则必须是合法的unix socket,需要以"unix://"开头,后跟合法的socket绝对路径;
+- 若指定的host是tcp端口,则必须是合法的tcp端口,需要以"tcp://"开头,后跟合法的IP地址和端口,IP地址可以为localhost;
+- 可以指定至多10个有效的端口,超过10个则会出现错误,isulad无法正常启动。
### 配置TLS认证与开启远程访问
#### 描述
-iSulad采用C/S模式进行设计,在默认情况,iSulad守护进程isulad只侦听本地/var/run/isulad.sock,因此只能在本地通过客户端isula执行相关命令操作容器。为了能使isula可以远程访问容器,isulad守护进程需要通过tcp:ip的方式侦听远程访问的端口。然而,仅通过简单配置tcp ip:port进行侦听,这样会导致所有的ip都可以通过调用isula -H tcp://:port与isulad通信,容易导致安全问题,因此推荐使用较安全版本的TLS\(**Transport Layer Security - 安全传输层协议**)方式进行远程访问。
+iSulad采用C/S模式进行设计,在默认情况,iSulad守护进程isulad只侦听本地/var/run/isulad.sock,因此只能在本地通过客户端isula执行相关命令操作容器。为了能使isula可以远程访问容器,isulad守护进程需要通过tcp:ip的方式侦听远程访问的端口。然而,仅通过简单配置tcp ip:port进行侦听,这样会导致所有的ip都可以通过调用`isula -H tcp://:port`与isulad通信,容易导致安全问题,因此推荐使用较安全版本的TLS(**Transport Layer Security - 安全传输层协议**)方式进行远程访问。
#### 生成TLS证书
-- 明文私钥和证书生成方法示例
+- 明文私钥和证书生成方法示例
- ```
+ ```bash
#!/bin/bash
set -e
echo -n "Enter pass phrase:"
@@ -768,10 +758,9 @@ iSulad采用C/S模式进行设计,在默认情况,iSulad守护进程isulad
chmod -v 0444 ca.pem server-cert.pem cert.pem
```
+- 加密私钥和证书请求文件生成方法示例
-- 加密私钥和证书请求文件生成方法示例
-
- ```
+ ```bash
#!/bin/bash
echo -n "Enter public network ip:"
@@ -813,17 +802,16 @@ iSulad采用C/S模式进行设计,在默认情况,iSulad守护进程isulad
rm -f ca-key.pem ca.srl client.csr extfile.cnf server.csr
```
-
#### 接口
-```
+```conf
{
"tls": true,
"tls-verify": true,
"tls-config": {
- "CAFile": "/root/.iSulad/ca.pem",
- "CertFile": "/root/.iSulad/server-cert.pem",
- "KeyFile":"/root/.iSulad/server-key.pem"
+ "CAFile": "/root/.iSulad/ca.pem",
+ "CertFile": "/root/.iSulad/server-cert.pem",
+ "KeyFile":"/root/.iSulad/server-key.pem"
}
}
```
@@ -832,35 +820,35 @@ iSulad采用C/S模式进行设计,在默认情况,iSulad守护进程isulad
服务端支持的模式如下:
-- 模式1(验证客户端):tlsverify, tlscacert, tlscert, tlskey。
-- 模式2(不验证客户端):tls, tlscert, tlskey。
+- 模式1(验证客户端):tlsverify, tlscacert, tlscert, tlskey。
+- 模式2(不验证客户端):tls, tlscert, tlskey。
客户端支持的模式如下:
-- 模式1\(使用客户端证书进行身份验证,并根据给定的CA验证服务器\):tlsverify, tlscacert, tlscert, tlskey。
-- 模式2\(验证服务器\):tlsverify, tlscacert。
+- 模式1\(使用客户端证书进行身份验证,并根据给定的CA验证服务器\):tlsverify, tlscacert, tlscert, tlskey。
+- 模式2\(验证服务器\):tlsverify, tlscacert。
如果需要采用双向认证方式进行通讯,则服务端采用模式1,客户端采用模式1;
如果需要采用单向认证方式进行通讯,则服务端采用模式2,客户端采用模式2。
-> **须知:**
->- 采用RPM安装方式时,服务端配置可通过/etc/isulad/daemon.json以及/etc/sysconfig/iSulad配置修改
->- 相比非认证或者单向认证方式,双向认证具备更高的安全性,推荐使用双向认证的方式进行通讯
->- GRPC开源组件日志不由iSulad进行接管,如果需要查看GRPC相关日志,请按需设置GRPC\_VERBOSITY和GRPC\_TRACE环境变量
->
+> [!TIP]须知
+>
+> - 采用RPM安装方式时,服务端配置可通过/etc/isulad/daemon.json以及/etc/sysconfig/iSulad配置修改。
+> - 相比非认证或者单向认证方式,双向认证具备更高的安全性,推荐使用双向认证的方式进行通讯。
+> - GRPC开源组件日志不由iSulad进行接管,如果需要查看GRPC相关日志,请按需设置GRPC\_VERBOSITY和GRPC\_TRACE环境变量。
#### 示例
服务端:
-```
+```bash
isulad -H=tcp://0.0.0.0:2376 --tlsverify --tlscacert ~/.iSulad/ca.pem --tlscert ~/.iSulad/server-cert.pem --tlskey ~/.iSulad/server-key.pem
```
客户端:
-```
+```bash
isula version -H=tcp://$HOSTIP:2376 --tlsverify --tlscacert ~/.iSulad/ca.pem --tlscert ~/.iSulad/cert.pem --tlskey ~/.iSulad/key.pem
```
@@ -870,40 +858,40 @@ iSulad采用C/S模式进行设计,在默认情况,iSulad守护进程isulad
**一、配置thinpool**
-1. 停止isulad服务。
+1. 停止isulad服务。
- ```
+ ```bash
# systemctl stop isulad
```
-2. 基于块设备创建一个lvm卷。
+2. 基于块设备创建一个lvm卷。
- ```
+ ```bash
# pvcreate /dev/xvdf
```
-3. 使用刚才创建的物理卷创建一个卷组。
+3. 使用刚才创建的物理卷创建一个卷组。
- ```
+ ```bash
# vgcreate isula /dev/xvdf
Volume group "isula" successfully created:
```
-4. 创建名为thinpool和thinpoolmeta的两个逻辑卷。
+4. 创建名为thinpool和thinpoolmeta的两个逻辑卷。
- ```
+ ```bash
# lvcreate --wipesignatures y -n thinpool isula -l 95%VG
Logical volume "thinpool" created.
```
- ```
+ ```bash
# lvcreate --wipesignatures y -n thinpoolmeta isula -l 1%VG
Logical volume "thinpoolmeta" created.
```
-5. 将新创建的两个逻辑卷转换成thinpool以及thinpool所使用的metadata,这样就完成了thinpool配置。
+5. 将新创建的两个逻辑卷转换成thinpool以及thinpool所使用的metadata,这样就完成了thinpool配置。
- ```
+ ```bash
# lvconvert -y --zero n -c 512K --thinpool isula/thinpool --poolmetadata isula/thinpoolmeta
WARNING: Converting logical volume isula/thinpool and isula/thinpoolmeta to
@@ -912,48 +900,44 @@ iSulad采用C/S模式进行设计,在默认情况,iSulad守护进程isulad
Converted isula/thinpool to thin pool.
```
-
-
-
**二、修改isulad配置文件**
-1. 如果环境之前运行过isulad,请先备份之前的数据。
+1. 如果环境之前运行过isulad,请先备份之前的数据。
- ```
+ ```bash
# mkdir /var/lib/isulad.bk
# mv /var/lib/isulad/* /var/lib/isulad.bk
```
-2. 修改配置文件
+2. 修改配置文件
这里提供了两种配置方式,用户可根据实际情况的选择合适的方式。
- - 编辑/etc/isulad/daemon.json,配置storage-driver字段值为devicemapper,并配置storage-opts字段的相关参数,支持参数请参见[参数说明](#zh-cn_topic_0222861454_section1712923715282)。配置参考如下所示:
+ - 编辑/etc/isulad/daemon.json,配置storage-driver字段值为devicemapper,并配置storage-opts字段的相关参数,支持参数请参见[参数说明](#zh-cn_topic_0222861454_section1712923715282)。配置参考如下所示:
- ```
+ ```conf
{
"storage-driver": "devicemapper"
"storage-opts": [
- "dm.thinpooldev=/dev/mapper/isula-thinpool",
- "dm.fs=ext4",
+ "dm.thinpooldev=/dev/mapper/isula-thinpool",
+ "dm.fs=ext4",
"dm.min_free_space=10%"
]
}
```
- - 或者也可以通过编辑/etc/sysconfig/iSulad,在isulad启动参数里显式指定,支持参数请参见[参数说明](#zh-cn_topic_0222861454_section1712923715282)。配置参考如下所示:
+ - 或者也可以通过编辑/etc/sysconfig/iSulad,在isulad启动参数里显式指定,支持参数请参见[参数说明](#zh-cn_topic_0222861454_section1712923715282)。配置参考如下所示:
- ```
+ ```conf
OPTIONS="--storage-driver=devicemapper --storage-opt dm.thinpooldev=/dev/mapper/isula-thinpool --storage-opt dm.fs=ext4 --storage-opt dm.min_free_space=10%"
```
-3. 启动isulad,使配置生效。
+3. 启动isulad,使配置生效。
- ```
+ ```bash
# systemctl start isulad
```
-
#### 参数说明
storage-opts 支持的参数请参见[表1](#zh-cn_topic_0222861454_table3191161993812)。
@@ -961,54 +945,54 @@ storage-opts 支持的参数请参见[表1](#zh-cn_topic_0222861454_table3191161
**表 1** storage-opts字段参数说明
-参数
+参数
|
-是否必选
+ | 是否必选
|
-含义
+ | 含义
|
-dm.fs
+ | dm.fs
|
-是
+ | 是
|
-用于指定容器使用的文件系统类型。当前必须配置为ext4,即dm.fs=ext4
+ | 用于指定容器使用的文件系统类型。当前必须配置为ext4,即dm.fs=ext4
|
-dm.basesize
+ | dm.basesize
|
-否
+ | 否
|
-用于指定单个容器的最大存储空间大小,单位为k/m/g/t/p,也可以使用大写字母,例如dm.basesize=50G。该参数只在首次初始化时有效。
+ | 用于指定单个容器的最大存储空间大小,单位为k/m/g/t/p,也可以使用大写字母,例如dm.basesize=50G。该参数只在首次初始化时有效。
|
-dm.mkfsarg
+ | dm.mkfsarg
|
-否
+ | 否
|
-用于在创建基础设备时指定额外的mkfs参数。例如“dm.mkfsarg=-O ^has_journal”
+ | 用于在创建基础设备时指定额外的mkfs参数。例如“dm.mkfsarg=-O ^has_journal”
|
-dm.mountopt
+ | dm.mountopt
|
-否
+ | 否
|
-用于在挂载容器时指定额外的mount参数。例如dm.mountopt=nodiscard
+ | 用于在挂载容器时指定额外的mount参数。例如dm.mountopt=nodiscard
|
-dm.thinpooldev
+ | dm.thinpooldev
|
-否
+ | 否
|
-用于指定容器/镜像存储时使用的thinpool设备。
+ | 用于指定容器/镜像存储时使用的thinpool设备。
|
-dm.min_free_space
+ | dm.min_free_space
|
-否
+ | 否
|
-用于指定最小的预留空间,用百分比表示。例如dm.min_free_space=10%,表示当剩余存储空间只剩10%左右时,创建容器等和存储相关操作就会失败。
+ | 用于指定最小的预留空间,用百分比表示。例如dm.min_free_space=10%,表示当剩余存储空间只剩10%左右时,创建容器等和存储相关操作就会失败。
|
@@ -1016,24 +1000,23 @@ storage-opts 支持的参数请参见[表1](#zh-cn_topic_0222861454_table3191161
#### 注意事项
-- 配置devicemapper时,如果系统上没有足够的空间给thinpool做自动扩容,请禁止自动扩容功能。
+- 配置devicemapper时,如果系统上没有足够的空间给thinpool做自动扩容,请禁止自动扩容功能。
禁止自动扩容的方法是把/etc/lvm/profile/isula-thinpool.profile中thin\_pool\_autoextend\_threshold和thin\_pool\_autoextend\_percent两个值都改成100,如下所示:
- ```
+ ```conf
activation {
thin_pool_autoextend_threshold=100
thin_pool_autoextend_percent=100
}
```
-- 使用devicemapper时,容器文件系统必须配置为ext4,需要在isulad的配置参数中加上--storage-opt dm.fs=ext4。
-- 当graphdriver为devicemapper时,如果metadata文件损坏且不可恢复,需要人工介入恢复。禁止直接操作或篡改daemon存储devicemapper的元数据。
-- 使用devicemapper lvm时,异常掉电导致的devicemapper thinpool损坏,无法保证thinpool损坏后可以修复,也不能保证数据的完整性,需重建thinpool。
+- 使用devicemapper时,容器文件系统必须配置为ext4,需要在isulad的配置参数中加上--storage-opt dm.fs=ext4。
+- 当graphdriver为devicemapper时,如果metadata文件损坏且不可恢复,需要人工介入恢复。禁止直接操作或篡改daemon存储devicemapper的元数据。
+- 使用devicemapper lvm时,异常掉电导致的devicemapper thinpool损坏,无法保证thinpool损坏后可以修复,也不能保证数据的完整性,需重建thinpool。
**iSula开启了user namespace特性,切换devicemapper存储池时的注意事项**
-- 一般启动容器时,deviceset-metadata文件为:/var/lib/isulad/devicemapper/metadata/deviceset-metadata。
-- 使用了user namespace场景下,deviceset-metadata文件使用的是:/var/lib/isulad/\{userNSUID.GID\}/devicemapper/metadata/deviceset-metadata。
-- 使用devicemapper存储驱动,容器在user namespace场景和普通场景之间切换时,需要将对应deviceset-metadata文件中的BaseDeviceUUID内容清空;针对thinpool扩容或者重建的场景下,也同样的需要将对应deviceset-metadata文件中的BaseDeviceUUID内容清空,否则isulad服务会重启失败。
-
+- 一般启动容器时,deviceset-metadata文件为:/var/lib/isulad/devicemapper/metadata/deviceset-metadata。
+- 使用了user namespace场景下,deviceset-metadata文件使用的是:/var/lib/isulad/\{userNSUID.GID\}/devicemapper/metadata/deviceset-metadata。
+- 使用devicemapper存储驱动,容器在user namespace场景和普通场景之间切换时,需要将对应deviceset-metadata文件中的BaseDeviceUUID内容清空;针对thinpool扩容或者重建的场景下,也同样的需要将对应deviceset-metadata文件中的BaseDeviceUUID内容清空,否则isulad服务会重启失败。
diff --git "a/docs/zh/docs/Container/\345\256\211\350\243\205-\345\215\207\347\272\247\344\270\216\345\215\270\350\275\275.md" b/docs/zh/docs/cloud/container_engine/isula_container_engine/installation_upgrade_uninstallation.md
similarity index 82%
rename from "docs/zh/docs/Container/\345\256\211\350\243\205-\345\215\207\347\272\247\344\270\216\345\215\270\350\275\275.md"
rename to docs/zh/docs/cloud/container_engine/isula_container_engine/installation_upgrade_uninstallation.md
index 6c4e4208f5576f4c32f39b658e479a622df62cc9..f6d55640a1c0df735a3d9cdd8e698d47960e1cd0 100644
--- "a/docs/zh/docs/Container/\345\256\211\350\243\205-\345\215\207\347\272\247\344\270\216\345\215\270\350\275\275.md"
+++ b/docs/zh/docs/cloud/container_engine/isula_container_engine/installation_upgrade_uninstallation.md
@@ -1,3 +1,3 @@
# 安装、升级与卸载
-本章介绍 iSulad 的安装、安装后配置,以及升级和卸载的方法。
\ No newline at end of file
+本章介绍 iSulad 的安装、安装后配置,以及升级和卸载的方法。
diff --git "a/docs/zh/docs/Container/iSula-shim-v2\345\257\271\346\216\245stratovirt.md" b/docs/zh/docs/cloud/container_engine/isula_container_engine/interconnecting_isula_shim_v2_with_stratovirt.md
similarity index 93%
rename from "docs/zh/docs/Container/iSula-shim-v2\345\257\271\346\216\245stratovirt.md"
rename to docs/zh/docs/cloud/container_engine/isula_container_engine/interconnecting_isula_shim_v2_with_stratovirt.md
index c604fb8e6adff38c1fc7c610552f3eaf1b11cf28..298971556f215334450c82363f97514f04eb1b45 100755
--- "a/docs/zh/docs/Container/iSula-shim-v2\345\257\271\346\216\245stratovirt.md"
+++ b/docs/zh/docs/cloud/container_engine/isula_container_engine/interconnecting_isula_shim_v2_with_stratovirt.md
@@ -1,7 +1,5 @@
# iSula对接shim v2安全容器
-
-
## 概述
shim v2 是新一代 shim 架构方案,相比于 shim v1, 具有调用链更短、架构清晰的优势,在多业务容器场景,具备明显的低内存开销优势。iSula 运行安全容器可以通过 isulad-shim 或者 containerd-shim-kata-v2 来实现,其中 isulad-shim 组件是 shim v1 方案的具体实现,containerd-shim-kata-v2 组件是 shim v2 方案在安全容器场景的一种具体实现,本文介绍 iSula 与 containerd-shim-kata-v2 的对接。
@@ -58,7 +56,7 @@ iSula 对接 containerd-shim-kata-v2 前,需要满足如下前提:
Logical volume "thinpoolmeta" created.
```
-4. 将上面创建的逻辑卷转换为 thinpool
+4. 将上面创建的逻辑卷转换为 thinpool
```shell
$ lvconvert -y --zero n -c 64K \
@@ -117,7 +115,7 @@ iSula 对接 containerd-shim-kata-v2 前,需要满足如下前提:
若回显有如下信息,说明配置成功。
- ```
+ ```sh
Storage Driver: devicemapper
```
@@ -135,7 +133,7 @@ containerd-shim-kata-v2 使用的虚拟化组件为 QEMU 时,iSula 对接 cont
sandbox_cgroup_with_emulator 需要设置为 false, 目前 shimv2 不支该改功能, 其他参数与 shim v1 中 kata 配置参数保持一致或者保持缺省值。
- ```
+ ```sh
sandbox_cgroup_with_emulator = false
```
@@ -198,11 +196,11 @@ containerd-shim-kata-v2 使用的虚拟化组件为 StratoVirt 时,iSula 对
$ lsmod |grep vhost_vsock
```
- 下载对应版本和架构的 kernel 并放到 /var/lib/kata/ 路径下, [openeuler repo]():
+ 下载对应版本和架构的 kernel 并放到 /var/lib/kata/ 路径下, [openeuler repo](https://repo.openeuler.org/):
```bash
$ cd /var/lib/kata
- $ wget https://repo.openeuler.org/openEuler-{version}/stratovirt_img/x86_64/vmlinux.bin
+ $ wget https://dl-cdn.openeuler.openatom.cn/openEuler-24.03-LTS-SP1/stratovirt_img/x86_64/vmlinux.bin
```
3. 使用 busybox 镜像运行安全容器并检查使用的 runtime 为 io.containerd.kata.v2
diff --git "a/docs/zh/docs/Container/\346\224\257\346\214\201CNI\347\275\221\347\273\234.md" b/docs/zh/docs/cloud/container_engine/isula_container_engine/interconnection_with_the_cni_network.md
similarity index 32%
rename from "docs/zh/docs/Container/\346\224\257\346\214\201CNI\347\275\221\347\273\234.md"
rename to docs/zh/docs/cloud/container_engine/isula_container_engine/interconnection_with_the_cni_network.md
index 0a3fa469294b4b2d532a7ba9ee2542b75184ec7a..8ceda130d345fb5c219e186449a4ed5380d16c03 100644
--- "a/docs/zh/docs/Container/\346\224\257\346\214\201CNI\347\275\221\347\273\234.md"
+++ b/docs/zh/docs/cloud/container_engine/isula_container_engine/interconnection_with_the_cni_network.md
@@ -1,15 +1,5 @@
# 支持CNI网络
-
-- [支持CNI网络](#支持cni网络)
- - [描述](#描述)
- - [接口](#接口)
- - [CNI网络配置说明](#cni网络配置说明)
- - [加入CNI网络列表](#加入cni网络列表)
- - [退出CNI网络列表](#退出cni网络列表)
- - [使用限制](#使用限制)
-
-
## 描述
实现CRI接口对接CNI网络的能力,包括CNI网络配置文件的解析、CNI网络的加入和退出。Pod需要支持网络时,例如通过canal等容器网络插件提供网络能力,那么需要CRI接口能够和canal实现对接,并且调用canal的接口,为Pod提供网络能力。
@@ -24,47 +14,47 @@ CNI配置文件相关行为描述:
CNI对用户可见的接口,主要涉及CNI网络配置和Pod配置中CNI网络相关的项。
-- CNI网络配置相关的接口,主要是isulad指定CNI网络配置文件所在路径、CNI网络插件二进制文件所在的路径以及使用的网络模式。详情请参见[表1 CNI网络配置接口](#zh-cn_topic_0183259146_table18221919589)。
-- Pod配置中CNI网络相关的项,主要是设置Pod加入的附加CNI网络列表,默认情况Pod只会加入到default CNI网络平面中,可以通过该配置把Pod加入到多个CNI网络平面中。
+- CNI网络配置相关的接口,主要是isulad指定CNI网络配置文件所在路径、CNI网络插件二进制文件所在的路径以及使用的网络模式。详情请参见[表1 CNI网络配置接口](#zh-cn_topic_0183259146_table18221919589)。
+- Pod配置中CNI网络相关的项,主要是设置Pod加入的附加CNI网络列表,默认情况Pod只会加入到default CNI网络平面中,可以通过该配置把Pod加入到多个CNI网络平面中。
**表 1** CNI网络配置接口
-
+
|
-命令行
+ | 命令行
|
-配置文件
+ | 配置文件
|
-说明
+ | 说明
|
-设置CNI网络插件二进制文件所在路径
+ | 设置CNI网络插件二进制文件所在路径
|
---cni-bin-dir
+ | --cni-bin-dir
|
-"cni-bin-dir": "",
+ | "cni-bin-dir": "",
|
-缺省值为/opt/cni/bin
+ | 缺省值为/opt/cni/bin
|
-设置CNI网络配置文件所在路径
+ | 设置CNI网络配置文件所在路径
|
---cni-conf-dir
+ | --cni-conf-dir
|
-"cni-conf-dir": "",
+ | "cni-conf-dir": "",
|
-系统会遍历目录下面所有后缀名为".conf"、".conflist"和 ".json"的文件。缺省值为/etc/cni/net.d
+ | 系统会遍历目录下面所有后缀名为".conf"、".conflist"和 ".json"的文件。缺省值为/etc/cni/net.d
|
-指定网络模式
+ | 指定网络模式
|
---network-plugin
+ | --network-plugin
|
-"network-plugin": "",
+ | "network-plugin": "",
|
-指定网络插件,默认为空字符,表示无网络配置,创建的sandbox只有loop网卡。支持cni和空字符,其他非法值会导致isulad启动失败。
+ | 指定网络插件,默认为空字符,表示无网络配置,创建的sandbox只有loop网卡。支持cni和空字符,其他非法值会导致isulad启动失败。
|
@@ -76,28 +66,23 @@ CNI对用户可见的接口,主要涉及CNI网络配置和Pod配置中CNI网
网络平面配置为json格式,包含两项:
-- name:指定CNI网络平面的名字
-- interface:指定网络接口的名字
+- name:指定CNI网络平面的名字
+- interface:指定网络接口的名字
附加CNI网络配置方式示例如下:
-```
+```conf
"annotations" : {
"network.alpha.kubernetes.io/network": "{\"name\": \"mynet\", \"interface\": \"eth1\"}"
}
```
-
-
-
-
-
### CNI网络配置说明
CNI网络配置包含两种类型,文件格式都为json:
-- 单网络平面配置,以.conf和.json为后缀的文件:具体的配置项请参见"附录 > CNI配置参数" 章节的 "表1 CNI单网络配置参数"。
-- 多网络平面配置,以.conflist为后缀的文件:具体的配置项请参见"附录 > CNI配置参数" 章节的 "表3 CNI多网络配置参数"。
+- 单网络平面配置,以.conf和.json为后缀的文件:具体的配置项请参见"附录 > CNI配置参数" 章节的 "表1 CNI单网络配置参数"。
+- 多网络平面配置,以.conflist为后缀的文件:具体的配置项请参见"附录 > CNI配置参数" 章节的 "表3 CNI多网络配置参数"。
### 加入CNI网络列表
@@ -105,7 +90,7 @@ CNI网络配置包含两种类型,文件格式都为json:
Pod配置中和网络相关的还有port\_mappings项,用于设置Pod的端口映射关系。配置方式如下:
-```
+```conf
"port_mappings":[
{
"protocol": 1,
@@ -115,22 +100,22 @@ Pod配置中和网络相关的还有port\_mappings项,用于设置Pod的端口
]
```
-- protocol:表示映射使用的协议,支持tcp(用0标识)、udp(用1标识);
-- container\_port:表示容器映射出去的port;
-- host\_port:表示映射到主机的port。
+- protocol:表示映射使用的协议,支持tcp(用0标识)、udp(用1标识);
+- container\_port:表示容器映射出去的port;
+- host\_port:表示映射到主机的port。
### 退出CNI网络列表
StopPodSandbox的时候,会调用退出CNI网络的接口,清理网络相关的资源。
-> **说明:**
->1. 在调用RemovePodSandbox接口之前,至少要调用一次StopPodSandbox接口
->2. StopPodSandbox调用CNI接口失败,导致的网络资源残留,由CNI网络插件负责清理。
+>[!NOTE]说明
+>
+> - 在调用RemovePodSandbox接口之前,至少要调用一次StopPodSandbox接口。
+> - StopPodSandbox调用CNI接口失败,导致的网络资源残留,由CNI网络插件负责清理。
## 使用限制
-- cniVersion的版本,当前只支持0.3.0和0.3.1。由于后期可能需要支持0.1.0和0.2.0,错误日志打印时,保留了0.1.0和0.2.0的提示信息。
-- name:必须是小写字符、数字、'-'以及'.'组成; '.'和'-'不能作为首字符和尾字符; 而且长度不超过200个字符。
-- 配置文件个数不超过200个,单个配置文件大小不超过1MB。
-- 扩展之后的参数,需要根据实际网络需求来配置,不需要使用的可选参数可以不写入到netconf.json文件中。
-
+- cniVersion的版本,当前只支持0.3.0和0.3.1。由于后期可能需要支持0.1.0和0.2.0,错误日志打印时,保留了0.1.0和0.2.0的提示信息。
+- name:必须是小写字符、数字、'-'以及'.'组成; '.'和'-'不能作为首字符和尾字符; 而且长度不超过200个字符。
+- 配置文件个数不超过200个,单个配置文件大小不超过1MB。
+- 扩展之后的参数,需要根据实际网络需求来配置,不需要使用的可选参数可以不写入到netconf.json文件中。
diff --git "a/docs/zh/docs/Container/iSulad\346\224\257\346\214\201CDI.md" b/docs/zh/docs/cloud/container_engine/isula_container_engine/isulad_support_cdi.md
similarity index 87%
rename from "docs/zh/docs/Container/iSulad\346\224\257\346\214\201CDI.md"
rename to docs/zh/docs/cloud/container_engine/isula_container_engine/isulad_support_cdi.md
index f066dd81d84eff824c1930fe1ecd70f96866b0d2..ea89ed944945a3f12e451324eddd7a14fdcff2b6 100644
--- "a/docs/zh/docs/Container/iSulad\346\224\257\346\214\201CDI.md"
+++ b/docs/zh/docs/cloud/container_engine/isula_container_engine/isulad_support_cdi.md
@@ -87,32 +87,32 @@ EOF
在容器json文件中,使用以下两种方式指定设备均可:
-1. annotations中指定设备
-
- ```json
- {
- ... ...
- "annotations": [
- ... ...
- {"cdi.k8s.io/test": "vendor.com/device=myDevice"},
- ... ...
- ]
- ... ...
- }
- ```
-
-2. CDI_Devices中指定设备
-
- ```json
- {
- ... ...
- "CDI_Devices": [
- ... ...
- {"Name": "vendor.com/device=myDevice"},
- ... ...
- ]
- ... ...
- }
+方式1:annotations中指定设备
+
+ ```json
+ {
+ ... ...
+ "annotations": [
+ ... ...
+ {"cdi.k8s.io/test": "vendor.com/device=myDevice"},
+ ... ...
+ ]
+ ... ...
+ }
+ ```
+
+方式2:CDI_Devices中指定设备
+
+ ```json
+ {
+ ... ...
+ "CDI_Devices": [
+ ... ...
+ {"Name": "vendor.com/device=myDevice"},
+ ... ...
+ ]
+ ... ...
+ }
```
## 使用限制
diff --git "a/docs/zh/docs/Container/iSulad\346\224\257\346\214\201cgroup v2.md" b/docs/zh/docs/cloud/container_engine/isula_container_engine/isulad_support_cgroup_v2.md
similarity index 99%
rename from "docs/zh/docs/Container/iSulad\346\224\257\346\214\201cgroup v2.md"
rename to docs/zh/docs/cloud/container_engine/isula_container_engine/isulad_support_cgroup_v2.md
index 0ac8e82a6d583807fa10604aadf362bb378dac0e..2f57e7802e35880867f6ff83e5181663a6301c4d 100644
--- "a/docs/zh/docs/Container/iSulad\346\224\257\346\214\201cgroup v2.md"
+++ b/docs/zh/docs/cloud/container_engine/isula_container_engine/isulad_support_cgroup_v2.md
@@ -1,9 +1,11 @@
# iSulad支持cgroup v2
## 概述
+
cgroup是linux中用于限制进程组资源的机制。cgroup目前包括两个版本,cgroup v1和cgroup v2。
cgroup v2的目标是取代cgroup v1,cgroup v2相较于cgroup v1具有以下优势:
+
- 统一层次结构:cgroup v2 引入了一个统一的层次结构,将不同的资源控制(如 CPU、内存等)合并到一个层次结构中。这消除了 cgroup v1 中的分离层次结构,使得资源配置更加直观和简化。
- 细粒度资源控制:cgroup v2 提供了更细粒度的资源控制,允许用户对各个进程组进行更精细的资源限制和分配。它支持对 CPU、内存、IO、网络、设备等资源进行精确的控制和配额分配。
- 改进的性能:cgroup v2 在性能方面进行了一些改进,包括减少锁竞争和提高资源分配的效率。这可能导致更好的性能和扩展性,特别是在大规模部署和高负载环境下。
@@ -32,7 +34,6 @@ grubby --args="cgroup_no_v1=all" --update-kernel="/boot/vmlinuz-$(uname -r)"
cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime)
```
-
## iSulad使用cgroup v2限制资源
无论是cgroup v1还是cgroup v2,iSulad提供给用户使用的接口都是一致的(在`isula create/isula run/isula update`有相应接口)。不过由于有部分cgroup v1支持的功能在cgroup v2中被去掉了或者实现方式有所变化,因此部分接口在cgroup v2中不可用或者含义发生变化。iSulad支持限制如下资源:
@@ -47,13 +48,14 @@ cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime)
| pids | 限制容器使用的pid | 无差异 |
| freeze | 暂停容器 | 无差异 |
-
例如:若在cgroup v2环境下v2使用不支持的选项(以`--memory-swappiness`为例),isula命令会有如下报错:
+
```sh
[root@openEuler ~]# isula run -tid --memory-swappiness 90 busybox /bin/sh
Error response from daemon: Your kernel does not support memory swappiness capabilities, memory swappiness discarded.
```
## 使用限制
+
1. iSulad只识别挂载在`/sys/fs/cgroup`目录下的cgroup。
-2. iSulad不支持cgroup v1与cgroup v2混用场景,仅根据`/sys/fs/cgroup`目录下的cgroup版本决定iSulad内部使用的cgroup版本。
\ No newline at end of file
+2. iSulad不支持cgroup v1与cgroup v2混用场景,仅根据`/sys/fs/cgroup`目录下的cgroup版本决定iSulad内部使用的cgroup版本。
diff --git "a/docs/zh/docs/Container/\346\234\254\345\234\260\345\215\267\347\256\241\347\220\206.md" b/docs/zh/docs/cloud/container_engine/isula_container_engine/local_volume_management.md
similarity index 86%
rename from "docs/zh/docs/Container/\346\234\254\345\234\260\345\215\267\347\256\241\347\220\206.md"
rename to docs/zh/docs/cloud/container_engine/isula_container_engine/local_volume_management.md
index f13b4492e19bb304dffb39717a43885e084b168a..3c0ecf073ec38451ad4c2956df22d771afc1fe6b 100644
--- "a/docs/zh/docs/Container/\346\234\254\345\234\260\345\215\267\347\256\241\347\220\206.md"
+++ b/docs/zh/docs/cloud/container_engine/isula_container_engine/local_volume_management.md
@@ -1,39 +1,5 @@
# 本地卷管理
-- [本地卷管理](#本地卷管理)
- - [概述](#概述)
- - [注意事项](#注意事项)
- - [使用方法](#使用方法)
- - [使用-v参数挂载数据](#使用-v参数挂载数据)
- - [**命令格式**](#命令格式)
- - [**功能描述**](#功能描述)
- - [**参数说明**](#参数说明)
- - [**示例**](#示例)
- - [使用--mount参数挂载数据](#使用--mount参数挂载数据)
- - [**命令格式**](#命令格式-1)
- - [**功能描述**](#功能描述-1)
- - [**参数说明**](#参数说明-1)
- - [**示例**](#示例-1)
- - [复用其他容器中的挂载配置](#复用其他容器中的挂载配置)
- - [**命令格式**](#命令格式-2)
- - [**功能描述**](#功能描述-2)
- - [**参数说明**](#参数说明-2)
- - [**示例**](#示例-2)
- - [使用镜像中的匿名卷](#使用镜像中的匿名卷)
- - [卷的查询](#卷的查询)
- - [**命令格式**](#命令格式-3)
- - [**功能描述**](#功能描述-3)
- - [**参数说明**](#参数说明-3)
- - [**示例**](#示例-3)
- - [卷的删除](#卷的删除)
- - [**命令格式**](#命令格式-4)
- - [**功能描述**](#功能描述-4)
- - [**参数说明**](#参数说明-4)
- - [**示例**](#示例-4)
- - [注意事项](#注意事项-1)
- - [冲突合并规则](#冲突合并规则)
- - [iSula和Docker的差异](#isula和docker的差异)
-
## 概述
iSula 管理的容器销毁后,容器内自身所有的数据都会被销毁。如果用户希望容器销毁后依然保留数据,则需要有一种持久化数据的机制。iSula 允许将主机上的文件、目录或卷在容器运行时挂载到容器内。用户可以将需要持久化的数据写入容器内的挂载点。则容器销毁后,主机上的文件、目录、卷依然保留。如果用户需要销毁主机上的文件、目录、卷,可以手动删除文件、目录或者执行 iSula 的相关命令删除卷。对于卷的管理目前 iSula 只支持本地卷,本地卷又分为有名卷和匿名卷。由用户指定名称生产的卷叫有名卷,用户没有指定卷名称,由 iSula 自动生成卷名(一个64位的随机数)的卷为匿名卷。
diff --git "a/docs/zh/docs/Container/iSula\345\256\271\345\231\250\345\274\225\346\223\216.md" b/docs/zh/docs/cloud/container_engine/isula_container_engine/overview.md
similarity index 99%
rename from "docs/zh/docs/Container/iSula\345\256\271\345\231\250\345\274\225\346\223\216.md"
rename to docs/zh/docs/cloud/container_engine/isula_container_engine/overview.md
index 3386c47f47f6dfa6374eea93d6e38dd19360eb4b..96ab83963a85046b70ef201904af2c5873bb8f1c 100644
--- "a/docs/zh/docs/Container/iSula\345\256\271\345\231\250\345\274\225\346\223\216.md"
+++ b/docs/zh/docs/cloud/container_engine/isula_container_engine/overview.md
@@ -6,6 +6,4 @@ iSula通用容器引擎相比Docker,是一种新的容器解决方案,提供
**图 1** 容器统一架构
-

-
diff --git "a/docs/zh/docs/Container/\347\211\271\346\235\203\345\256\271\345\231\250.md" b/docs/zh/docs/cloud/container_engine/isula_container_engine/previleged_container.md
similarity index 98%
rename from "docs/zh/docs/Container/\347\211\271\346\235\203\345\256\271\345\231\250.md"
rename to docs/zh/docs/cloud/container_engine/isula_container_engine/previleged_container.md
index 77fb58e4a96d0c79968ff4b10505cf729e07e195..e4bc715ca59a3981014bcd8385b428af54ec80ee 100644
--- "a/docs/zh/docs/Container/\347\211\271\346\235\203\345\256\271\345\231\250.md"
+++ b/docs/zh/docs/cloud/container_engine/isula_container_engine/previleged_container.md
@@ -1,12 +1,4 @@
# 特权容器
-
-
-- [特权容器](#特权容器)
- - [场景说明](#场景说明)
- - [使用限制](#使用限制)
- - [使用指导](#使用指导)
-
-
## 场景说明
@@ -16,11 +8,11 @@ iSulad默认启动的是普通容器,普通容器适合启动普通进程,
特权容器为容器提供了所有功能,还解除了设备cgroup控制器强制执行的所有限制,具备以下特性:
-- Secomp不block任何系统调用
-- /sys、/proc路径可写
-- 容器内能访问主机上所有设备
+- Secomp不block任何系统调用
+- /sys、/proc路径可写
+- 容器内能访问主机上所有设备
-- 系统的权能将全部打开
+- 系统的权能将全部打开
普通容器默认权能为:
@@ -235,7 +227,6 @@ iSulad默认启动的是普通容器,普通容器适合启动普通进程,
iSulad使用--privileged给容器添加特权模式,在非必要情况下,不要给容器添加特权,遵循最小特权原则,减少存在的安全风险。
-```
+```sh
isula run --rm -it --privileged busybox
```
-
diff --git "a/docs/zh/docs/Container/\346\237\245\350\257\242\344\277\241\346\201\257.md" b/docs/zh/docs/cloud/container_engine/isula_container_engine/query_information.md
similarity index 92%
rename from "docs/zh/docs/Container/\346\237\245\350\257\242\344\277\241\346\201\257.md"
rename to docs/zh/docs/cloud/container_engine/isula_container_engine/query_information.md
index 50c1f20c979e1c3632da300e3b8f6e19cd0afe03..48e10e011d4e955e1d295a290ae8b1868c41cb5f 100644
--- "a/docs/zh/docs/Container/\346\237\245\350\257\242\344\277\241\346\201\257.md"
+++ b/docs/zh/docs/cloud/container_engine/isula_container_engine/query_information.md
@@ -1,9 +1,5 @@
# 查询信息
-- [查询信息](#查询信息)
- - [查询服务版本信息](#查询服务版本信息)
- - [查询系统级信息](#查询系统级信息)
-
## 查询信息
## 查询服务版本信息
diff --git "a/docs/zh/docs/Container/\345\256\211\345\205\250\347\211\271\346\200\247.md" b/docs/zh/docs/cloud/container_engine/isula_container_engine/security_features.md
similarity index 55%
rename from "docs/zh/docs/Container/\345\256\211\345\205\250\347\211\271\346\200\247.md"
rename to docs/zh/docs/cloud/container_engine/isula_container_engine/security_features.md
index 3865f4caec35073989c4541511c81e07914c050c..b43a097b44023e8357bfbe63a8c70a90689d682a 100644
--- "a/docs/zh/docs/Container/\345\256\211\345\205\250\347\211\271\346\200\247.md"
+++ b/docs/zh/docs/cloud/container_engine/isula_container_engine/security_features.md
@@ -1,8 +1,4 @@
# 安全特性
-- [安全特性](#安全特性.md)
- - [seccomp安全配置场景](#seccomp安全配置场景)
- - [capabilities安全配置场景](#capabilities安全配置场景)
- - [SELinux安全配置场景](#selinux安全配置场景)
## seccomp安全配置场景
@@ -10,7 +6,7 @@
seccomp(**secure computing** **mode**)是linux kernel从2.6.23版本开始引入的一种简洁的sandboxing机制。在一些特定场景下,用户需要在容器中执行一些“特权”操作,但又不想启动特权容器,用户经常会在run时添加--cap-add来获得一些“小范围”的权限。对于安全要求比较严格的容器实例,上述的CAP粒度不一定能够满足安全需要,可使用一些办法精细化控制权限范围。
-- 举例
+- 举例
普通容器场景中,用户使用-v将宿主机某目录(包含某普通用户无法执行的二进制),映射到容器中。
@@ -18,40 +14,40 @@ seccomp(**secure computing** **mode**)是linux kernel从2.6.23版本开始
这个场景,如果在严格安全要求下,需要使用seccomp裁剪chmod、fchmod、fchmodat系统调用。
-
### 使用限制
-- 不要禁用iSulad的seccomp特性
+- 不要禁用iSulad的seccomp特性
默认的iSulad有一个seccomp的配置,配置中使用的是白名单,不在配置的sys_call会被seccomp禁掉,使用接口--security-opt 'seccomp:unconfined'可以禁止使用seccomp特性。如果禁用seccomp或使用自定义seccomp配置但过滤名单不全,都会增加容器对内核的攻击面。
-- 默认的Seccomp配置是白名单,不在白名单的syscall默认会返回SCMP_ACT_ERRNO,同时会根据不同的Cap开放不同的系统调用,不在白名单上面的权限,iSulad默认不会将权限给到容器。
+- 默认的Seccomp配置是白名单,不在白名单的syscall默认会返回SCMP_ACT_ERRNO,同时会根据不同的Cap开放不同的系统调用,不在白名单上面的权限,iSulad默认不会将权限给到容器。
### 使用指导
通过--security-opt将配置文件传给要过滤系统调用的容器。
-```
+```bash
isula run -itd --security-opt seccomp=/path/to/seccomp/profile.json rnd-dockerhub.huawei.com/official/busybox
```
-> **说明:**
->1. 创建容器时通过--security-opt将配置文件传给容器时,采用默认配置文件(/etc/isulad/seccomp\_default.json)。
->2. 创建容器时--security-opt设置为unconfined时,对容器不过滤系统调用。
->3. “/path/to/seccomp/profile.json”需要是绝对路径。
->4. --security-opt采用“=”号进行分割,不支持使用“:”号分割。
+> [!NOTE]说明
+>
+> - 创建容器时通过--security-opt将配置文件传给容器时,采用默认配置文件(/etc/isulad/seccomp\_default.json)。
+> - 创建容器时--security-opt设置为unconfined时,对容器不过滤系统调用。
+> - “/path/to/seccomp/profile.json”需要是绝对路径。
+> - --security-opt采用“=”号进行分割,不支持使用“:”号分割。
#### 获取普通容器的默认seccomp配置
-- 启动一个普通容器(或者是带--cap-add的容器),并查看默认权限配置:
+- 启动一个普通容器(或者是带--cap-add的容器),并查看默认权限配置:
- ```
+ ```bash
cat /etc/isulad/seccomp_default.json | python -m json.tool > profile.json
```
可以看到"seccomp"字段中,有很多的"syscalls",在此基础上,仅提取syscalls的部分,参考定制seccomp配置文件,进行定制化操作。
- ```
+ ```conf
"defaultAction": "SCMP_ACT_ERRNO",
"syscalls": [
{
@@ -77,14 +73,13 @@ isula run -itd --security-opt seccomp=/path/to/seccomp/profile.json rnd-dockerhu
]...
```
+- 查看转换为lxc可识别的seccomp配置
-- 查看转换为lxc可识别的seccomp配置
-
- ```
+ ```bash
cat /var/lib/isulad/engines/lcr/74353e38021c29314188e29ba8c1830a4677ffe5c4decda77a1e0853ec8197cd/seccomp
```
- ```
+ ```text
...
waitpid allow
write allow
@@ -98,18 +93,17 @@ isula run -itd --security-opt seccomp=/path/to/seccomp/profile.json rnd-dockerhu
...
```
-
#### 定制seccomp配置文件
在启动容器的时候使用--security-opt引入seccomp配置文件,容器实例会按照配置文件规则进行限制系统API的运行。首先获取普通容器的默认seccomp,得到完整模板,然后按照本节定制配置文件,启动容器:
-```
+```bash
isula run --rm -it --security-opt seccomp:/path/to/seccomp/profile.json rnd-dockerhub.huawei.com/official/busybox
```
配置文件模板:
-```
+```conf
{
"defaultAction": "SCMP_ACT_ALLOW",
"syscalls": [
@@ -122,29 +116,32 @@ isula run --rm -it --security-opt seccomp:/path/to/seccomp/profile.json rnd-dock
}
```
-> **须知:**
->- defaultAction、syscalls:对应的action的类型是一样的,但其值是不能一样的,目的就是让所有的syscall都有一个默认的action,并且如果syscalls数组中有明确的定义,就以syscalls中的为准,由于defaultAction、action的值不一样,就能保证action不会有冲突。当前支持的action有:
-> "SCMP\_ACT\_ERRNO":禁止,并打印错误信息。
-> "SCMP\_ACT\_ALLOW":允许。
->- syscalls: 数组,可以只有一个syscall,也可以有多个,可以带args,也可以不带。
->- name:要过滤的syscall。
->- args:数组,里面的每个object的定义如下:
+> [!TIP]须知
+>
+> - defaultAction、syscalls:对应的action的类型是一样的,但其值是不能一样的,目的就是让所有的syscall都有一个默认的action,并且如果syscalls数组中有明确的定义,就以syscalls中的为准,由于defaultAction、action的值不一样,就能保证action不会有冲突。当前支持的action有:
+> - "SCMP\_ACT\_ERRNO":禁止,并打印错误信息。
+> - "SCMP\_ACT\_ALLOW":允许。
+> - syscalls: 数组,可以只有一个syscall,也可以有多个,可以带args,也可以不带。
+> - name:要过滤的syscall。
+> - args:数组,里面的每个object的定义如下:
+>
+> ```conf
+> type Arg struct {
+> Index uint `json:"index"` //参数的序号,如open(fd, buf, len),fd 对应的就是0,buf为1
+> Value uint64 `json:"value"` //跟参数进行比较的值
+> ValueTwo uint64 `json:"value_two"` //仅当Op=MaskEqualTo时起作用,用户传入值跟Value按位与操作后,跟ValueTwo进行比较,若相等则执行action。
+> Op Operator `json:"op"`
+> }
> ```
-> type Arg struct {
-> Index uint `json:"index"` //参数的序号,如open(fd, buf, len),fd 对应的就是0,buf为1
-> Value uint64 `json:"value"` //跟参数进行比较的值
-> ValueTwo uint64 `json:"value_two"` //仅当Op=MaskEqualTo时起作用,用户传入值跟Value按位与操作后,跟ValueTwo进行比较,若相等则执行action。
-> Op Operator `json:"op"`
-> }
-> ```
-> args中的Op,其取值可以下页面的任意一种:
-> "SCMP\_CMP\_NE": NotEqualTo
-> "SCMP\_CMP\_LT": LessThan
-> "SCMP\_CMP\_LE": LessThanOrEqualTo
-> "SCMP\_CMP\_EQ": EqualTo
-> "SCMP\_CMP\_GE": GreaterThanOrEqualTo
-> "SCMP\_CMP\_GT": GreaterThan
-> "SCMP\_CMP\_MASKED\_EQ": MaskEqualTo
+>
+> args中的Op,其取值可以下页面的任意一种:
+> "SCMP\_CMP\_NE": NotEqualTo
+> "SCMP\_CMP\_LT": LessThan
+> "SCMP\_CMP\_LE": LessThanOrEqualTo
+> "SCMP\_CMP\_EQ": EqualTo
+> "SCMP\_CMP\_GE": GreaterThanOrEqualTo
+> "SCMP\_CMP\_GT": GreaterThan
+> "SCMP\_CMP\_MASKED\_EQ": MaskEqualTo
## capabilities安全配置场景
@@ -152,15 +149,15 @@ isula run --rm -it --security-opt seccomp:/path/to/seccomp/profile.json rnd-dock
capabilities机制是linux kernel 2.2之后引入的安全特性,用更小的粒度控制超级管理员权限,可以避免使用 root 权限,将root用户的权限细分为不同的领域,可以分别启用或禁用。capabilities详细信息可通过Linux Programmer's Manual进行查看([capabilities\(7\) - Linux man page](http://man7.org/linux/man-pages/man7/capabilities.7.html)):
-```
+```bash
man capabilities
```
### 使用限制
-- isulad默认Capabilities(白名单)配置如下,普通容器进程将默认携带:
+- isulad默认Capabilities(白名单)配置如下,普通容器进程将默认携带:
- ```
+ ```conf
"CAP_CHOWN",
"CAP_DAC_OVERRIDE",
"CAP_FSETID",
@@ -177,14 +174,14 @@ man capabilities
"CAP_AUDIT_WRITE"
```
-- 默认的权能配置,包含了CAP\_SETUID和CAP\_FSETID,如host和容器共享目录,容器可对共享目录的二进制文件进行文件权限设置,host上的普通用户可能使用该特性进行提权攻击。CAP\_AUDIT\_WRITE,容器可以对host写入,存在一定的风险,如果使用场景不需要,推荐在启动容器的时候使用--cap-drop将其删除。
-- 增加Capabilities意味着容器进程具备更大的能力,同时也会开放更多的系统调用接口。
+- 默认的权能配置,包含了CAP\_SETUID和CAP\_FSETID,如host和容器共享目录,容器可对共享目录的二进制文件进行文件权限设置,host上的普通用户可能使用该特性进行提权攻击。CAP\_AUDIT\_WRITE,容器可以对host写入,存在一定的风险,如果使用场景不需要,推荐在启动容器的时候使用--cap-drop将其删除。
+- 增加Capabilities意味着容器进程具备更大的能力,同时也会开放更多的系统调用接口。
### 使用指导
iSulad使用--cap-add/--cap-drop给容器增加/删去特定的权限,在非必要情况下,不要给容器增加额外的权限,推荐将容器默认但非必要的权限也去掉。
-```
+```bash
isula run --rm -it --cap-add all --cap-drop SYS_ADMIN rnd-dockerhub.huawei.com/official/busybox
```
@@ -196,30 +193,29 @@ SELinux\(Security-Enhanced Linux\)是一个Linux内核的安全模块,提供
### 使用限制
-- 确保宿主机已使能SELinux,且daemon端已打开SELinux使能开发(/etc/isulad/daemon.json中“selinux-enabled”字段为true, 或者命令行参数添加--selinux-enabled)
-- 确保宿主机上已配置合适的selinux策略,推荐使用container-selinux进行配置
-- 引入SELinux会影响性能,设置SELinux之前需要对场景进行评估,确定必要时打开daemon端SELinux开关并设置容器SELinux配置
-- 对挂载卷进行标签配置时,源目录不允许为/、/usr、/etc、/tmp、/home、/run、/var、/root以及/usr的子目录。
+- 确保宿主机已使能SELinux,且daemon端已打开SELinux使能开发(/etc/isulad/daemon.json中“selinux-enabled”字段为true, 或者命令行参数添加--selinux-enabled)
+- 确保宿主机上已配置合适的selinux策略,推荐使用container-selinux进行配置
+- 引入SELinux会影响性能,设置SELinux之前需要对场景进行评估,确定必要时打开daemon端SELinux开关并设置容器SELinux配置
+- 对挂载卷进行标签配置时,源目录不允许为/、/usr、/etc、/tmp、/home、/run、/var、/root以及/usr的子目录。
-> **说明:**
->- 目前iSulad不支持对容器的文件系统打标签,确保容器文件系统及配置目录打上容器可访问标签,需使用chcon命令对其打上标签。
->- 若iSulad启用SELinux访问控制,建议daemon启动前对/var/lib/isulad目录打上标签,容器容器创建时目录下生产的文件及文件夹将默认继承其标签,例如:
-> ```
-> chcon -R system_u:object_r:container_file_t:s0 /var/lib/isulad
-> ```
+> [!NOTE]说明
+>
+> - 目前iSulad不支持对容器的文件系统打标签,确保容器文件系统及配置目录打上容器可访问标签,需使用chcon命令对其打上标签。
+> - 若iSulad启用SELinux访问控制,建议daemon启动前对/var/lib/isulad目录打上标签,容器容器创建时目录下生产的文件及文件夹将默认继承其标签,例如:
+>
+> ```bash
+> chcon -R system_u:object_r:container_file_t:s0 /var/lib/isulad
+> ```
### 使用指导
-- daemon端使能selinux:
+- daemon端使能selinux:
- ```
+ ```bash
isulad --selinux-enabled
```
-
-
-
-- 启动容器时配置selinux标签安全上下文
+- 启动容器时配置selinux标签安全上下文
--security-opt="label=user:USER" 配置安全上下文用户
@@ -231,24 +227,17 @@ SELinux\(Security-Enhanced Linux\)是一个Linux内核的安全模块,提供
--security-opt="label=disable" 容器禁用SELinux配置
- ```
+ ```bash
$ isula run -itd --security-opt label=type:container_t --security-opt label=level:s0:c1,c2 rnd-dockerhub.huawei.com/official/centos
9be82878a67e36c826b67f5c7261c881ff926a352f92998b654bc8e1c6eec370
```
+- 为挂载卷打selinux标签\('z'为共享模式\)
-
-
-- 为挂载卷打selinux标签\('z'为共享模式\)
-
- ```
+ ```bash
$ isula run -itd -v /test:/test:z rnd-dockerhub.huawei.com/official/centos
9be82878a67e36c826b67f5c7261c881ff926a352f92998b654bc8e1c6eec370
$ls -Z /test
system_u:object_r:container_file_t:s0 file
```
-
-
-
-
diff --git "a/docs/zh/docs/Container/\346\224\257\346\214\201OCI-hooks.md" b/docs/zh/docs/cloud/container_engine/isula_container_engine/supporting_oci_hooks.md
similarity index 100%
rename from "docs/zh/docs/Container/\346\224\257\346\214\201OCI-hooks.md"
rename to docs/zh/docs/cloud/container_engine/isula_container_engine/supporting_oci_hooks.md
diff --git "a/docs/zh/docs/Container/\345\215\270\350\275\275.md" b/docs/zh/docs/cloud/container_engine/isula_container_engine/uninstallation.md
similarity index 37%
rename from "docs/zh/docs/Container/\345\215\270\350\275\275.md"
rename to docs/zh/docs/cloud/container_engine/isula_container_engine/uninstallation.md
index 19245cfdbfeb03114d28661888e735a99ef88763..55f883df1feb05e657d475351ea2faed7297e970 100644
--- "a/docs/zh/docs/Container/\345\215\270\350\275\275.md"
+++ b/docs/zh/docs/cloud/container_engine/isula_container_engine/uninstallation.md
@@ -2,23 +2,21 @@
卸载iSulad的操作步骤如下:
-1. 卸载iSulad及其依赖软件包
- - 若使用yum方式安装,卸载的参考命令如下:
+1. 卸载iSulad及其依赖软件包
+ - 若使用yum方式安装,卸载的参考命令如下:
- ```
+ ```sh
# yum remove iSulad
```
- - 若使用rpm方式安装,需卸载iSulad及其依赖包,卸载单个RPM包的参考命令如下:
+ - 若使用rpm方式安装,需卸载iSulad及其依赖包,卸载单个RPM包的参考命令如下:
- ```
+ ```sh
# rpm -e iSulad-xx.xx.xx-YYYYmmdd.HHMMSS.gitxxxxxxxx.aarch64.rpm
```
-2. 镜像、容器、volumes以及相关配置文件不会自动删除,需要手动删除。参考命令如下:
+2. 镜像、容器、volumes以及相关配置文件不会自动删除,需要手动删除。参考命令如下:
- ```
+ ```sh
# rm -rf /var/lib/iSulad
```
-
-
diff --git a/docs/zh/docs/cloud/container_engine/isula_container_engine/upgrade_methods.md b/docs/zh/docs/cloud/container_engine/isula_container_engine/upgrade_methods.md
new file mode 100644
index 0000000000000000000000000000000000000000..959624d090e49a493898ccc4af2e6257e890016a
--- /dev/null
+++ b/docs/zh/docs/cloud/container_engine/isula_container_engine/upgrade_methods.md
@@ -0,0 +1,32 @@
+# 升级
+
+- 若为相同大版本之间的升级,例如从2.x.x版本升级到2.x.x版本,请执行如下命令:
+
+ ```sh
+ # sudo yum update -y iSulad
+ ```
+
+- 若为不同大版本之间的升级,例如从1.x.x版本升级到2.x.x版本,请先保存当前的配置文件/etc/isulad/daemon.json,并卸载已安装的iSulad软件包,然后安装待升级的iSulad软件包,随后恢复配置文件。
+
+>![NOTE]说明
+>
+> - 可通过**sudo rpm -qa |grep iSulad** 或 **isula version** 命令确认当前iSulad的版本号。
+> - 相同大版本之间,如果希望手动升级,请下载iSulad及其所有依赖的RPM包进行升级,参考命令如下:
+>
+> ```sh
+> # sudo rpm -Uhv iSulad-xx.xx.xx-YYYYmmdd.HHMMSS.gitxxxxxxxx.aarch64.rpm
+> ```
+>
+> 若升级失败,可通过--force选项进行强制升级,参考命令如下:
+>
+> ```sh
+> # sudo rpm -Uhv --force iSulad-xx.xx.xx-YYYYmmdd.HHMMSS.gitxxxxxxxx.aarch64.rpm
+> ```
+>
+> - 如若iSulad依赖的libisula组件发生升级,iSulad应该与对应版本的libisula一起升级,参考命令如下:
+>
+> ```sh
+> # sudo rpm -Uvh libisula-xx.xx.xx-YYYYmmdd.HHMMSS.gitxxxxxxxx.aarch64.rpm iSulad-xx.xx.xx-YYYYmmdd.HHMMSS.gitxxxxxxxx.aarch64.rpm
+> ```
+>
+> - iSulad在openeuler 22.03-LTS-SP3之前的版本使用lcr作为默认容器运行时。因此,跨此版本升级时,在升级之前创建的容器仍是使用lcr作为容器运行时,只有在升级之后创建的容器才会采用新版本的默认运行时runc。若在新版本中仍需使用lcr容器运行时,需要修改isulad默认配置文件(默认为/etc/isulad/daemon.json)中的default-runtime为lcr或者在运行容器时指定容器运行时为lcr(--runtime lcr), 在升级时若对应的lcr、lxc版本发生升级,同样应该与iSulad一起升级。
|
---|
|
---|
|
---|
|
---|
|
---|
|