Kasten by Veeam is excited to announce support for Oracle Cloud Infrastructure (OCI) and Oracle Kubernetes Engine (OKE). With Oracle’s recent release of their updated CSI Volume Plugin, which now supports Volume Snapshot capabilities, Kasten K10 by Veeam can backup, move, and restore workloads in a crash-consistent manner to OKE.
You can learn more about Kasten K10 and why cloud native backup and recovery is the best way to protect your Kubernetes data and application workloads by reading our blog, “6 Kubernetes Backup Best Practices.”
Installing Kasten K10 on Oracle Kubernetes Engine is straightforward:
Step 1: Deploy an OKE cluster with the following configuration:
Configuration Item |
Value |
Cluster Type |
Enhanced |
Kubernetes Version |
v1.2x and above |
Region |
US East (Ashburn) |
Node Type |
Managed |
Shape and Image |
VM.Standard.E3.Flex |
OCPUs |
2 |
Amount of Memory (GB) |
16 |
Image |
Oracle Linux 8 |
Node Count |
3 |
Once deployed, you can connect to the OKE cluster by updating your local kubeconfig or leverage Oracle’s Cloud Shell.
Step 2: Configure OCI Block Volume as the default storage class:
$ kubectl patch storageclass oci -p ‘{“metadata”: {“annotations”: {“storageclass.beta.kubernetes.io/is-default-class”:”false”}}}’
$ kubectl patch storageclass oci-bv -p ‘{“metadata”: {“annotations”:{“storageclass.kubernetes.io/is-default-class”:”true”}}}‘
Step 3: Configure Kubernetes External Snapshotter:
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/master/client/config/crd/snapshot.storage.k8s.io_volumesnapshotclasses.yaml
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/master/client/config/crd/snapshot.storage.k8s.io_volumesnapshotcontents.yaml
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/master/client/config/crd/snapshot.storage.k8s.io_volumesnapshots.yaml
Step 4: Define a Volume Snapshot Class that leverages the blockvolume.csi.oraclecloud.com CSI Driver:
$ cat <<EOF | kubectl create -f –
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotClass
metadata:
name: oci-bv-csi-snapclass
annotations:
k10.kasten.io/is-snapshot-class: “true”
driver: blockvolume.csi.oraclecloud.com
deletionPolicy: Delete
EOF
Step 5: Deploy Kasten K10 via the helm command:
$ helm install k10 kasten/k10 –namespace=kasten-io –create-namespace –set externalGateway.create=true –set auth.basicAuth.enabled=true –set auth.basicAuth.htpasswd='<.htpasswd>’
Step 6: Find the external IP of the Kasten Dashboard by using kubectl to query the gateway-ext service in OKE:
$ kubectl get services gateway-ext -n kasten-io | awk {‘print $1″ ” $4″ “$5’} | column -t
NAME EXTERNAL-IP PORT(S)
gateway-ext <external ip> 80:31934/TCP
Navigate with your browser to http://<external_ip>/k10/#/dashboard:
That’s it!
To learn more, check out Kasten K10 + Oracle Cloud Solution Brief and Oracle’s official documentation highlighting the blockvolume.csi.oraclecloud.com CSI driver.