Exec 配置 #
本文档将指导您如何配置 Exec 功能。
什么是 Exec? #
Exec 是一个 kwok
配置,允许用户定义和模拟对单个 Pod 的执行。
下面的 YAML 显示了 Exec 资源的所有字段
kind: Exec
apiVersion: kwok.x-k8s.io/v1alpha1
metadata:
name: <string>
namespace: <string>
spec:
execs:
- containers:
- <string>
local:
workDir: <string>
envs:
- name: <string>
value: <string>
为了将 Exec 与要模拟的特定 Pod 关联,用户必须确保 metadata.name
和 metadata.namespace
与目标 Pod 的名称和命名空间不一致。
Pod 的 exec 模拟设置通过 execs
字段指定。execs
字段按组组织,每个组对应于共享相同 exec 模拟设置的一组容器。每个组由容器名称列表(containers
)和共享的 exec 模拟设置(local
)组成。
如果在组中未给出containers
,则该组中的usage
将应用于目标 Pod 的所有容器。
local
字段指定要执行的本地环境。workDir
字段指定本地环境的工作目录。如果未设置,工作目录将是根目录。envs
字段指定本地环境的环境变量。
ClusterExec #
除了模拟单个 Pod 外,用户还可以通过 ClusterExec 模拟多个 Pod 的资源使用情况。
下面的 YAML 显示了 ClusterExec 资源的所有字段
kind: ClusterExec
apiVersion: kwok.x-k8s.io/v1alpha1
metadata:
name: <string>
spec:
selector:
matchNamespaces:
- <string>
matchNames:
- <string>
execs:
- containers:
- <string>
local:
workDir: <string>
envs:
- name: <string>
value: <string>
与 Exec 相比,Exec 的 metadata.name
和 metadata.namespace
必须与关联的 Pod 匹配,而 ClusterExec 有一个额外的 selector
字段,用于指定要模拟的目标 Pod。matchNamespaces
和 matchNames
都表示为列表,它们旨在通过不同级别获取 Pod 集合
- 如果
matchNamespaces
为空,则 ClusterExec 将应用于由kwok
管理且名称列在matchNames
中的所有 Pod。 - 如果
matchNames
为空,则 ClusterExec 将应用于由kwok
管理且位于matchNamespaces
中列出的命名空间下的所有 Pod。 - 如果
matchNames
和matchNamespaces
都未设置,则 ClusterExec 将应用于kwok
管理的所有 Pod。
ClusterExec 的 execs
字段与 Exec 中的字段具有相同的语义。