Exec

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.namemetadata.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.namemetadata.namespace 必须与关联的 Pod 匹配,而 ClusterExec 有一个额外的 selector 字段,用于指定要模拟的目标 Pod。matchNamespacesmatchNames 都表示为列表,它们旨在通过不同级别获取 Pod 集合

  1. 如果 matchNamespaces 为空,则 ClusterExec 将应用于由 kwok 管理且名称列在 matchNames 中的所有 Pod。
  2. 如果 matchNames 为空,则 ClusterExec 将应用于由 kwok 管理且位于 matchNamespaces 中列出的命名空间下的所有 Pod。
  3. 如果 matchNamesmatchNamespaces 都未设置,则 ClusterExec 将应用于 kwok 管理的所有 Pod。

ClusterExec 的 execs 字段与 Exec 中的字段具有相同的语义。

示例 #