## 阿里云K8S服务上挂载NAS

### 一、流程概述
在阿里云Kubernetes服务上挂载NAS,主要分为创建NAS文件系统、创建NAS挂载点和在K8S集群中添加NAS卷三个步骤。

#### 此流程共包含以下步骤:
| 步骤 | 操作 |
| ---- | ---- |
| 1 | 创建NAS文件系统 |
| 2 | 创建NAS挂载点 |
| 3 | 在K8S集群中添加NAS卷 |

### 二、具体操作步骤

#### 1. 创建NAS文件系统
在阿里云控制台创建NAS文件系统,获取文件系统的ID。

#### 2. 创建NAS挂载点
在阿里云控制台为文件系统创建NAS挂载点,获取挂载点的地址。

#### 3. 在K8S集群中添加NAS卷
在K8S集群中通过PersistentVolume(PV)和PersistentVolumeClaim(PVC)来使用NAS。

1. **创建PV**

```yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: nas-pv
spec:
capacity:
storage: 1Gi
volumeMode: Filesystem
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: nas-storage
mountOptions:
- hard,nfsvers=4.2
nfs:
path: /
server:
```
- `name`: PV的名称,自行指定。
- `storage`: 存储空间大小。
- `accessModes`: 访问方式,支持多节点读写。
- `persistentVolumeReclaimPolicy`: 回收策略,保留数据。
- `storageClassName`: 存储类名称。
- `nfs path`和`server`: 分别指定NAS挂载点名称和地址。

2. **创建PVC**

```yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nas-pvc
spec:
accessModes:
- ReadWriteMany
storageClassName: nas-storage
resources:
requests:
storage: 1Gi
```
- `name`: PVC的名称,对应PV的名称。
- `accessModes`: 访问方式,保持与PV一致。
- `storageClassName`: 存储类名称,与PV对应。
- `resources`: 请求的存储空间大小。

3. **在Pod中使用PVC**

```yaml
apiVersion: v1
kind: Pod
metadata:
name: nas-pod
spec:
volumes:
- name: nas-volume
persistentVolumeClaim:
claimName: nas-pvc
containers:
- name: app
image: nginx
volumeMounts:
- name: nas-volume
mountPath: /data
```
- 在Pod的`volumes`字段中声明PVC。
- 在Pod的`containers`字段中指定挂载路径。

### 三、总结
通过以上操作,我们成功在阿里云Kubernetes服务上挂载了NAS。在实际应用中,可以根据不同需求调整PV、PVC和Pod的配置,以满足实际业务场景的需求。希望这篇文章对你有所帮助,祝你顺利挂载NAS并成功运行应用!