前言:Rancher × Kasten
Kasten K10 是 Veeam 在 Kubernetes 平台的数据管理解决方案,通过部署 Kasten K10 企业可以安全地备份和还原、执行灾难恢复以及迁移云原生的应用。Kubernetes 集群资源和持久卷等存储资源。解决用户备份、灾难恢复、迁移过程中的数据管理问题,提高云原生环境数据管理的便捷性,帮助用户降低灾备成本,提高生产执行效率。
Rancher 是一款开源的企业级 Kubernetes 管理平台,实现了 Kubernetes 集群在混合云+本地数据中心的集中部署与管理。因为操作体验的直观、极简备受用户青睐,在全球拥有超过3亿的核心镜像下载量。
本文将介绍如何在 Rancher 应用商店(Catalog)中安装和部署 Kasten K10 ,进而如何通过Kasten K10 进行云原生的数据管理操作。
前置条件
将现有 Kubernetes 集群已纳入 Rancher 管理
部署 Kasten K10
在 Rancher 的 Tools - Catalogs 页面可以进行应用商店(catalogs)的配置,我们在这里添加 Kasten 的 Helm 仓库:
保存完成后,即可选择 Apps 页面进行 Kasten K10 的部署了。选择 Launch 便可看到 Kasten 的仓库信息了。这里我们服务目录中选择 K10 。
接下来着需要在此页面中进行Kasten 的参数配置。以达到我们需要的效果。在 Template Version 处选择企业需要版本,并指定 NameSpace 为 kasten-io。
在 Answers 中 填入我们所需要的参数,以保证 K10 运行在我们需要的环境下。
有关参数设定可以参考如下链接
https://docs.kasten.io/latest/install/advanced.html
稍等片刻即可完成部署。
部署示例项目
在 APP:K10 中的 Workloads 页面中可以看到所有的服务都已经启动
在 APP:K10 中的 Endpoints 页面中,可以看到之前配置的 Ingress 入口
点击 https://192.168.99.100/k10/ 在浏览器中会出现,以下登录界面。 输入您的公司与邮件地址完成注册
在 Settings 中的 Locations 设置您备份数据的存放目标,这里我们选用的是 S3 兼容性存储。
最后启用 K10 Disaster Recovery 我们就可以进行云原生应用的灾备设定了。
云原生应用的部署与发现
到 Kasten Dashboard 中, 我们可以发现目前这里有 16 个 应用,如下图。让我们新建一个 WordPress 应用,该应用包括 一个 WordPress Pod 与 一个 Mysql Pod,是典型的无状态与有状态相结合的应用,应用创建的步骤如下:
创建 kustomization.yaml
创建 Secret 生成器
A Secret 是存储诸如密码或密钥之类的敏感数据的对象。从 1.14 开始,kubectl支持使用 kustomization 文件管理 Kubernetes 对象。您可以通过kustomization.yaml中的生成器创建一个 Secret。
通过以下命令在kustomization.yaml中添加一个 Secret 生成器。您需要用您要使用的密码替换YOUR_PASSWORD。
cat <<EOF >./kustomization.yaml
secretGenerator:
- name: mysql-pass
literals:
- password=YOUR_PASSWORD
EOF
下载 MySQL deployment 配置文件
curl -LO https://k8s.io/examples/application/wordpress/mysql-deployment.yaml
下载 WordPress 配置文件
curl -LO https://k8s.io/examples/application/wordpress/wordpress-deployment.yaml
补充到 kustomization.yaml 文件
cat <<EOF >>./kustomization.yaml
resources:
- mysql-deployment.yaml
- wordpress-deployment.yaml
EOF
应用和验证
kustomization.yaml包含用于部署 WordPress 网站的所有资源以及 MySQL 数据库。您可以通过以下方式应用目录
kubectl create ns wordpress
kubectl apply -k ./ -n wordpress
上述应用执行完成之后,我们马上就可以看到应用数量增加为 17 个
并可以在 Applications 中发现在这个 WordPress 应用
云原生应用的备份
点击 Create Policy, 让我们创建一个数据备份策略,在这个数据保护策略中 Kasten 不仅创建本地的快照对应用进行保护,还会将应用数据备份到云端的对象存储,以实现数据的长期保留
点击 Run Once 执行备份任务
观察 Dashboard 可以看到应用已经备份完成
云原生应用的还原
在 Dashboard 中找到 Applications 点击 Restore
选择还原的时间点
新建一个 Namespace 进行还原,这里我们命名为 wordpress-restore
由于还原的应用将新建一个 namespace ,您可以观察到。这里的应用从 17 增加到 18 个,
观察 Dashboard 我们可以看到,应用已经被成功的还原了。
在 Rancher Dashboard 中我们已经看到还原的应用在正常的运行了
总结
你可以在 Rancher 中使用 Kasten K10 的官方 Helm 仓库直接部署 Kasten K10。并且 通过 Kasten 为您的云原生应用进行数据管理操作,这包括,备份、迁移与容灾。
未来规划
Rancher 社区已经与 Kasten 达成合作,未来你可以直接在 Rancher 自带的应用商店中找到 Kasten ,不再需要手动添加 Helm 仓库了。