diff --git a/content/zh-cn/docs/reference/kubernetes-api/config-and-storage-resources/csi-node-v1.md b/content/zh-cn/docs/reference/kubernetes-api/config-and-storage-resources/csi-node-v1.md
new file mode 100644
index 0000000000..a05152e1c5
--- /dev/null
+++ b/content/zh-cn/docs/reference/kubernetes-api/config-and-storage-resources/csi-node-v1.md
@@ -0,0 +1,566 @@
+---
+api_metadata:
+ apiVersion: "storage.k8s.io/v1"
+ import: "k8s.io/api/storage/v1"
+ kind: "CSINode"
+content_type: "api_reference"
+description: "CSINode 包含节点上安装的所有 CSI 驱动有关的信息。"
+title: "CSINode"
+weight: 9
+---
+
+
+`apiVersion: storage.k8s.io/v1`
+
+`import "k8s.io/api/storage/v1"`
+
+## CSINode {#CSINode}
+
+CSINode 包含节点上安装的所有 CSI 驱动有关的信息。CSI 驱动不需要直接创建 CSINode 对象。
+只要这些驱动使用 node-driver-registrar 边车容器,kubelet 就会自动为 CSI 驱动填充 CSINode 对象,
+作为 kubelet 插件注册操作的一部分。CSINode 的名称与节点名称相同。
+如果不存在此对象,则说明该节点上没有可用的 CSI 驱动或 Kubelet 版本太低无法创建该对象。
+CSINode 包含指向相应节点对象的 OwnerReference。
+
+
+
+- **apiVersion**: storage.k8s.io/v1
+
+- **kind**: CSINode
+
+
+- **metadata** (}}">ObjectMeta)
+
+ metadata.name 必须是 Kubernetes 节点的名称。
+
+- **spec** (}}">CSINodeSpec),必需
+
+ spec 是 CSINode 的规约。
+
+## CSINodeSpec {#CSINodeSpec}
+
+CSINodeSpec 包含一个节点上安装的所有 CSI 驱动规约有关的信息。
+
+
+
+
+- **drivers** ([]CSINodeDriver),必需
+
+ **补丁策略:按照键 `name` 合并**
+
+ drivers 是节点上存在的所有 CSI 驱动的信息列表。如果列表中的所有驱动均被卸载,则此字段可以为空。
+
+
+ **CSINodeDriver 包含一个节点上安装的一个 CSI 驱动规约有关的信息。**
+
+ - **drivers.name** (string),必需
+
+ 这是该对象引用的 CSI 驱动的名称。此字段值必须是针对该驱动由 CSI GetPluginName() 调用返回的相同名称。
+
+
+ - **drivers.nodeID** (string),必需
+
+ 从驱动角度来看,这是节点的 nodeID。
+ 对于未与节点共享相同命名法的存储系统,此字段使得 Kubernetes 能够与之进行通信。
+ 例如,Kubernetes 可能将给定节点视为 "node1",但存储系统可以将同一节点视为 "nodeA"。
+ 当 Kubernetes 向存储系统发出一条命令将一个卷挂接到特定的节点时,
+ 它可以藉此字段使用存储系统所理解的 ID 引用节点名称,例如使用 “nodeA” 而不是 “node1”。
+ 此字段是必需的。
+
+
+ - **drivers.allocatable** (VolumeNodeResources)
+
+ allocatable 表示一个节点上可供调度的卷资源。此字段处于 beta 阶段。
+
+
+ **VolumeNodeResources 是调度卷时所用的一组资源限制。**
+
+ - **drivers.allocatable.count** (int32)
+
+ 这是一个节点上可使用的、由 CSI 驱动管理的独立卷个数的上限。
+ 挂接并挂载到一个节点上的卷被视为被使用一次,不是两次。
+ 相同的规则适用于同一个节点上多个 Pod 之间共享的同一个卷。
+ 如果未指定此字段,则该节点上支持的卷数量是无限的。
+
+
+ - **drivers.topologyKeys** ([]string)
+
+ topologyKeys 是驱动支持的键的列表。
+ 在集群上初始化一个驱动时,该驱动将提供一组自己理解的拓扑键
+ (例如 “company.com/zone”、“company.com/region”)。
+ 在一个节点上初始化一个驱动时,该驱动将提供相同的拓扑键和值。
+ Kubelet 将在其自己的节点对象上将这些拓扑键暴露为标签。
+ 当 Kubernetes 进行拓扑感知的制备时,可以使用此列表决定应从节点对象中检索哪些标签并传回驱动。
+ 不同的节点可以使用不同的拓扑键。
+ 如果驱动不支持拓扑,则此字段可以为空。
+
+## CSINodeList {#CSINodeList}
+
+CSINodeList 是 CSINode 对象的集合。
+
+
+
+- **apiVersion**: storage.k8s.io/v1
+
+- **kind**: CSINodeList
+
+
+- **metadata** (}}">ListMeta)
+
+ 标准的列表元数据。更多信息:
+ https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
+
+- **items** ([]}}">CSINode),必需
+
+ items 是 CSINode 的列表。
+
+
+## 操作 {#Operations}
+
+
+
+### `get` 读取指定的 CSINode
+#### HTTP 请求
+
+GET /apis/storage.k8s.io/v1/csinodes/{name}
+
+
+#### 参数
+- **name** (**路径参数**): string,必需
+
+ CSINode 的名称
+
+- **pretty** (**查询参数**): string
+
+ }}">pretty
+
+
+#### 响应
+200 (}}">CSINode): OK
+
+401: Unauthorized
+
+
+### `list` 列出或观测类别为 CSINode 的对象
+#### HTTP 请求
+
+GET /apis/storage.k8s.io/v1/csinodes
+
+
+#### 参数
+- **allowWatchBookmarks** (**查询参数**): boolean
+
+ }}">allowWatchBookmarks
+
+- **continue** (**查询参数**): string
+
+ }}">continue
+
+- **fieldSelector** (**查询参数**): string
+
+ }}">fieldSelector
+
+- **labelSelector** (**查询参数**): string
+
+ }}">labelSelector
+
+- **limit** (**查询参数**): integer
+
+ }}">limit
+
+- **pretty** (**查询参数**): string
+
+ }}">pretty
+
+- **resourceVersion** (**查询参数**): string
+
+ }}">resourceVersion
+
+- **resourceVersionMatch** (**查询参数**): string
+
+ }}">resourceVersionMatch
+
+- **timeoutSeconds** (**查询参数**): integer
+
+ }}">timeoutSeconds
+
+- **watch** (**查询参数**): boolean
+
+ }}">watch
+
+
+#### 响应
+200 (}}">CSINodeList): OK
+
+401: Unauthorized
+
+
+### `create` 创建 CSINode
+#### HTTP 请求
+
+POST /apis/storage.k8s.io/v1/csinodes
+
+
+#### 参数
+- **body**: }}">CSINode,必需
+
+- **dryRun** (**查询参数**): string
+
+ }}">dryRun
+
+- **fieldManager** (**查询参数**): string
+
+ }}">fieldManager
+
+- **fieldValidation** (**查询参数**): string
+
+ }}">fieldValidation
+
+- **pretty** (**查询参数**): string
+
+ }}">pretty
+
+
+#### 响应
+200 (}}">CSINode): OK
+
+201 (}}">CSINode): Created
+
+202 (}}">CSINode): Accepted
+
+401: Unauthorized
+
+
+### `update` 替换指定的 CSINode
+#### HTTP 请求
+
+PUT /apis/storage.k8s.io/v1/csinodes/{name}
+
+
+#### 参数
+- **name** (**路径参数**): string,必需
+
+ CSINode 的名称
+
+- **body**: }}">CSINode,必需
+
+- **dryRun** (**查询参数**): string
+
+ }}">dryRun
+
+- **fieldManager** (**查询参数**): string
+
+ }}">fieldManager
+
+- **fieldValidation** (**查询参数**): string
+
+ }}">fieldValidation
+
+- **pretty** (**查询参数**): string
+
+ }}">pretty
+
+
+#### 响应
+200 (}}">CSINode): OK
+
+201 (}}">CSINode): Created
+
+401: Unauthorized
+
+
+### `patch` 部分更新指定的 CSINode
+#### HTTP 请求
+
+PATCH /apis/storage.k8s.io/v1/csinodes/{name}
+
+
+#### 参数
+- **name** (**路径参数**): string,必需
+
+ CSINode 的名称
+
+- **body**: }}">Patch,必需
+
+- **dryRun** (**查询参数**): string
+
+ }}">dryRun
+
+- **fieldManager** (**查询参数**): string
+
+ }}">fieldManager
+
+- **fieldValidation** (**查询参数**): string
+
+ }}">fieldValidation
+
+- **force** (**查询参数**): boolean
+
+ }}">force
+
+- **pretty** (**查询参数**): string
+
+ }}">pretty
+
+
+#### 响应
+200 (}}">CSINode): OK
+
+201 (}}">CSINode): Created
+
+401: Unauthorized
+
+
+### `delete` 删除 CSINode
+#### HTTP 请求
+DELETE /apis/storage.k8s.io/v1/csinodes/{name}
+
+
+#### 参数
+- **name** (**路径参数**): string,必需
+
+ CSINode 的名称
+
+- **body**: }}">DeleteOptions
+
+- **dryRun** (**查询参数**): string
+
+ }}">dryRun
+
+- **gracePeriodSeconds** (**查询参数**): integer
+
+ }}">gracePeriodSeconds
+
+- **pretty** (**查询参数**): string
+
+ }}">pretty
+
+- **propagationPolicy** (**查询参数**): string
+
+ }}">propagationPolicy
+
+
+#### 响应
+200 (}}">CSINode): OK
+
+202 (}}">CSINode): Accepted
+
+401: Unauthorized
+
+
+### `deletecollection` 删除 CSINode 的集合
+#### HTTP 请求
+DELETE /apis/storage.k8s.io/v1/csinodes
+
+
+#### 参数
+- **body**: }}">DeleteOptions
+
+- **continue** (**查询参数**): string
+
+ }}">continue
+
+- **dryRun** (**查询参数**): string
+
+ }}">dryRun
+
+- **fieldSelector** (**查询参数**): string
+
+ }}">fieldSelector
+
+- **gracePeriodSeconds** (**查询参数**): integer
+
+ }}">gracePeriodSeconds
+
+- **labelSelector** (**查询参数**): string
+
+ }}">labelSelector
+
+- **limit** (**查询参数**): integer
+
+ }}">limit
+
+- **pretty** (**查询参数**): string
+
+ }}">pretty
+
+- **propagationPolicy** (**查询参数**): string
+
+ }}">propagationPolicy
+
+- **resourceVersion** (**查询参数**): string
+
+ }}">resourceVersion
+
+- **resourceVersionMatch** (**查询参数**): string
+
+ }}">resourceVersionMatch
+
+- **timeoutSeconds** (**查询参数**): integer
+
+ }}">timeoutSeconds
+
+
+#### 响应
+200 (}}">Status): OK
+
+401: Unauthorized
\ No newline at end of file