Showing posts with label K10 Single Cluster Deployment. Show all posts
Showing posts with label K10 Single Cluster Deployment. Show all posts

Quickly Set Up Kasten K10 on Kubernetes – Single Cluster Installation Guide


Quickly Set Up Kasten K10 on Kubernetes – Single Cluster Installation Guide

To set up a Kasten K10 lab environment, the basic requirement is a K8S cluster. Kasten K10 is a native cloud application that relies on the K8S environment to run and handles backup and recovery for K8S objects. Therefore, the challenge becomes setting up a K8S environment quickly and easily and deploying a simple stateful application. This is particularly difficult without internet access. I have now used the unique OVF (Open Virtualization Format) method in virtualization to package this process into a virtual appliance, greatly simplifying the setup of this demo lab. It allows you to set up such a single-node cluster without any internet downloads and includes a WordPress application with a MySQL database built in. Netizens who need this appliance file, please comment or contact me.


Please note that this virtual appliance is for personal testing and research purposes only and must not be used for any commercial purposes. I do not guarantee the security, reliability, or stability of this device; users must judge for themselves.


Usage Instructions:

Step 1 import OVA

Import this OVA file into VMware vSphere (vSphere only). During the import, the import wizard will prompt you to configure the network and IP address information, as shown in the image below:

screenshot of impart OVA into VMware vSphere

Step 2 config

After the import is complete, the virtual appliance will automatically configure the device's IP address during its first boot. Once the configuration is complete, you can use SSH to log in to the system for basic K8S environment configuration. The initial username and password for access are:

 
username: k10
Password: P@ssw0rd


After logging into the system, use the `sudo -i` command to switch to the root user.


K8S cluster initialization requires executing the five script files in the /root/ directory in order:

 
0-minio.sh
1-createk8s.sh
2-loadimage.sh
3-storage.sh
4-wordpress.sh

All necessary files involved in the script execution process have been placed in the /root/ directory, and the scripts will automatically call these files.

0-minio.sh

This script uses MinIO (https://minio.io), the leading open-source object storage solution, to create a local object storage. After the command is executed, the object storage will be up and running. You can access the object storage web interface at https://<Virtual Appliance IP>:9000. The initial username and password for the web interface are:

 
username: minioadmin
Password: minioadmin

1-createk8s.sh

This script uses Kind technology (K8S in Docker) to quickly deploy a K8S cluster by running K8S nodes in containers. The container images required for K8S have been pre-built into this appliance, so there's no need to download the approximately 1.3GB K8S Docker images from the internet. You can verify that the K8S Docker images are ready before running the script with the following command:

 
$ docker images list | grep kind


After the script finishes running, you can use kubectl commands normally to view all K8S resources. At this point, all kubectl commands will work. For example, you can try this:

 
$ kubectl get nodes


2-loadimage.sh

This script doesn't have any special secrets; it simply prepares for the fourth and fifth scripts by loading the Docker images built into the local Ubuntu into Kind for Kind to use.


3-storage.sh

This script creates a local CSI Hostpath driver for the K8S cluster. The script used can be found at (https://github.com/kubernetes-csi/csi-driver-host-path). I modified the internet download links required by this script to use all yaml files from the local /root/ folder. Additionally, all Docker images used in this script were pre-pulled from the internet and loaded into Kind in the previous step.


Before running the script, you can check the storage classes before deployment with the following command:

 
$ kubectl get sc


After the script finishes running, you can run this command again to see the newly configured storage class.


Furthermore, this step will deploy multiple pods to the default namespace. Another useful command to check the deployment status of this step is:

 
$ kubectl get pod


4-wordpress.sh

The purpose of this script is simple: deploy a WordPress application with a built-in MySQL database. After deployment is complete, you need to run the following command for port forwarding and then use a browser to access the following address for further configuration: http://<Virtual Appliance IP>.

 
$ kubectl port-forward --address 0.0.0.0 svc/wordpress 80:80 -n wordpress


The above is a brief usage guide for this virtual K8S appliance. After deploying this environment, you can proceed with the normal installation and configuration of Kasten using the documentation at (https://docs.kasten.io/latest/).

What is Kasten K10?

Kasten K10 by Veeam is a Kubernetes-native data protection platform designed for backup, disaster recovery, and mobility. It simplifies stateful application protection in Kubernetes environments.

Why Use Kasten K10 for Kubernetes?

  • Native Kubernetes integration

  • Application-aware backups and restores

  • Policy-driven automation

  • Multi-cloud and hybrid cloud support

  • Ransomware protection with immutable backups