Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 66 additions & 12 deletions docs/main/Solutioning/backup-and-restore/kasten-br-fs.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ keywords:
- Kasten Backup and Restore using Replicated PV Mayastor Snapshots - FileSystem
- Kasten Backup and Restore
- FileSystem
- OpenEBS
description: In this document, you learn about Kasten Backup and Restore using Replicated PV Mayastor Snapshots - FileSystem.
---

Expand Down Expand Up @@ -32,15 +33,15 @@ Kasten K10, a Kubernetes-native data management platform that offers backup, dis

Install Kasten (V7.0.5) using `helm`. Refer to the [Kasten Documentation](https://docs.kasten.io/7.0.5/install/requirements.html#prerequisites) to view the prerequisites and pre-flight checks.

As an example, we will be using `openebs-hostpath` storageclass as a global persistence storageclass for kasten installation.
As an example, we will be using `openebs-hostpath` storageclass as a global persistence storageclass for the Kasten installation.

1. Install Kasten.

```
helm install k10 kasten/k10 --namespace=kasten-io --set global.persistence.storageClass=openebs-hostpath
```

2. Once you have installed Kasten, verify that Kasten has installed correctly.
2. Once you have installed Kasten, verify that Kasten has been installed correctly.

**Command**

Expand Down Expand Up @@ -91,21 +92,23 @@ driver: io.openebs.csi-mayastor

### Validate Dashboard Access

Use the following `kubectl` command to forward a local port to Kasten ingress port or change the 'svc' type from **ClusterIP** to **NodePort** to establish a connection to it.
Use the following `kubectl` command to forward a local port to the Kasten ingress port or change the 'svc' type from **ClusterIP** to **NodePort** to establish a connection to it.

:::note
By default, the Kasten dashboard is not exposed externally.
:::

In this example we have changed the 'svc' type to **NodePort**:

1. Forward a local port to the Kasten ingress port.
- Forward a local port to the Kasten ingress port.

```
kubectl --namespace kasten-io port-forward service/gateway 8080:80
```

2. Change the 'svc' type as **NodePort**.
or

- Change the 'svc' type as **NodePort**.

**Command**

Expand Down Expand Up @@ -159,10 +162,10 @@ Location profiles help with managing backups and moving applications and their d

![location-profiles](../../assets/location-profiles.png)

The `GCP Project ID` and `GCP Service Key` fields are mandatory. The `GCP Service Key` takes the complete content of the service account json file when creating a new service account. As an example, we will be using Google Cloud Bucket from Google Cloud Platform (GCP). Refer to the [Kasten Documentation](https://docs.kasten.io/latest/install/storage.html) for more information of profiles for various cloud environments.
The `GCP Project ID` and `GCP Service Key` fields are mandatory. The `GCP Service Key` takes the complete content of the service account JSON file when creating a new service account. As an example, we will be using Google Cloud Bucket from Google Cloud Platform (GCP). Refer to the [Kasten Documentation](https://docs.kasten.io/latest/install/storage.html) for more information on profiles for various cloud environments.

:::important
Make sure the service account has necessary permissions.
Make sure the service account has the necessary permissions.
:::

## Application Snapshot - Backup and Restore
Expand All @@ -171,6 +174,57 @@ Make sure the service account has necessary permissions.

In this example, We have deployed a sample Nginx test application for backup and restore.

**Application yaml**

```
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
namespace: test
spec:
replicas: 1 # You can increase this number if you want more replicas.
selector:
matchLabels:
app: test
template:
metadata:
labels:
app: test
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- image: nginx
name: nginx
command: [ "sleep", "1000000" ]
volumeMounts:
- name: claim
mountPath: "/volume"
volumes:
- name: claim
persistentVolumeClaim:
claimName: mayastor-pvc
```

**PVC yaml**

```
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mayastor-pvc
namespace: test
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: mayastor-thin-multi-replica
volumeMode: Filesystem
```

**Command**

```
Expand Down Expand Up @@ -245,19 +299,19 @@ Once the policies have been created, it is possible to run the backup. In this s

![run-once](../../assets/run-once.png)

The snapshots status can be monitored and exported from the Dashboard. The backup had been successfully completed and exported to the storage location.
You can monitor the status of the snapshots and export them from the Dashboard. The backup had been successfully completed and exported to the storage location.

### From Target Cluster

Make sure that Replicated PV Mayastor has been installed, pools have been configured, and storageclasses are created (same as backup cluster) before restoring the target cluster. Refer to the [OpenEBS Installation Documentation](../../quickstart-guide/installation.md#installation-via-helm) for more details.
Make sure that Replicated PV Mayastor has been installed, pools have been configured, and storageclasses are created (same as a backup cluster) before restoring the target cluster. Refer to the [OpenEBS Installation Documentation](../../quickstart-guide/installation.md#installation-via-helm) for more details.

Make sure that Kasten has been installed, volumesnapshotclass are created, and the dashboard is accessible before restoring the target cluster. Refer to the [Install Kasten section](#install-kasten) for more details.
Make sure that Kasten has been installed, volumesnapshotclass is created, and the dashboard is accessible before restoring the target cluster. Refer to the [Install Kasten section](#install-kasten) for more details.

:::note
The Location profile must be located in the exact same location as our backup, otherwise the restore would be unsuccessful.
:::

The dashboard for the target cluster is now accessible since the backup was taken and as the above mentioned configurations were implemented on the restore cluster.
We have completed the backup process and followed the above configurations on the restore cluster. Therefore, the dashboard is now available for the target cluster.

![dashboard](../../assets/dashboard.png)

Expand All @@ -281,7 +335,7 @@ Once the policies are created, the import and restore processes can be initiated

![run-once-restore](../../assets/run-once-restore.png)

The backup had been successfully completed.
Restore has been successfully completed.

![restore](../../assets/restore.png)

Expand Down
1 change: 1 addition & 0 deletions docs/main/Solutioning/backup-and-restore/velero-br-fs.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ keywords:
- Velero Backup and Restore using Replicated PV Mayastor Snapshots - FileSystem
- Velero Backup and Restore
- FileSystem
- OpenEBS
description: In this document, you learn about Velero Backup and Restore using Replicated PV Mayastor Snapshots - FileSystem.
---

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ keywords:
- Velero Backup and Restore using Replicated PV Mayastor Snapshots - Raw Block Volumes
- Velero Backup and Restore
- Raw Block Volumes
- OpenEBS
description: In this document, you learn about Velero Backup and Restore using Replicated PV Mayastor Snapshots - Raw Block Volumes.
---

Expand Down
Loading