Kasten k10 多云适配系列 03 – 利用 Kasten K10 保护 阿里云 ACK 云原生应用

1. 前言

由于近期项目的原因,Mars 有大约一周的时间都在 ACK 上工作,之间也踩了一些坑。发现还是需要写一个 Kasten K10 安装 on ACK 的最佳实践。由于 ACK 是一个定制化的 K8S,所以有很多有个性与特色的部分。本着让 每一个 Veeam 的 Partner SE 都可以尝试安装 Kasten 的态度,我们详细的列出了每一步的过程,本文让我们从安装开始给您一些参考,以尽量避免大家少走一些弯路。

本文目录

    1. 前言
      • 本文目录
    1. 应用阿里云部署 ACK 服务
      • 2.1 创建一个 ACK K8S 集群
      • 2.2 通过 Kubectl 连接 ACK
      • 2.2.1 配置k8s kubectl 客户端
      • 2.2.2 配置 Kubeconfig
      • 2.2.3 kubectl 连接测试
  • 2.3. 安装 Helm 工具
  • 3.Kasten K10 部署规划
    • 3.1 技术资源准备与要求
    • 3.2 K8S 集群资源需求
    1. Kasten K10 部署过程
      • 4.1. 配置 ACR 镜像库
      • 4.1.1. 腾讯镜像库 ACR 介绍
      • 4.1.2 新建命名空间
      • 4.1.3. 部署私有镜像库到 ACR
      • 4.1.4. 对于两个特殊镜像的上传 Restorectl 和 k10offline 镜像
      • 4.1.5. 查看部署完成的 ACR 镜像库
      • 4.2. 设置存储 CSI 插件
      • 4.3. 设创建 VolumeSnapshotClass
      • 4.4 安装 K10 到 K8S 集群
    1. 配阿里云 NAS 作为存储库
    1. ACK 上应用备份与恢复
      • 6.1 建立一个测试应用 mysql
      • 6.2. 云原生应用的发现
      • 6.3 云原生应用的备份与还原
      • 6.3.1 周期性的快照
      • 6.3.2 将快照导出为备份
      • 6.3.3 应用的选择与排除
      • 6.3.4 备份策略的使用
      • 6.3.5 备份结果查看
      • 6.3.6 应用的还原
    1. 总结
    1. 参考链接

2. 应用阿里云部署 ACK 服务

阿里云容器服务介绍
容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理;是国内唯一入选 2020 年 Gartner 公共云容器报告的产品,并在2019年 Forrester 容器报告中获国内排名第一;整合了阿里云虚拟化、存储、网络和安全能力,助力企业高效运行云端 Kubernetes 容器化应用。

2.1 创建一个 ACK K8S 集群

在阿里云中, ACK 集群的创建十分简便,通过控制台就可以进行,选择 容器服务 - Kubenetes -> 集群 -> 创建集群

20210804190448

在创建集群的过程中,我们选择 4C,8G 的云主机做为承载 K8S 集群的服务器

20210804190552

在保证集群可以正常使用的提前下,尽量减少的安装的组件
20210804190739

点击完成,查看集群部署状态

20210804193155

所有Pod 都已经在正常运行

20210804191033

获取集群信息打开内网访问

20210804190935

2.2 通过 Kubectl 连接 ACK

2.2.1 配置k8s kubectl 客户端

1. 下载最新的 kubectl 客户端

配置 K8S yum 源

$ cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

2. 安装k8s kubectl 客户端

# yum install -y kubectl kubelet kubeadm

3. 配置k8s kubectl 客户端开机启动


$ systemctl enable kubelet
Created symlink from /etc/systemd/system/multi-user.target.wants/kubelet.service to
Created symlink from /etc/systemd/system/multi-user.target.wants/kubelet.service to 

4.启动kubectl 客户端

# systemctl start kubelet

2.2.2 配置 Kubeconfig

1. 配置 Kubeconfig
若当前访问客户端尚未配置任何集群的访问凭证,即 ~/.kube/config 内容为空,可直接复制上方 kubeconfig 访问凭证内容并粘贴入 ~/.kube/config 中。

$ mkdir /$HOME/.kube 
$ vim /$HOME/.kube/config    ##把 kubeconfig 文件放进上述文件,详见TKE K8S 信息

2. 访问 Kubernetes 集群
完成 kubeconfig 配置后,执行以下指令查看并切换 context 以访问本集群:

$ kubectl config --kubeconfig=$HOME/.kube/config  get-contexts
CURRENT   NAME                                                 CLUSTER      AUTHINFO           NAMESPACE
*         kubernetes-admin-c36edc6f5ed7041399014475f449c81fd   kubernetes   kubernetes-admin   

$ kubectl config --kubeconfig=$HOME/.kube/config  use-context kubernetes-admin-c36edc6f5ed7041399014475f449c81fd
Switched to context "kubernetes-admin-c36edc6f5ed7041399014475f449c81fd".

2.2.3 kubectl 连接测试

而后可执行 kubectl get node 测试是否可正常访问集群。如果无法连接请查看是否已经开启公网访问或内网访问入口,并确保访问客户端在指定的网络环境内。

$ kubectl get node
NAME                     STATUS   ROLES    AGE     VERSION
cn-beijing.172.16.0.29   Ready    <none>   7h56m   v1.18.8-aliyun.1

2.3. 安装 Helm 工具

Helm 是一个镜像管理的工具,用来使用预先配置的 Kubernetes 镜像资源包。我们可以通过以下链接下载 Helm
下载 [所需版本] https://github.com/helm/helm/releases

#下载
$ wget https://get.helm.sh/helm-v3.6.2-linux-amd64.tar.gz
#解包
$ tar -zxvf helm-v3.6.2-linux-amd64.tar.gz
# helm 在解压后的目录中找到二进制文件,然后将其移至所需的目标位置
$ mv linux-amd64/helm /usr/local/bin/helm
# 在客户端内运行
$ helm help

参考 Helm3 部署安装
https://cloud.tencent.com/developer/article/1705549

Helm3 releases
https://github.com/helm/helm/releases

3.Kasten K10 部署规划

3.1 技术资源准备与要求

Kasten K10 部署在 阿里云 ACK 中 需要以下先决条件 :

  • ACK 1.18.8 (Alibaba Container Service for Kubernetes ,ACK)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务。
  • ACR Alibaba Container Registry 容器镜像服务, 为您提供安全独享、高性能的容器镜像托管分发服务。
  • diskplugin.csi 组件 支持 ACK 集群通过控制台快捷选择存储类型,并创建对应块存储云硬盘类型的 PV 和 PVC。
  • NFS 文件存储, 用于存放备份的数据集
  • 技术人员要求 部署人员除了对腾讯云有一定了解以外,还应该具备 K8S 或 TKE 运维的相关知识。

3.2 K8S 集群资源需求

对于 Kasten K10 在 ACK 容器平台环境的部署,Kasten K10 将需要以下资源,鉴于 K10 所保护的应用数量不同,对应的数值也做相应的调整。

资源需求
K10 的资源需求总是与 Kubernetes 集群中的应用程序数量和正在执行的数据管理任务类型有关(例如,快照与备份)。一些资源需求是静态的,我们称之为基本资源需求,而其他资源的占用仅在完成某些数据管理工作时才被需要,因此我们称之为动态资源需求。K10 的自动扩展特性确保了在不执行任何工作时,动态需求资源的消耗缩减为零。虽然以下资源需求与限制的建议适用于大多数 K8S 集群,但需注意的是,最终需求将取决于您的集群和应用程序规模、数据总量、文件大小、分布和数据变化率。比较科学的方式是通过 Prometheus 或 Kubernetes Vertical Pod Autoscaling (VPA) 来检查您的资源需求。

需求类型

我们将需求分为三种类型,即基本工作需求,备份工作需求和灾难恢复需求,并做以下陈述:

  • 基本工作需求:这些是 K10 的内部调度和清理服务所需的资源,主要由监控和目录规模需求驱动。这些基本要求的资源占用通常是静态的,通常不会随着受保护的 Kubernetes 资源数量或受保护应用程序数量的增长而显着增长。

  • 备份工作需求:当数据从卷快照传输到对象存储或 NFS 文件存储时,需要调用备份工作所需的资源。虽然备份需求取决于您的数据量、变化率和文件系统布局,但这些需求并非没有限制,很容易适应相对廋供给的资源范围。当然在提供额外资源时,K10 还可以加快备份操作的完成。为了在保护大量工作负载时防止无限并行,K10 限制了同时备份作业的数量(默认为 9 个任务并行)。备份资源占用是动态的,在不执行备份时会缩减为零。

  • 灾难恢复需求:这些需求是在执行 K10 安装的灾难恢复所需的资源,主要用于压缩、重复数据删除、加密以及将 K10 目录传输到对象存储。提供额外资源还可以加快 DR 操作。DR 资源占用是动态的,并且在不执行 DR 时会缩减为零。

需求配置指南
下表列出了保护 100 个云原生应用程序或命名空间的 K10 安装的资源要求。需要注意的是,DR 作业也包含在最大并行度限制中,因此您只能 N 同时拥有备份作业 或 N-1 备份作业 + 1 个 DR 作业同时进行。

Type Requested CPU (Cores) Limit CPU (Cores) Requested Memory (GB) Limit Memory (GB)
Base 1 2 1 4
Dynamic (per parallel job) 1 1 0.4 0.4
DR 1 1 0.3 0.3
Total 3 4 1.8 4.8

阿里云环境安装需求

以下为阿里云 ACK 环境安装 Kasten 的需求,只为满足测试需求示例,可按实际用量扩容或缩减

POD数量: 18 -21(根据场景与作业调度不同)
CPU与内存资源: 见 Kasten K10 文档
PVC 存储资源要求:200GB (包括 K8S本身与应用安装 与 Kasten 对持久卷的要求。只为满足测试需求示例,可按实际用量扩容或缩减,)
NAS 存储资源要求:200GB (只为满足测试需求示例,可按实际用量扩容或缩减)

Kasten K10 系统需求
https://docs.kasten.io/latest/operating/footprint.html

在阿里云 ACK 的集群配置中,最小配置为一个节点,推荐两个节点

类型 机型 规格 CPU 内存 硬盘
基础配置 标准型SA2 SA2.MEDIUM4 2核 4GB 50GB 高性能云硬盘
推荐配置 标准型SA2 SA2.LARGE8 4核 8GB 100GB SSD云硬盘

4. Kasten K10 部署过程

4.1. 配置 ACR 镜像库

4.1.1. 腾讯镜像库 ACR 介绍

阿里云容器镜像服务(Alibaba Cloud Container Registry,简称ACR)提供安全的应用镜像托管能力,精确的镜像安全扫描功能,稳定的国内外镜像构建服务,便捷的镜像授权功能,方便用户进行镜像全生命周期管理。容器镜像服务简化了Registry的搭建运维工作,支持多地域的镜像托管,并联合容器服务等云产品,打造云上使用Docker的一体化体验

4.1.2 新建命名空间

首先,我们需要在阿里云镜像仓库中,新建命名空间,如下图。然后,输入命名空间的名称, 如 Kasten-k10

20210804220615

4.1.3. 部署私有镜像库到 ACR

使用 Kasten K10 官方的方法部署镜像库
要使用 Kasten K10 官方的方法部署镜像库,请参考如下文档

参考 Kasten 文档 Air-Gapped Install
https://docs.kasten.io/latest/install/offline.html

注意以下操作的主机需要可以接触 gcr.io
建议准备一个 Ubuntu Linux 方便操作

1. 列出 K10 容器镜像

以下命令将列出当前 K10 版本使用的所有 Docker images,如果需要手动标记 K10 Docker images 并将其推送到您的私有存储库,而不是使用下面记录的 Kasten 提供的工具,这会很有帮助。

# docker run --rm -it gcr.io/kasten-images/k10offline:4.0.9 list-images

2. 将所有 K10 镜像下载到本地机器的 Registry 中
以下命令执行 k10offline 工具并使用 docker -in- docker(通过 docker.sock)将所有 K10 镜像下载到本地机器的 Registry 中。

# docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock \
   gcr.io/kasten-images/k10offline:4.0.5 pull images

3. 将所有 K10 镜像拉入您的本地存储库,并重新标记

最后,为了完全自动化 K10 Docker 映像的下载和重新上传,以下命令会将所有 K10 映像拉入您的本地存储库,并重新标记 repo.example.com 并将它们推送到此指定的 Registry 。请注意,如果私有 Registry 需要身份验证,此工具将使用您的本地 docker 配置。

# docker login --username=mcarb registry.cn-beijing.aliyuncs.com

# docker run --rm -ti -v /var/run/docker.sock:/var/run/docker.sock \
    -v ${HOME}/.docker:/root/.docker \
    gcr.io/kasten-images/k10offline:4.0.9 pull images --newrepo registry.cn-beijing.aliyuncs.com/kasten-k10

4.1.4. 对于两个特殊镜像的上传 Restorectl 和 k10offline 镜像

以下两个软件包,不会出现在镜像库中,但时常会用到。所以我们通过 Docker 命令把它们手动推送到
TCR上

  • Restorectl 用于容灾和异地恢复
  • k10offline 离线工具包
$ docker login --username=10000***** ccr.ccs.tencentyun.com
$ docker pull gcr.io/kasten-images/k10offline:4.0.9
$ docker tag de37ccb3ee8e registry.cn-beijing.aliyuncs.com/kasten-k10/k10offline:4.0.9
$ docker push registry.cn-beijing.aliyuncs.com/kasten-k10/k10offline:4.0.9

$ docker pull gcr.io/kasten-images/restorectl:4.0.9
$ docker tag 3c273ce62a84 registry.cn-beijing.aliyuncs.com/kasten-k10/restorectl:4.0.9
$ docker push registry.cn-beijing.aliyuncs.com/kasten-k10/restorectl:4.0.9

4.1.5. 查看部署完成的 ACR 镜像库

确保 ACR 已经配置完善, ACR 镜像库的搭建十分重要

20210804194344

4.2. 设置存储 CSI 插件

将 alicloud-disk-ssd 设置为 Default storageclass

❯ kubectl get sc
NAME                          PROVISIONER                       RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
alicloud-disk-available       diskplugin.csi.alibabacloud.com   Delete          Immediate              true                   57m
alicloud-disk-efficiency      diskplugin.csi.alibabacloud.com   Delete          Immediate              true                   57m
alicloud-disk-essd            diskplugin.csi.alibabacloud.com   Delete          Immediate              true                   57m
alicloud-disk-ssd             diskplugin.csi.alibabacloud.com   Delete          Immediate              true                   57m
alicloud-disk-topology        diskplugin.csi.alibabacloud.com   Delete          WaitForFirstConsumer   true                   57m

# 将 alicloud-disk-ssd 设置为 Default storageclass
$ kubectl patch storageclass alicloud-disk-ssd -p '{"metadata": {"annotations":{"storageclass.beta.kubernetes.io/is-default-class":"true"}}}'
storageclass.storage.k8s.io/alicloud-disk-ssd **patched**

# 查看是否设置成功
$ kubectl get sc
NAME                          PROVISIONER                       RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
alicloud-disk-available       diskplugin.csi.alibabacloud.com   Delete          Immediate              true                   57m
alicloud-disk-efficiency      diskplugin.csi.alibabacloud.com   Delete          Immediate              true                   57m
alicloud-disk-essd            diskplugin.csi.alibabacloud.com   Delete          Immediate              true                   57m
alicloud-disk-ssd (default)   diskplugin.csi.alibabacloud.com   Delete          Immediate              true                   57m
alicloud-disk-topology        diskplugin.csi.alibabacloud.com   Delete          WaitForFirstConsumer   true                   57m

4.3. 设创建 VolumeSnapshotClass

vim volumesnapshotclass.yaml 
apiVersion: snapshot.storage.k8s.io/v1beta1
kind: VolumeSnapshotClass
metadata:
  annotations:
    k10.kasten.io/is-snapshot-class: "true"
  name: default-snapclass
driver: diskplugin.csi.alibabacloud.com
deletionPolicy: Delete

$ kubectl apply -f  volumesnapshotclass.yaml 
volumesnapshotclass.snapshot.storage.k8s.io/default-snapclass created

4.4 安装 K10 到 K8S 集群

1. 获取 Helm Chart 供本地使用

添加 Kasten Helm charts 存储库
$ helm repo add kasten https://charts.kasten.io/

$ helm repo list   
NAME            URL                               
kasten          https://charts.kasten.io/         

$ helm repo update
# 以下这条命令会把 k10-4.0.x.tgz 包下载下来,如果不加任何参数,则会下载最新的版本
# 在Air Gapped 的环境中安装时,可以先行下载再使用。
$ helm fetch kasten/k10 --version=4.0.5  
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "kasten" chart repository
Update Complete. ⎈Happy Helming!⎈

2.建立名空间

$ kubectl create namespace kasten-io
namespace/kasten-io created

3. 安装 Kasten K10

在选CSI的云硬盘时,有个最小为20GB的限制,对于 Kasten 来说,有些PVC的要求仅为1GB,所以我们将其更改为20G以上为腾讯云部署作适配, 同时配置的参数还有为扩展 gateway 的 LB 用于外网访问 Kasten 图形界面,与安全性相关的 Token 登录认证的设置。


$ helm repo update
$ helm fetch kasten/k10 --version=4.0.9
$ helm install k10 k10-4.0.9.tgz --namespace kasten-io --set global.airgapped.repository=registry.cn-beijing.aliyuncs.com/kasten-k10 \
  --set global.persistence.metering.size=20Gi \
  --set prometheus.server.persistentVolume.size=20Gi \
  --set global.persistence.catalog.size=20Gi \
  --set externalGateway.create=true \
  --set auth.tokenAuth.enabled=true \
  --set metering.mode=airgap \
  --set injectKanisterSidecar.enabled=true \
  --set-string injectKanisterSidecar.namespaceSelector.matchLabels.k10/injectKanisterSidecar=true \
  --set global.persistence.storageClass=alicloud-disk-ssd

目前在不同的 K8S 环境下部署 K10 有很多参数需要设置,此时我们需要查阅部署参数。

查看 Kasten Helm 部署的参数
Complete List of K10 Helm Options
https://docs.kasten.io/latest/install/advanced.html

4. 确认 Kasten K10 Pod 的部署情况

$ kubectl get po -n kasten-io   
NAME                                  READY   STATUS    RESTARTS   AGE
aggregatedapis-svc-5fb7588968-vr77l   1/1     Running   0          4m17s
auth-svc-75c4bddcd5-cqvf2             1/1     Running   0          4m16s
catalog-svc-669df9d957-94w8b          2/2     Running   0          4m17s
config-svc-859f654d66-2g854           1/1     Running   0          4m16s
crypto-svc-d8d64bf85-959rn            2/2     Running   0          4m17s
dashboardbff-svc-5b6d7dbf49-dt6dp     1/1     Running   0          4m17s
executor-svc-6cbb8f767d-69ffj         2/2     Running   0          4m16s
executor-svc-6cbb8f767d-ktmh4         2/2     Running   0          4m16s
executor-svc-6cbb8f767d-ntq56         2/2     Running   0          4m16s
frontend-svc-5996c97f4c-rnr2p         1/1     Running   0          4m16s
gateway-7cc9f99d4f-zv6r5              1/1     Running   0          4m17s
jobs-svc-79bccf5b55-ljvl2             1/1     Running   0          4m16s
kanister-svc-745c84f7dc-wwn5f         1/1     Running   0          4m17s
logging-svc-bb9dfd7d4-4wp7c           1/1     Running   0          4m17s
metering-svc-77c974448d-lfjbf         1/1     Running   0          4m17s
prometheus-server-7b78866f7c-8jgqn    2/2     Running   0          4m17s
state-svc-7cfc58dcd9-7n5dq            1/1     Running   0          4m17s

5. 访问 K10 控制台

通过查看 K8S Service,我们可以看到 K10的ingress配置,其中的Gateway-ext,查看 访问 K10的 IP地址

❯ kubectl get svc -n kasten-io |grep gateway
gateway                 ClusterIP      192.168.161.51    <none>          8000/TCP                       5m40s
gateway-admin           ClusterIP      192.168.185.15    <none>          8877/TCP                       5m40s
gateway-ext             LoadBalancer   192.168.144.137   39.106.53.131   80:30925/TCP                   5m40s

#浏览器访问如下地址
http://39.106.53.131/k10/#/

在终端输入如下命令获取 Token

$ sa_secret=$(kubectl get serviceaccount k10-k10 -o jsonpath="{.secrets[0].name}" --namespace kasten-io) && \
  kubectl get secret $sa_secret --namespace kasten-io -ojsonpath="{.data.token}{'\n'}" | base64 --decode

输入您的公司名和邮件地址

20210703034500

之后可以看到,Kasten K10 管理界面已经完美的出现在浏览器中。

20210804195033

可以看到最新 4.0.9 版本已经安装成功
20210804222711

5. 配阿里云 NAS 作为存储库

点击 文件存储 NAS -> 创建文件系统

20210804195330

存储库连接建立好,如下图

20210804195401

创建 NAS 存储类

点击 集群 -> 存储类 -> 创建

20210804195627

指定 存储类名称以及 NAS 挂载点域名
20210804195532

NAS 存储类配置完成

20210804195646

创建 存储声明 PVC

20210804195822

创建 存储声明
20210804195903

存储声明创建完成
20210804200030

创建 NAS 存储库
20210804200101

创建 NAS 存储库创建完成
20210804200218

6. ACK 上应用备份与恢复

6.1 建立一个测试应用 mysql

$ helm repo add apphub-incubator https://apphub.aliyuncs.com/incubator/ 
"apphub-incubator" has been added to your repositories

$ helm install mysql apphub-incubator/mysql --namcespace mysql \
  --set master.persistence.size=20Gi \
  --set slave.persistence.size=20Gi \
  --set auth.rootPassword='Start123'

$ kubectl get po -n mysql
NAME             READY   STATUS    RESTARTS   AGE
mysql-master-0   1/1     Running   0          72s
mysql-slave-0    1/1     Running   0          72s

$ kubectl get pvc -n mysql
NAME                  STATUS   VOLUME                   CAPACITY   ACCESS MODES   STORAGECLASS        AGE
data-mysql-master-0   Bound    d-2zebuct0j6jyyw615qco   20Gi       RWO            alicloud-disk-ssd   93s
data-mysql-slave-0    Bound    d-2ze6imb1cs5aa0w83nnq   20Gi       RWO            alicloud-disk-ssd   93s

6.2. 云原生应用的发现

在 K10 中 应用为分成 Compliant 与 Non-compliant 与 Unmanaged 从而区分应用是否被保护,或是否达成保护的目标。

20210804205037

Compliant 是已经完成保护的应用,Non-Compliant 是定义了保护策略,但是没有达到保护的目标,而 Unmanaged 是未被保护的应用。这样当新的应用被部署时,我们可以在 K10 的界面中,轻松地发现的新应用从而保护它。下面,我们在 TKE 中部署一个新的应用,让 K10 来发现它。

从下图可以看到,目前除 default 之外,还有 1 个应用, mysql, mysql 没有被保护,

20210804205131

6.3 云原生应用的备份与还原

要保护应用程序,只需单击 Create a policy 您将进入数据保护策略创建部分。

20210704154713

6.3.1 周期性的快照

如上图,为了保护应用程序,我们首先要选择快照操作以及数据的备份范围。快照是 K10 中数据捕获的基础,通常应用于应用程序使用的磁盘卷 (PVC/PV) ,但也可以应用于应用程序级数据捕获(例如,使用 Kanister,在下文中,将进行说明。)运用快照操作进行数据捕获对应用的性能影响非常低、不需要停应用、可以快速创建恢复时间点,以实现增量数据捕获。以下是可选的周期性的设置。

当然如果你是第一次进行备份策略的设置,保持默认就好

20210704161607

6.3.2 将快照导出为备份

默认情况下,通过导出执行的备份将设置为将每个快照导出到备份中。但是,也可以选择一部分快照进行导出(例如,仅将每个每日快照转换为备份)。

值得注意的是,存储快照通常受到限制,例如,每个卷的最大快照数量限制相对较低。同时,快照并不总是持久的。如,灾难性的存储系统故障将破坏您的快照以及您的主要数据。此外,在许多存储系统中,快照的生命周期与源卷相关联。因此,如果该卷被删除,所有相关快照可能会同时自动进行回收。因此,强烈建议您同时创建应用程序快照的备份。

20210804205557

6.3.3 应用的选择与排除

我们可以通过两种模式,排除与选择应用名称与标签。

20210704162146

6.3.4 备份策略的使用

在策略创建完成后,我们会在策略管理中看到 一个新策略 『mysql-backup』, 我们可以通过 Run Once 来试一下这个备份策略的能否正常运行。

20210804205646

6.3.5 备份结果查看

通过在 Dashboard 上查看备份结果, 我们可以看到,备份已经完成,并已经将数据导出到存储库上。

20210804210430

6.3.6 应用的还原

还原应用时,首先要确认的还原点,在 Applications 中我们可以看到有 12 个还原点已经存在,点击 Restore

20210804210850

在这里我们选择需要的还原点

20210804211001

还原到新建的命名空间
在还原的时候,我们可以选择还原到原来的名空间也可以还原到新建的命名空间

20210804211043

在这里我们保持默认,直接点击 『Restore』, 直到还原完成。
20210804211302

当还原完成,我们可以看到 etc-retstore 这个命名空间下的应用已经启动。
20210804211242

7. 总结

以上就是关于 Kasten 在阿里云 ACK 上安装的详细记录,供大家在部署时参考。后续还会对 Kasten 的备份恢复进行说明,敬请期待!

8. 参考链接

Complete List of K10 Helm Options
https://docs.kasten.io/latest/install/advanced.html

Helm3 releases
https://github.com/helm/helm/releases

Kasten K10 系统需求
https://docs.kasten.io/latest/operating/footprint.html

发表回复

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