Skip to content

Commit

Permalink
[docs] Add documentation about creating snapshots (#12)
Browse files Browse the repository at this point in the history
Signed-off-by: Aleksandr Zimin <[email protected]>
  • Loading branch information
AleksZimin authored Jun 4, 2024
1 parent 4aa82a4 commit 2da9afc
Show file tree
Hide file tree
Showing 2 changed files with 148 additions and 0 deletions.
74 changes: 74 additions & 0 deletions docs/FAQ.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,77 @@ kubectl -n d8-csi-nfs get pod -owide -w
## Is it possible to change the parameters of an NFS server for already created PVs?

No, the connection data to the NFS server is stored directly in the PV manifest and cannot be changed. Changing the Storage Class also does not affect the connection settings in already existing PVs.

## How to Create Volume Snapshots?

In `csi-nfs`, snapshots are created by archiving the volume directory. The archive is saved in the root folder of the NFS server specified in the `spec.connection.share` parameter.

### Step 1: Enabling the snapshot-controller

First, you need to enable the snapshot-controller:

```shell
kubectl apply -f -<<EOF
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: snapshot-controller
spec:
enabled: true
version: 1
EOF

```

### Step 2: Creating the VolumeSnapshotClass

Create a VolumeSnapshotClass with the necessary parameters:

```shell
kubectl apply -f -<<EOF
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotClass
metadata:
name: csi-nfs-snapshot-class
driver: nfs.csi.k8s.io
deletionPolicy: <Delete or Retain>
EOF

```

The deletionPolicy parameter can be set to Delete or Retain depending on your use case:

- Delete — the snapshot will be deleted along with the VolumeSnapshot.

- Retain — the snapshot will be retained after the VolumeSnapshot is deleted.

### Step 3: Creating a Volume Snapshot

Now you can create volume snapshots. To do this, execute the following command with the necessary parameters:

```shell
kubectl apply -f -<<EOF
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshot
metadata:
name: my-snapshot
namespace: <name of the namespace where the PVC is located>
spec:
volumeSnapshotClassName: csi-nfs-snapshot-class
source:
persistentVolumeClaimName: <name of the PVC to snapshot>
EOF

```


### Step 4: Checking the Snapshot Status

To check the status of the created snapshot, execute the command:

```shell
kubectl get volumesnapshot

```

This command will display a list of all snapshots and their current status.
74 changes: 74 additions & 0 deletions docs/FAQ_RU.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,77 @@ kubectl -n d8-csi-nfs get pod -owide -w
## Возможно ли изменение параметров NFS-сервера уже созданных PV?

Нет, данные для подключения к NFS-серверу сохраняются непосредственно в манифесте PV, и не подлежат изменению. Изменение Storage Class также не повлечет изменений настроек подключения в уже существующих PV.

## Как делать снимки томов (snapshots)?

В `csi-nfs` снимки создаются путем архивирования папки тома. Архив сохраняется в корне папки NFS сервера, указанной в параметре `spec.connection.share`.

### Шаг 1: Включение snapshot-controller

Для начала необходимо включить snapshot-controller:

```shell
kubectl apply -f -<<EOF
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: snapshot-controller
spec:
enabled: true
version: 1
EOF

```

### Шаг 2: Создание VolumeSnapshotClass

Создайте VolumeSnapshotClass с необходимыми параметрами:

```shell
kubectl apply -f -<<EOF
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotClass
metadata:
name: csi-nfs-snapshot-class
driver: nfs.csi.k8s.io
deletionPolicy: <Delete или Retain>
EOF

```

Параметр deletionPolicy может быть установлен на Delete или Retain в зависимости от вашего сценария использования:

- Delete — снимок будет удален вместе с удалением VolumeSnapshot.

- Retain — снимок будет сохраняться после удаления VolumeSnapshot.


### Шаг 3: Создание снимка тома

Теперь вы можете создавать снимки томов. Для этого выполните следующую команду, указав нужные параметры:

```shell
kubectl apply -f -<<EOF
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshot
metadata:
name: my-snapshot
namespace: <имя namespace, в котором находится PVC>
spec:
volumeSnapshotClassName: csi-nfs-snapshot-class
source:
persistentVolumeClaimName: <имя PVC, для которого необходимо создать снимок>
EOF

```

### Шаг 4: Проверка состояния снимка

Чтобы проверить состояние созданного снимка, выполните команду:

```shell
kubectl get volumesnapshot

```

Эта команда покажет список всех снимков и их текущее состояние.

0 comments on commit 2da9afc

Please sign in to comment.