Google Marketplace Install and Upgrades
The K10 data management platform, purpose-built for Kubernetes, provides enterprise operations teams an easy-to-use, scalable, and secure system for backup/restore, disaster recovery, and mobility of Kubernetes applications. K10’s application-centric approach and deep integrations with relational and NoSQL databases, Kubernetes distributions, and all clouds provides teams the freedom of infrastructure choice without sacrificing operational simplicity.
Policy-driven and extensible, K10 provides a native Kubernetes API and includes features such full-spectrum consistency, database integrations, automatic application discovery, multi-cloud mobility, and a powerful web-based user interface.
This documentation is specific to deploying and managing Kasten K10 using GCP Marketplace. For other deployment scenarios on Google Kubernetes Engine (GKE), please refer to the more general GKE install instructions.
Prerequisites
Connect to the cluster where you intend to install Kasten K10 via
kubectl
Ensure that your cluster has been created with a Service Account with the required access to the underlying storage infrastructure. See Using the Default GCP Service Account for more details.
Create a dedicated namespace where you will install K10. For example, if you want to create namespace
kasten-io
, you will run the following command.
$ kubectl create namespace kasten-io
Install from GCP Marketplace Console
To deploy using the GCP Marketplace UI follow these steps:
From the Applications section of Google Kubernetes Engine, select Deploy from Cloud Marketplace
Locate Kasten K10 from the list of applications.
Select the Configure option.
Select the cluster on which you would like to deploy.
Select the dedicated namespace you have just created for Kasten K10.
Create a new K10 Service Account that will have the proper permissions.
Specify a name for the application instance.
Confirm by typing 'yes' that you are deploying in a dedicated non-default namespace
This will deploy a version of K10 using default settings.
Note
It is strongly recommended that you install Kasten K10 in a dedicated non-default namespace on your cluster.
Using K10
Accessing the Kasten K10 Dashboard
Once Kasten K10 has been installed, enable access to the dashboard which is not exposed by default. To access the dashboard, run the following commands locally.
$ kubectl --namespace kasten-io port-forward service/gateway 8080:80
Assuming that you installed in namespace kasten-io
and named the
application kasten-k10
, the dashboard will be accessible at:
http://127.0.0.1:8080/k10/#/
For detailed documentation on how to use Kasten K10 once installed, please refer to Using K10.
Updating K10
When installing a new instance of Kasten K10 on a cluster, you will always get the latest images corresponding to a given version. To upgrade to subsequent patch/minor versions, follow the instructions below.
Please collect Namespace and ServiceAccount settings for your K10 deployment. To extract the ServiceAccount name, you can run the following command:
$ kubectl --namespace <k10-namespace> get sa --selector=app.kubernetes.io/name=<k10-application-name> -o jsonpath="{.items[*].metadata.name}"
Assuming that you installed in namespace kasten-io
and named the
application kasten-k10
$ kubectl --namespace kasten-io get sa --selector=app.kubernetes.io/name=kasten-k10 -o jsonpath="{.items[*].metadata.name}"
Replace <k10-sa-name> with your ServiceAccount and <k10-namespace> with Namespace in the command below. Then simply execute the modified command.
$ kubectl run -i --rm --tty updater --image=gcr.io/kasten-cloudlauncher/k10/updater:2.5 --image-pull-policy=Always --restart=Never --overrides='{ "apiVersion": "v1", "spec": {"serviceAccountName": "<k10-sa-name>"}}' --namespace <k10-namespace>
Deleting K10
Deleting from the GCP Marketplace Console
Select Kasten K10 from the Applications section of the Google Kubernetes Engine Console and then select Delete.
Deleting Via the Command Line
To delete a Kasten K10 instance that was installed using GCP Marketplace simply delete the all resources with the label corresponding to the application instance from the K10 namespace.
$ kubectl delete all --namespace=<k10 namespace> --selector=app.kubernetes.io/name=<k10 instance name>
For example, if Kasten K10 was installed in namespace kasten-io
and the
application was named kasten-k10
, then you can delete using the command.
$ kubectl delete all --namespace=kasten-io --selector=app.kubernetes.io/name=kasten-k10
If you followed best practices and installed Kasten K10 in a dedicated namespace, you should be able to simply delete that namespace.
$ kubectl delete namespace <k10 namespace>
Regardless of the approach, all resources will be cleaned up unless you have changed the default ReclaimPolicy for PersistentVolume to something other than the default of delete. If that is the case, you will need to manually clean PVs.