Kasten k10 快速部署系列 03 – 利用红帽 OpenShift Operator 快速部署 Kasten

1. 前言

Kubernetes Operator 是一种封装、部署和管理云原生应用的方法,它基于 Kubernetes 资源和控制器概念构建,涵盖了特定于作用域或应用知识的参数设置,可用于实现其所管理软件的整个生命周期的自动化。使用 Kubernetes API 和 kubectl 工具在 Kubernetes 上部署并管理云原生应用。利用 Operator 作为云原生应用的控制器,可以来代表用户创建、配置和管理复杂应用的实例,与扩展 Kubernetes API 的功能,在本文中我们将详细介绍在 如何在 OpenShift Operator上部署 Kasten K10.

2. Kasten on OpenShift

Kasten K10 是 Veeam 在 Kubernetes 平台的数据管理解决方案,通过部署 Kasten K10 企业可以安全地备份和还原、执行灾难恢复以及迁移云原生的应用。Kubernetes 集群资源和持久卷等存储资源。解决用户备份、灾难恢复、迁移过程中的数据管理问题,提高云原生环境数据管理的便捷性,帮助用户降低灾备成本,提高生产执行效率。

20210821143120 z

红帽® OpenShift® 是一个企业就绪型 Kubernetes 容器平台,可以实现全堆栈自动化运维,以管理混合云、多云和边缘部署。红帽 OpenShift 已进行过专门优化,可以有效提高开发人员的生产力并推动创新。 凭借红帽 OpenShift 的全堆栈自动化运维、跨所有环境的一致体验以及面向开发人员的自助服务置备,团队可以紧密携手合作,更有效地从构思想法过渡到生产阶段。红帽 OpenShift 既可作为领先公共云中的全托管式云服务提供,也可作为自我管理软件提供给需要更高定制化程度的企业。

20210825152537

3. 关于红帽 OpenShift Operator

3.1 k8s Operator 的工作原理是什么?

在 Kubernetes 环境中,控制平面的控制器实施控制应用的生态循环,它反复比较云原生应用在集群中的理想状态和实际状态。如果集群的实际状态与理想状态不符,控制器将采取措施解决此问题。Operator 是使用自定义资源(CR)管理应用及其组件的自定义 Kubernetes 控制器。高级配置和设置由用户在 CR 中提供。Kubernetes Operator 是基于嵌入在 Operator 逻辑中的最佳实践,并将高级指令转换为低级操作。自定义资源是 Kubernetes 中的 API 扩展机制。自定义资源定义(CRD)会明确 CR 并列出 Operator 用户可用的所有配置。 Kubernetes Operator 的动作如下:

  • Kubernetes Operator 监视 CR 类型并采取特定于应用的操作,确保当前状态与该资源的理想状态相符。
  • Kubernetes Operator 通过自定义资源定义引入新的对象类型。Kubernetes API 可以像处理内置对象一样处理自定义资源定义,包括通过 kubectl 交互以及包含在基于角色的访问权限控制(RBAC)策略中。
  • Kubernetes Operator 会持续监控正在运行的应用,可备份数据,从故障中恢复,以及随着时间的推移自动升级应用。
  • Kubernetes Operator 几乎可执行任何操作:扩展复杂的应用,应用版本升级,甚至使用专用硬件管理计算集群中节点的内核模块。

3.2 为什么要使用 Operator?

对于应用开发人员,Operator 使得部署和运行其应用所依赖的基础服务变得更简单。 而对于基础架构工程师而言,Operator 提供了在 Kubernetes 集群上分发软件的一致方式,并通过识别和纠正应用问题降低了支持成本。 除了 Kubernetes 中提供的基本自动化功能之外,Operator 还允许您编写代码来实现任务自动化。对于采用 DevOps 或站点可靠性工程(SRE)方法的团队,开发了将 SRE 实践应用到 Kubernetes 的 Operator。 Operator 模式能够捕捉运维人员如何管理服务的规律。运维人员需要全面了解应用或服务的工作原理、部署方式以及如何解决可能发生的问题。站点可靠性工程师或运维团队通常编写软件来管理应用,但 Operator 可以获取人类运维知识并将其编码到软件中,用于管理和部署 Kubernetes 工作负载,同时消除手动任务。

3.3 在红帽网站验证 Operator 的可用性

目前 Kasten 已经通过 OpenShift Operator 可用认证,在可以网站上进行查询,这支持用户通过 Kasten 为企业的云原生应用进行 Day 2 Operation 的数据管理操作,这包括云原生应用的备份、迁移与容灾与 DevOps 支持,从而有效地提高开发与运维人员的生产效率并推动创新。

红帽 Ecosystem Catalog
https://catalog.红帽.com/software/operators/search?q=kasten

20210825151100

4. Kasten 在 OpenShift 上的安装与部署

4.1 通过 helm 进行安装

通过 Helm 安装 Kasten K10
路由与 Token 认证方式通过,如下参数进行设定。

--set route.enabled=true
--set auth.tokenAuth.enabled=true

$ helm install k10 kasten/k10 --namespace=kasten-io --set scc.create=true --set route.enabled=true --set auth.tokenAuth.enabled=true
NAME: k10
LAST DEPLOYED: Mon Jul 26 02:25:50 2021
NAMESPACE: kasten-io
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Thank you for installing Kasten’s K10 Data Management Platform!
Documentation can be found at https://docs.kasten.io/.
How to access the K10 Dashboard:

The K10 dashboard is not exposed externally. To establish a connection to it use the following `kubectl` command:
`kubectl --namespace kasten-io port-forward service/gateway 8080:8000`
The Kasten dashboard will be available at: `http://127.0.0.1:8080/k10/#/`

获取 Token

oc login -u opentlc-mgr
Authentication required for https://api.cluster-cb92.cb92.sandbox352.opentlc.com:6443 (OpenShift)
Username: opentlc-mgr
Password:
Login successful.

You have access to 64 projects, the list has been suppressed. You can list all projects with 'oc projects'

Using project "default".
[xiaoyliu-红帽.com@bastion linux-amd64]$ oc whoami --show-token
sha256~XPu8Iz5X3ZS7KeK9y6MYKcpK2GyQuQKJG4k6yfZDbvo
[xiaoyliu-红帽.com@bastion linux-amd64]$ 

4.2 通过 Operator Hub 进行安装

点击 Operator , Operator Hub 查找 Kasten Operator
20210730103634

创建项目
20210730103915

创建 K10 release
20210730103950

使用 Yaml 视图进行参数调整, 搜索 route 两次,直到看见 Route 配置, route 与 tls 都设置为 true

route:
    annotations: {}
    enabled: true
    host: ''
    labels: {}
    path: ''
    tls:
      enabled: true
      insecureEdgeTerminationPolicy: Redirect
      termination: edge

20210730104228

使用 Token 方式认证, 搜索 tokenAuth 设置为 true

    tokenAuth:
      enabled: true

20210730104818

获取 token,点击复制登录命令,点击显示Token
20210730102027

复制Your API token is 的下一行

20210730101953

4.3 登录 K10

找到网络,路由。找到位置打开
20210730105642

访问 kasten 登录页面, 使用上文获取的Token 进行登录
20210730105740

5. 红帽 OCP 应用的备份与恢复

5.1 部署测试应用: Django + Postgresql

开发者目录 , 新建项目
20210730110733

选择添加,从目录
20210730111726

实例化模板
20210730111534

回到 administrator 界面,在 Protject 里查看,项目部署情况
20210730112917

查看工作负载 pod 的状态,可以看到 django 与 postgresql 已经启动
20210730113124

找到Project的路由
20210730113814

进入 Django的 web 页面,刷新两次,注意下面的 page view 2
20210730113841

进入 Postgresql 终端, 输入命令查看,结果是相同的
20210730113700

5.2 云原生应用的发现

进入 k10 界面 应用数量的变化已经被捕捉,应用数量从 61 上升到 62

20210730114130

5.3 建立备份策略

查找应用test4ocp, 点击 create policy
20210730114209

一切默认,点击 create policy
20210730114345

5.4 运行备份策略

点击 Run Once , Run Ploicy
20210730114514
查看 Dashboard ,确认 程序备份完成
20210730114854

5.5 制造数据变化

进入 Django的 web 页面,刷新两次,注意下面的 page view 4
20210730115041
进入 Pod 终端,查看 pageview = 4
20210730115149

5.6 还原应用与数据

回到 K10 界面,点击 Restore
20210730115322

选择时间点
20210730115341

一切默认,选择 Restore
20210730115426

回 dashboard, 查看 Restore的情况
20210730115554

5.7 查看应用还原结果

回到 OCP 界面,查看,所有 pod running
20210730115647

回 k10 界面查看已经完成,Restore
20210730115914

回到 OCP 界面,查看,所有 pageview =2
20210730115948

总结

红帽® OpenShift® 是一个企业就绪型 Kubernetes 容器平台,可以实现全堆栈自动化运维,以管理混合云、多云和边缘部署。利用红帽 OpenShift Operator 通过在界面简单配置即可完成 Kasten 数据管理平台的部署,红帽 OpenShift 管理员可以参考以上步骤快速上手。目前 Kasten 已经通过 OpenShift Operator 可用认证,支持用户通过 Kasten 为企业的云原生应用进行 Day 2 Operation 的数据管理操作,这包括云原生应用的备份、迁移与容灾与 DevOps 支持,从而有效地提高开发与运维人员的生产效率并推动创新。

参考资料

Kasten 官方文档:
https://docs.kasten.io/

Kasten 实战系列文章:
http://www.data2clouds.com/index.php/archives/41/

OpenShift Documentation
https://docs.OpenShift.com/

O’Reilly: Kubernetes Operators: Automating the Container Orchestration Platform
https://www.红帽.com/zh/resources/oreilly-kubernetes-operators-automation-ebook?intcmp=701f2000001OMH6AAO

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注