Attach

Attach 配置 #

本文档将指导您如何配置 Attach 功能。

什么是 Attach? #

Attach 是一个 kwok 配置,允许用户定义和模拟附加到单个 Pod。

下面的 YAML 显示了 Attach 资源的所有字段

kind: Attach
apiVersion: kwok.x-k8s.io/v1alpha1
metadata:
  name: <string>
  namespace: <string>
spec:
  attaches:
  - containers:
    - <string>
    logsFile: <string>

要将 Attach 与要模拟的特定 Pod 关联,用户必须确保 metadata.namemetadata.namespace 与目标 Pod 的名称和命名空间不一致。

Pod 的附加模拟设置通过 attaches 字段指定。attaches 字段按组组织,每个组对应于共享相同附加模拟设置的容器集合。每个组包含一个容器名称列表(containers)和共享的附加模拟设置(logsFile)。

如果未在组中给出 containers,则该组中的 logsFile 将应用于目标 Pod 的所有容器。

logsFile 字段指定日志的文件路径。如果未设置 logsFile 字段,则将忽略此项。

ClusterAttach #

除了模拟单个 Pod 之外,用户还可以通过 ClusterAttach 模拟多个 Pod 的附加。

下面的 YAML 显示了 ClusterAttach 资源的所有字段

kind: ClusterAttach
apiVersion: kwok.x-k8s.io/v1alpha1
metadata:
  name: <string>
spec:
  selector:
    matchNamespaces:
    - <string>
    matchNames:
    - <string>
  attaches:
  - containers:
    - <string>
    logsFile: <string>

与 Attach 相比,metadata.namemetadata.namespace 必须与关联的 Pod 匹配,ClusterAttach 有一个附加的 selector 字段,用于指定要模拟的目标 Pod。matchNamespacesmatchNames 都表示为列表,它们旨在通过不同级别获取 Pod 集合

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

ClusterAttach 的 attaches 字段与 Attach 中的字段具有相同的语义。

示例 #