分类 Kasten 下的文章

Kasten k10 实战系列 06 - Kasten K10 应用的备份与恢复

1. 前言

为了发展有新的商业模式,企业都纷纷开始部署云原生的应用。在云原生的世界里,我们面临着不断实施和部署新应用的需要,以及吸引新的客户。 但与以往不同的是 Kubernetes 上需要采用云原生方式来进行软件的开发、部署与运维,这时陈旧的运维技术与工具是否能否经受住新模式的考验呢? 对企业的 CIO 来说,将关键应用转移到Kubernetes 的最大挑战之一就是在 Kubenetes 上的灾难与恢复能力。在这章中,我们将讨论何在 K10 策略设定中使用灾备的概念来保护 K8S 上的应用程序。

- 阅读剩余部分 -

Kasten k10 实战系列 05 - Kasten K10 安装 on TKE 最佳实践

1. 前言

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

本文目录

  1. 前言
  2. 在 腾讯云部署 TKE 服务

    • 2.1 创建一个TKE K8S 集群
    • 2.2 通过 Kubectl 连接 TKE
    • 2.2.1 配置k8s kubectl 客户端
    • 2.2.2 配置 Kubeconfig
    • 2.2.3 kubectl 连接测试
    • 2.3. 安装 Helm 工具
      3.Kasten K10 部署规划
    • 3.1 技术资源准备与要求
    • 3.2 K8S 集群资源需求
  3. Kasten K10 部署过程

    • 4.1. 身份验证 CAM 规划
    • 4.2. 配置 TCR 镜像库
    • 4.3.启用 CBS-CSI 插件
    • 4.4.Pre-Flight Checks
    • 4.5 安装 K10 到 K8S 集群
  4. 配置腾讯云 COS 作为存储库
  5. 总结
  6. 参考链接

Kasten 实战系列回顾:

2. 应用腾讯云部署 TKE 服务

腾讯云容器服务介绍
Tencent Kubernetes Engine ,TKE 是基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务。腾讯云容器服务完全兼容原生 kubernetes API ,扩展了腾讯云的云硬盘、负载均衡等 kubernetes 插件,为容器化的应用提供高效部署、资源调度、服务发现和动态伸缩等一系列完整功能,解决用户开发、测试及运维过程的环境一致性问题。

2.1 创建一个TKE K8S 集群

在腾讯云中, TKE 集群的创建十分方便,通过控制台就可以进行,选择 集群 -> 集群管理 -> 新建, 即可创建集群

20210702111544

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

20210702105701

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

20210702105834

所有Pod 都已经在正常运行

20210702111841

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

20210702110904

2.2 通过 Kubectl 连接 TKE

为了操作的安全性,我们选择一台与这个集群在相同 VPC 的一台 Linux 主机, 做为操作集群的客户端。首先我们需要安装 kubectl。

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
*         cls-eqlmxhvb-100006537440-context-default   cls-eqlmxhvb   100006537440  

$ kubectl config --kubeconfig=$HOME/.kube/config  use-context cls-eqlmxhvb-100006537440-context-default
Switched to context "cls-eqlmxhvb-100006537440-context-default".

kubectl config --kubeconfig=$HOME/.kube/config  get-contexts |grep cls |awk '{print $2}' | xargs kubectl config --kubeconfig=$HOME/.kube/config  use-context
Switched to context "cls-hbjxi3pz-100006537440-context-default".

# 把私网集群访问信息加入到 hosts文件
$ sudo sed -i '$a 172.27.0.9 cls-eqlmxhvb.ccs.tencent-cloud.com' /etc/hosts

2.2.3 kubectl 连接测试

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

$ kubectl get nodes   
NAME         STATUS   ROLES    AGE   VERSION
172.27.0.6   Ready    <none>   65m   v1.18.4-tke.11

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 部署在 Tencent Cloud 需要以下先决条件 :

  • TKE Tencent Kubenetes Engine 1.18.4(Tencent Kubernetes Engine ,TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务。
  • TCR Tencent Container Registry 容器镜像服务, 为您提供安全独享、高性能的容器镜像托管分发服务。
  • CBS-CSI 组件 CBS-CSI 组件 支持 TKE 集群通过控制台快捷选择存储类型,并创建对应块存储云硬盘类型的 PV 和 PVC。本文提供 CBS-CSI 组件功能特性等说明并介绍几种常见示例用法。
  • COS 对象存储, 用于存放备份的数据集,用于存储部署Kasten K10的自动化检测脚本,和
  • 技术人员要求 部署人员除了对腾讯云有一定了解以外,还应该具备 K8S 或 TKE 运维的相关知识。

3.2 K8S 集群资源需求

对于Kasten K10 在 TKE 容器平台环境的部署,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 作业同时进行。

TypeRequested CPU (Cores)Limit CPU (Cores)Requested Memory (GB)Limit Memory (GB)
Base1214
Dynamic (per parallel job)110.40.4
DR110.30.3
Total341.84.8

腾讯云环境安装需求

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

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

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

在腾讯云 TKE 的集群配置中,最小配置为一个节点,推荐两个节点

类型机型规格CPU内存硬盘
基础配置标准型SA2SA2.MEDIUM42核4GB50GB 高性能云硬盘
推荐配置标准型SA2SA2.LARGE84核8GB100GB SSD云硬盘

4. Kasten K10 部署过程

4.1. 身份验证 CAM 规划

为部署 TKE 与 K10 在 CAM 中有两个至关重要的角色。 TKE_QCSRole 与 TCR_QCSRole, 分别关系着 TKE 服务与 TCR 服务。

确保如下策略在角色载体为 CCS的 TKE_QCSRole中被关联

  • QcloudCBSFullAccess
  • CLBAutoPreAuthorization
  • QcloudAccessForTKERoleInOpsManagement
  • QcloudAccessForTKERole

确保如下策略在角色载体为 CCS的 TCR_QCSRole中被关联

  • QcloudCBSFullAccess

20210627195218

4.2. 配置 TCR 镜像库

确保 TCR 已经配置完善, TCR 镜像库的搭建十分重要 详细情况请查看 Mars 之前的博客

Kasten k10 实战系列 03 CSI 存储快照适配
http://www.data2clouds.com/index.php/archives/33/

20210627200943

4.3.启用 CBS-CSI 插件

确保 CBS CSI 已经启用, CBS CSI 存储集成的内容十分重要,详细情况请查看 Mars 之前的博客

Kasten K10 实战系列 02 - 利用腾讯 TCR 搭建镜像库
http://www.data2clouds.com/index.php/archives/32/

20210627195734

确保 StorageClass CBS-CSI 已经被定义,并配置为默认存储类型

20210627195935

4.4.Pre-Flight Checks

通过 Pre-Flight Checks 脚本,我们可以验证部署的前提条件是否满足,在国内区域我们可以将脚本部署在 COS 存储桶中,如下图。

20210703025409

脚本的原始位置以下链接在您使用的时候,可以进行如下更改, 即把 Image 一行,改成自己镜像库的位置就好了。


$ curl -O https://docs.kasten.io/tools/k10_primer.sh | bash

$vvim k10_primer.sh  
if version_gt_eq ${k10ver} ${MIN_K10_VERSION}; then
  image=gcr.io/kasten-images/k10tools:${k10ver}     # 把这一行改成 ccr.ccs.tencentyun.com/kasten-k10/k10tools
else

执行 Pre-Flight Checks,查看结果,让我们分析一下。

$ curl https://kasten-1257130361.cos.ap-chengdu.myqcloud.com/k10_primer.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  6025  100  6025    0     0  20130      0 --:--:-- --:--:-- --:--:-- 20083
Namespace option not provided, using default namespace
# 检查所需要的工具 kubectl 和 helm
Checking for tools
 --> Found kubectl
 --> Found helm
# 检查所需要的 helm Chart registry 
Checking if the Kasten Helm repo is present
 --> The Kasten Helm repo was found
Checking for required Helm version (>= v3.0.0)
 --> No Tiller needed with Helm v3.5.4
# K10Primer image 已经重新定向
K10Primer image
 --> Using Image (ccr.ccs.tencentyun.com/kasten-k10/k10tools:4.0.5) to run test
Checking access to the Kubernetes context 
# 检查 kubeconfig
cls-jrc2egbj-100006537440-context-default
 --> Able to access the default Kubernetes namespace
# 创建 k10Primer pod 运行检查程序 
Running K10Primer Job in cluster with command- 
     ./k10tools primer 
serviceaccount/k10-primer created
clusterrolebinding.rbac.authorization.k8s.io/k10-primer created
job.batch/k10primer created
Waiting for pod k10primer-5z7gl to be ready - ContainerCreating
Pod Ready!
# 版本支持
Kubernetes Version Check:
  Valid kubernetes version (v1.18.4-tke.11)  -  OK
# 访问权限检查 
RBAC Check:
  Kubernetes RBAC is enabled  -  OK
# Aggregated Layer
Aggregated Layer Check:
  The Kubernetes Aggregated Layer is enabled  -  OK
# CSI 存储集成检查 
CSI Capabilities Check:
  Using CSI GroupVersion snapshot.storage.k8s.io/v1beta1  -  OK

Validating Provisioners: 
cloud.tencent.com/qcloud-cbs:
  Storage Classes:
    cbs
      Supported via K10 Generic Volume Backup. See https://docs.kasten.io/latest/install/generic.html.

com.tencent.cloud.csi.cbs:
  Is a CSI Provisioner  -  OK
  Missing/Failed to Fetch CSIDriver Object
  Storage Classes:
    cbs-csi
      Valid Storage Class  -  OK
  Volume Snapshot Classes:
    cbs-snapclass
      Has k10.kasten.io/is-snapshot-class annotation set to true  -  OK
      Has deletionPolicy 'Delete'  -  OK
    k10-clone-cbs-snapclass
# 检查卷影快照
Validate Generic Volume Snapshot:
  Pod Created successfully  -  OK
  GVS Backup command executed successfully  -  OK
  Pod deleted successfully  -  OK
# 清场。。。
serviceaccount "k10-primer" deleted
clusterrolebinding.rbac.authorization.k8s.io "k10-primer" deleted
job.batch "k10primer" deleted

4.5 安装 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

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

$ helm install k10 k10-4.0.5.tgz --namespace kasten-io --set global.airgapped.repository=ccr.ccs.tencentyun.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 injectKanisterSidecar.enabled=true \
  --set-string injectKanisterSidecar.namespaceSelector.matchLabels.k10/injectKanisterSidecar=true \
  --set global.persistence.storageClass=cbs-csi

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

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

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

$ kubectl get pods -n kasten-io 
NAME                                  READY   STATUS    RESTARTS   AGE
aggregatedapis-svc-5d585974d9-hllwd   1/1     Running   0          3m17s
auth-svc-865fc676d6-zzx54             1/1     Running   0          3m18s
catalog-svc-7cb86f96cf-lfg2c          2/2     Running   0          3m17s
config-svc-f9f97c748-5nqkr            1/1     Running   0          3m18s
crypto-svc-796c7f6c68-dt86r           1/1     Running   0          3m18s
dashboardbff-svc-97b8f8ccb-94mxw      1/1     Running   0          3m16s
executor-svc-6cd8547867-47twc         2/2     Running   0          3m17s
executor-svc-6cd8547867-v68mx         2/2     Running   0          3m16s
executor-svc-6cd8547867-w97kh         2/2     Running   0          3m16s
frontend-svc-6d5bc5b4f6-8xnnf         1/1     Running   0          3m17s
gateway-779686f446-wwxpc              1/1     Running   0          3m17s
jobs-svc-85bc8446bf-8n2v4             1/1     Running   0          3m17s
kanister-svc-7668fd974b-qfqg5         1/1     Running   0          3m17s
logging-svc-69cd88456-btffc           1/1     Running   0          3m17s
metering-svc-5f958567b4-8vgmt         1/1     Running   0          3m18s
prometheus-server-5f55997d87-j9r88    2/2     Running   0          3m18s
state-svc-85d456bf86-9mdmv            1/1     Running   0          3m17s

5. 访问 K10 控制台

通过 查看 K8S Service 中的Gateway-ext,查看 访问 K10的IP地址

$ kubectl get svc -n kasten-io |grep gateway 
gateway                 ClusterIP      172.16.254.25    <none>          8000/TCP                       23m
gateway-admin           ClusterIP      172.16.253.77    <none>          8877/TCP                       23m
gateway-ext             LoadBalancer   172.16.254.231   139.155.64.86   80:31718/TCP                   23m

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

20210709204258
在终端输入如下命令获取 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 管理界面已经完美的出现在浏览器中。

20210703034536

5. 配置腾讯云 COS 作为存储库

我们可以能过设置 S3 Compatible 存储库的方式,将 腾讯云 COS 设置成为备份存储库,满足 3-2-1-1-0 的备份黄金法则。

点击 Settings -> Locations -> New Profile 新建云存储链接

20210703040903

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

20210703041124

6. 总结

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

7. 参考链接

Complete List of K10 Helm Options
https://docs.kasten.io/latest/install/advanced.html
Kasten k10 实战系列 03 CSI 存储快照适配
http://www.data2clouds.com/index.php/archives/33/
Kasten K10 实战系列 02 - 利用腾讯 TCR 搭建镜像库
http://www.data2clouds.com/index.php/archives/32/
参考 Helm3 部署安装
https://cloud.tencent.com/developer/article/1705549
Helm3 releases
https://github.com/helm/helm/releases
Kasten K10 系统需求
https://docs.kasten.io/latest/operating/footprint.html

Kasten k10 实战系列 07 - Kanister 应用感知框架的使用

1. 前言

由于 Kubernetes 本身的特性,基于 Kubernetes 开发和运行的应用对于企业的商业目标非常重要。随着 Kubernetes 中有状态应用程序的部署在云原生基础架构中的越发成熟,对有状态的云原生应用如何进行备份就成为了一个让人担心的问题。实际上在生产系统运行有状态应用并不是一件容易的事情,这需要我们仔细的计划并部署,管理者需要清晰地知道数据备份到哪个位置,备份的时间计划以及备份时间窗口,以确保与应用关联的数据也被正确备份了,从而达成应用的一致性,Kanister 就是解决这此问题的有利武器。

- 阅读剩余部分 -

Kasten K10 实战系列 02 - Kasten K10 搭建私有镜像库

1.前言 - gcri.io 的访问

由于一些众所周知的原因, 有些企业在国内无法访问 gcr.io 上的镜像, 在安装 kubernetes 时,很多官方镜像又是都存在 gcr.io 上, Kasten K10 也是如此。当然 Kasten K10 也考虑到用户不能访问 gcr.io 因素,同时把镜像也放到了 Jfrog artifactory 上作为 alternative 的镜像下载站。这对于在线安装的用户来说就简单多了。考虑到国内用户私有化部署的情况比较多,在本文中我们归纳了将 Kasten K10 的 Helm Chart 部署在腾讯 TCR 或是 Harbor上的方法,这样我们就可以直接使用国内的镜像库了。本文将以腾讯的私人镜像库为例进行说明。

文章目录

  1. 前言 - gcri.io 的访问
  2. 腾讯镜像库 TCR 就绪过程

    • 2.1 腾讯镜像库 TCR 介绍
    • 2.2 腾讯镜像库 TCR 新建命名空间
    • 2.3 新建 镜像仓库
    • 2.4 选择使用指引, 了解 登录 docker login 登录所需要的命令
    • 2.5 访问管理 CAM 策略检查
  3. 部署私有镜像库到 TCR

    • 3.1. 使用 Kasten K10 官方的方法部署镜像库
    • 3.2. 使用 Veeam 工程师方法部署镜像库
    • 3.3. 针对无网络环境,使用手动方式部署镜像库
    • 3.4 对于两个特殊镜像的上传 Restorectl 和 k10offline 镜像
  4. 查看部署完成的 TCR 镜像库
  5. 总结
  6. 参考链接
  7. 附录:将 docker images save 再 load 的方法参考

Kasten 实战系列导航

2. 腾讯镜像库 TCR 就绪过程

2.1 腾讯镜像库 TCR 介绍

腾讯容器镜像服务(Tencent Container Registry,TCR)是腾讯云提供的安全独享、高性能的容器镜像托管分发服务,支持 Docker 镜像、Helm Chart 存储分发及镜像安全扫描,为企业级客户提供了细颗粒度的访问权限管理和网络访问控制。

2.2 新建命名空间

首先,我们需要在腾讯云镜像仓库中,新建命名空间,如下图。

20210628145211

然后,输入命名空间的名称, 如 Kasten

20210628145439

2.3 新建镜像仓库

在这里,我们需要新建一个镜像仓库为试做准备,值得说明的是下面的环境将为自动化的建立镜像仓库,这里只是测试功能是否可以非常使用。

20210628152430

名称:填入测试镜像库的名称, 类型,选公有, 命名空间,选择刚刚创建的名空间
20210628152655

2.4 查看镜像仓库指引

在这里,让我们选择使用指引, 以便了解登录,即 docker login 所需要的命令
20210628153347

2.5 访问管理 CAM 策略检查

确保角色 TCR_QCSRole 已经创建
20210628151922

确保如下策略在角色 TCR_QCSRole 中被关联

20210628151948

3. 部署私有镜像库到 TCR

3.1. 使用 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.5 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=10000******* ccr.ccs.tencentyun.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.5 pull images --newrepo repo.example.com

3.2. 使用 Veeam 工程师方法部署镜像库

Veeam SE 团队的 魏磊 已经创造了更方便的方法部署 Kasten K10 镜像库,请参考如下文档

Kasten K10入门系列04 - K10安装包下载
https://mp.weixin.qq.com/s/q87OEm2ktn4QBI-jrD6V_w

3.3. 针对无网络环境,使用手动方式部署镜像库

有些时候,某客户部署 K8S 环境是完全没有网络的,针对这样的用户我们准备通过 Docker Save 导出的 Tar 包是最新的 4.0.5 版本

1. 离线软件包下载
以下软件包是由 Veeam SE 团队的 魏磊 提供的,如果有需要离线下载资源的也可以使用我们已经在中国部署的镜像库,或是联系我们。

请通过如下渠道下载:
https://cloud.189.cn/t/zIVZ3uaIzUr2(访问码:8fbw)

2. 离线软件包的查看与命名规则

下载过程结束后,您将得到一个软件包,里面包含24个文件,每个文件文件名由3部分组成(镜像名|版本+镜像ID)。我们需要根据 『-』按照从后到前的顺序将其拆分。

20210628161945

2. 离线软件包的查看与命名规则
下载后把这些文件,用 docker load、docker tag、docker push命令,导入到你的存储库,以下是范例

$ docker load -i jimmidyson--configmap-reload--v0.4.0--37e6075b1356.tar

$ docker images 查看一下导入的情况,注意要进行docker login

$ docker images 
$ docker login --username=10000******* ccr.ccs.tencentyun.com

打 tag, push

$ docker tag 3b6d0bf8e711 ccr.ccs.tencentyun.com/kasten-k10/restorectl:4.0.5
$ docker push ccr.ccs.tencentyun.com/kasten-k10/restorectl:4.0.5

注意:大部分的镜像版本都是 4.0.5,有5个版本不是 原生 kasten images POD 将以 k10 开头

root@ubuntu:/home/mars/Desktop# docker images 
REPOSITORY                                           TAG           IMAGE ID       CREATED         SIZE
ghcr.io/kanisterio/kanister-tools/                   k10-0.61.0    99624811c928   8 days ago      425MB
quay.io/dexidp/dex                                   k10-v2.24.0   bb0b95a82a8a   13 months ago   34.2MB
quay.io/datawire/ambassador                          k10-1.13.6    09ecebfe1767   4 weeks ago     373MB
quay.io/prometheus/prometheus                        k10-v2.26.0   6d6859d1a42a   2 months ago    169MB
jimmidyson/configmap-reload                          k10-v0.5.0    d771cc9785a1   5 months ago    9.99MB
gcr.io/kasten-images/k10offline                      4.0.5         133f5a682ed8   6 days ago      237MB
gcr.io/kasten-images/frontend                        4.0.5         ae95f8a8189f   8 days ago      234MB
gcr.io/kasten-images/auth                            4.0.5         5432edc01c41   8 days ago      194MB
gcr.io/kasten-images/jobs                            4.0.5         81f48f237e5d   8 days ago      188MB
gcr.io/kasten-images/catalog                         4.0.5         9016df63b503   8 days ago      240MB
gcr.io/kasten-images/aggregatedapis                  4.0.5         3150ee79d881   8 days ago      247MB
gcr.io/kasten-images/config                          4.0.5         15b0ccea27d6   8 days ago      244MB
gcr.io/kasten-images/executor                        4.0.5         2baf456fbc25   8 days ago      249MB
gcr.io/kasten-images/dashboardbff                    4.0.5         9bb2eac71054   8 days ago      248MB
gcr.io/kasten-images/metering                        4.0.5         fe8879f15b18   8 days ago      242MB
gcr.io/kasten-images/state                           4.0.5         0d9722ba46ab   8 days ago      189MB
gcr.io/kasten-images/crypto                          4.0.5         ca32ec19516a   8 days ago      197MB
gcr.io/kasten-images/datamover                       4.0.5         348af65fe6cd   8 days ago      905MB
gcr.io/kasten-images/k10tools                        4.0.5         c92a7d2356a4   8 days ago      233MB
gcr.io/kasten-images/upgrade                         4.0.5         87aab37087f7   8 days ago      115MB
gcr.io/kasten-images/restorectl                      4.0.5         3b6d0bf8e711   8 days ago      229MB
gcr.io/kasten-images/logging                         4.0.5         557dfc441841   8 days ago      255MB
gcr.io/kasten-images/kanister                        4.0.5         ea462073460e   8 days ago      371MB
gcr.io/kasten-images/cephtool                        4.0.5         aae661a7ce5f   6 months ago    524MB

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

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

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

$ docker pull gcr.io/kasten-images/k10offline:4.0.5
$ docker tag 3b6d0bf8e711 ccr.ccs.tencentyun.com/kasten-k10/restorectl:4.0.5
$ docker push ccr.ccs.tencentyun.com/kasten-k10/restorectl:4.0.5

4. 查看部署完成的 TCR 镜像库

确保 TCR 已经配置完善

20210627200943

5. 总结

将 Kasten K10 的 Helm Chart 部署在 腾讯 TCR 解决我们有时,不能方便访问 gcr.io 的问题,使我们可以更加方便安装Kasten K10。欢迎大家扫描下方二维码申请 K10 免费试用,亲身动手试一试。

20210628171302

6. 参考链接

Jfrog artifactory
https://kb.kasten.io/knowledge/jfrog
参考 Kasten 文档 Air-Gapped Install
https://docs.kasten.io/latest/install/offline.html#preparing-k10-container-images-for-air-gapped-use
Kasten K10入门系列04 - K10安装包下载
https://mp.weixin.qq.com/s/q87OEm2ktn4QBI-jrD6V_w
腾讯云 TCR 文档与资源

https://cloud.tencent.com/document/product/1141

Docker 操作要点
https://docs.docker.com/get-started/
Kasten by Veeam 官网
https://docs.kasten.io/latest/
Complete List of K10 Helm Options
https://docs.kasten.io/latest/install/advanced.html

7.附录:将 docker images save 再 load 的方法参考

#查看 docker images
root@ubuntu:/home/mars/Desktop# docker images |grep jimmi
jimmidyson/configmap-reload                       v0.4.0        37e6075b1356   11 months ago   10.7MB
# docker save images to tar file 
root@ubuntu:/home/mars/Desktop# docker save jimmidyson/configmap-reload:v0.4.0 > jimmidyson--configmap-reload--v0.4.0--37e6075b1356.tar
root@ubuntu:/home/mars/Desktop# ls
jimmidyson--configmap-reload--v0.4.0--37e6075b1356.tar
# 模拟删除 docker images
root@ubuntu:/home/mars/Desktop# docker rmi jimmidyson/configmap-reload:v0.4.0
Untagged: jimmidyson/configmap-reload:v0.4.0
# docker images 已经看不到它了
root@ubuntu:/home/mars/Desktop# docker images |grep jimmi
root@ubuntu:/home/mars/Desktop# 

#查看 docker tar
root@ubuntu:/home/mars/Desktop# ls -lah
total 11M
-rw-r--r--  1 root root  11M Jun 24 23:23 jimmidyson--configmap-reload--v0.4.0--37e6075b1356.tar
# 用 docker load 把镜像读回来
root@ubuntu:/home/mars/Desktop# 
root@ubuntu:/home/mars/Desktop# docker load -i jimmidyson--configmap-reload--v0.4.0--37e6075b1356.tar

Kasten K10 实战系列 01 - 在腾讯云上部署 K10 概览

[toc]

1.前言 - Kasten K10 与 TKE 背景介绍

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

腾讯云容器服务(Tencent Kubernetes Engine ,TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务。腾讯云容器服务完全兼容原生 kubernetes API ,扩展了腾讯云的云硬盘、负载均衡等 kubernetes 插件,为容器化的应用提供高效部署、资源调度、服务发现和动态伸缩等一系列完整功能,解决用户开发、测试及运维过程的环境一致性问题。

本文写作目标 本文将以 TKE K8S 集群为实战目标,为读者展现在腾讯云 TKE 平台上部署 Kasten K10 的逐步说明,旨在为读者提供具有价值的实战参考。 本文是由 Mars Zhang与 腾讯云大咖合作创建的,具体的解决方案还需要遵循 Kasten K10 文档 与 腾讯云文档中的最佳实践,目前文档编目如下:

  • Kasten K10 实战系列 01 - 在腾讯云上部署 K10 概览
  • Kasten K10 实战系列 02 - 利用腾讯 TCR 搭建镜像库
  • Kasten k10 实战系列 03 - CSI 存储快照适配
  • Kasten k10 实战系列 04 - 利用 Kubestr 进行云原生存储能力评测
  • Kasten k10 实战系列 05 - Kasten K10 安装及最佳实践
  • Kasten k10 实战系列 06 - Kasten K10 备份与恢复
  • Kasten k10 实战系列 07 - Kasten K10 容灾与迁移
  • Kasten k10 实战系列 08 - Kasten K10 Kanister 应用感知框架的使用
  • Kasten k10 实战系列 09 - Multi-Cluster 多 K8S 环境管理
  • Kasten k10 实战系列 10 - Kasten 实战总结

2.Kasten 在云原生领域中的用例

通过部署 Kasten K10 企业可以安全地备份和还原,可以安全地备份和还原,执行灾难恢复以及迁移 Kubernetes 集群资源和持久卷,可以在 TKE 集群或自建 Kubenetes 集群中部署 Kasten K10 涵盖但不仅限于使用在如下场景:

  • 备份恢复: 保护集群资源并在丢失的情况下进行还原
  • 应用迁移: 将集群资源迁移到其他集群。
  • DevOpS: 将生产集群资源复制到开发和 Staging、测试集群。

3.Kasten K10 如何工作?

Kasten K10 工作原理图如下图所示,当用户执行备份或还原命令时,调用自定义资源 API 创建查找备份对象。

20210627180420

Step1:发现应用组件 : 通过 Orchestrator API, K10 应用可以在几分钟内部署到在您的 Kubernetes 集群上,并与 IAM 身份和访问管理集成,K10 的自动应用程序发现功能。

Step2:发现应用配置 : K10 API Controller 控制器 watch 到生成的备份对象时,执行备份计划,此时 K10 与 将与存储基础架构 API 相集成发现应用的配置,如 Namespaces, deployments , configmaps , secrets , serivceaccounts , serivecs ,storageclass 等等

Step3:发现应用数据 : 通过自动扫描 Kubernetes 环境中需保护的应用和相关组件,发现数据的所在位置。通过使用自动化策略高效执行数据管理操作,如通过CSI接口实现的快照操作,可以保证数据的高速备份、还原、以及应用的可移动性。同理,针对有状态的应用,还可以通过开源应用程序框架 Kanister,提供可扩展的、无代理的、以数据应用程序为中心的蓝图部署与保护方式,实现数据备份和恢复的一致性。

4.Kasten K10 部署规划

4.1 技术资源准备与要求

Kasten K10 部署在 Tencent Cloud 需要以下先决条件 :

  • TKE Tencent Kubenetes Engine 1.18.4(Tencent Kubernetes Engine ,TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务。
  • TCR Tencent Container Registry 容器镜像服务, 为您提供安全独享、高性能的容器镜像托管分发服务。
  • CBS-CSI 组件 CBS-CSI 组件 支持 TKE 集群通过控制台快捷选择存储类型,并创建对应块存储云硬盘类型的 PV 和 PVC。本文提供 CBS-CSI 组件功能特性等说明并介绍几种常见示例用法。
  • COS 对象存储, 用于存放备份的数据集,用于存储部署Kasten K10的自动化检测脚本,和
  • 技术人员要求 部署人员除了对腾讯云有一定了解以外,还应该具备 K8S 或 TKE 运维的相关知识。

4.2 K8S 集群资源需求

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

POD数量: 18 -21
CPU与内存资源: 见 Kasten K10 文档
PVC 存储资源要求:100GB 左右

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

在腾讯云 TKE 的集群配置中,最小配置为一个节点,推荐两个节点

类型机型规格CPU内存硬盘
基础配置标准型SA2SA2.MEDIUM42核4GB50GB 高性能云硬盘
推荐配置标准型SA2SA2.LARGE84核8GB100GB SSD云硬盘

5. Kasten K10 部署

5.1 K10 部署先决条件

本指南提供了确保在 TKE 集群中顺利和成功安装 K10 的步骤,同时利用CBS-CSI容器存储快照和克隆特性进行备份和恢复策略,K10 部署的先决条件如下。

  • 通过 Pre-flight checks
  • 安装了 Docker、kubectl、 Helm 的操作端
  • CBS-CSI 组件
  • CAM 角色

5.2 Kasten K10 部署

本文中,我们只将如下步骤进行概览,我们随后还将发布该文档的一个系统版本,来列举部署时的详情。

5.2.1.Step 1 CAM 规划

确保如下策略在角色载体为 CCS的 TCR_QCSRole中被关联

  • QcloudCBSFullAccess
  • CLBAutoPreAuthorization
  • QcloudAccessForTKERoleInOpsManagement
  • QcloudAccessForTKERole

20210627195218

5.2.2. 配置 TCR 存储库

确保 TCR 已经配置完善

20210627200943

5.2.3.启用 CBS-CSI 插件

确保 CBS CSI 已经启用

20210627195734

确保 StorageClass CBS-CSI 已经被定义,并配置为默认存储类型

20210627195935

5.2.4. Step 4 验证部署的前提条件是否满足

通过我们部署在COS上的脚本,我们可调用 k10_permer 应用来检查,当前部署环境的前提条件是否满足

[root@harbor01 ~]# curl https://kasten-1257130361.cos.ap-chengdu.myqcloud.com/k10_primer.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  6025  100  6025    0     0  20130      0 --:--:-- --:--:-- --:--:-- 20083
Namespace option not provided, using default namespace
Checking for tools
 --> Found kubectl
 --> Found helm
Checking if the Kasten Helm repo is present
WARNING: Kubernetes configuration file is group-readable. This is insecure. Location: /root/.kube/config
WARNING: Kubernetes configuration file is world-readable. This is insecure. Location: /root/.kube/config
 --> The Kasten Helm repo was found
Checking for required Helm version (>= v3.0.0)
WARNING: Kubernetes configuration file is group-readable. This is insecure. Location: /root/.kube/config
WARNING: Kubernetes configuration file is world-readable. This is insecure. Location: /root/.kube/config
WARNING: Kubernetes configuration file is group-readable. This is insecure. Location: /root/.kube/config
WARNING: Kubernetes configuration file is world-readable. This is insecure. Location: /root/.kube/config
 --> No Tiller needed with Helm v3.5.4
K10Primer image
 --> Using Image (ccr.ccs.tencentyun.com/kasten-k10/k10tools:4.0.5) to run test
Checking access to the Kubernetes context cls-jrc2egbj-100006537440-context-default
 --> Able to access the default Kubernetes namespace

Running K10Primer Job in cluster with command- 
     ./k10tools primer 
serviceaccount/k10-primer created
clusterrolebinding.rbac.authorization.k8s.io/k10-primer created
job.batch/k10primer created
Waiting for pod k10primer-5z7gl to be ready - ContainerCreating
Pod Ready!

Kubernetes Version Check:
  Valid kubernetes version (v1.18.4-tke.11)  -  OK

RBAC Check:
  Kubernetes RBAC is enabled  -  OK

Aggregated Layer Check:
  The Kubernetes Aggregated Layer is enabled  -  OK

CSI Capabilities Check:
  Using CSI GroupVersion snapshot.storage.k8s.io/v1beta1  -  OK

Validating Provisioners: 
cloud.tencent.com/qcloud-cbs:
  Storage Classes:
    cbs
      Supported via K10 Generic Volume Backup. See https://docs.kasten.io/latest/install/generic.html.

com.tencent.cloud.csi.cbs:
  Is a CSI Provisioner  -  OK
  Missing/Failed to Fetch CSIDriver Object
  Storage Classes:
    cbs-csi
      Valid Storage Class  -  OK
  Volume Snapshot Classes:
    cbs-snapclass
      Has k10.kasten.io/is-snapshot-class annotation set to true  -  OK
      Has deletionPolicy 'Delete'  -  OK
    k10-clone-cbs-snapclass

Validate Generic Volume Snapshot:
  Pod Created successfully  -  OK
  GVS Backup command executed successfully  -  OK
  Pod deleted successfully  -  OK

serviceaccount "k10-primer" deleted
clusterrolebinding.rbac.authorization.k8s.io "k10-primer" deleted
job.batch "k10primer" deleted

5.2.5. Step 6 - 安装 K10

1. 获取 Helm Chart 供本地使用

helm repo update && helm fetch kasten/k10

2. 建立名空间

kubectl create namespace kasten-io

3. 安装 Kasten K10

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

helm install k10 k10-4.0.5.tgz --namespace kasten-io --set global.airgapped.repository=ccr.ccs.tencentyun.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 global.persistence.storageClass=cbs-csi

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

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

[root@harbor01 ~]# kubectl get pods -n kasten-io -w 
NAME                                  READY   STATUS    RESTARTS   AGE
aggregatedapis-svc-68ffcc6b7f-4p5bd   1/1     Running   0          2d4h
auth-svc-6bdb748896-bsj9p             1/1     Running   0          2d4h
catalog-svc-5f97568f5c-cq4tg          2/2     Running   0          2d4h
config-svc-6f7b48686b-t4npl           1/1     Running   0          2d4h
crypto-svc-bd87f859b-89kzq            1/1     Running   0          2d4h
dashboardbff-svc-696dbdf4b-nhnzw      1/1     Running   0          2d4h
executor-svc-65d4888b8f-6l4ph         2/2     Running   0          2d4h
executor-svc-65d4888b8f-h54pw         2/2     Running   0          2d4h
executor-svc-65d4888b8f-kxgkp         2/2     Running   0          2d4h
frontend-svc-77588f478-5fll9          1/1     Running   0          2d4h
gateway-6c5d9ffc48-mxsgs              1/1     Running   0          2d4h
jobs-svc-59f9f594c-s2bvx              1/1     Running   0          2d4h
kanister-svc-744b459dc6-ppkx8         1/1     Running   0          2d4h
logging-svc-75bf5f7898-b65p5          1/1     Running   0          2d4h
metering-svc-58f99dc4bb-vxjxg         1/1     Running   0          2d4h
prometheus-server-7b99765ccb-jkx87    2/2     Running   0          2d4h
state-svc-57ff7b7846-hknrd            1/1     Running   0          2d4h

5. 访问 K10 控制台

通过 查看 K8S Service 中的Gateway-ext,查看 访问 K10的IP地址
20210627204738

浏览器访问如下地址

http://139.155.161.39/k10/#/

您将见到如下画面,这时需要我们输入 Token

20210627205847

在终端输入如下命令获取 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

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

20210627210142

6. 配置 腾讯云 COS 作为 Kasten 的存储库

我们可以能过设置 S3 Compatible 存储库的方式,将 腾讯云 COS 设置成为备份存储库,满足 3-2-1-1-0 的备份黄金法则。

20210627213313

7. 在TKE 集群管理器中查看 K10 部署情况

腾讯云 TKE 的管理界面非常友好,在这里我们可以非常方便的查看与K8S的应用,当然也包括 Kasten K10

Pod 运行的情况
20210627211440

存储使用情况
20210627211523

8. 总结

以上就是关于 Kasten 在腾讯云 TKE 上部署的有关记录,供大家在部署时参考。我认为Kasten 这个产品的有趣之处是,它与 Veeam 有很多异曲同工之妙,无疑云原生的灾备对于很多人来说是相当复杂的,但 Kasten 以其直观的方式将其图形化、简便化。关于这个过程的细节,我们还会在后续的文章中,逐步呈现给大家!

9. 参考链接

Kasten by Veeam 官网
https://docs.kasten.io/latest/
Complete List of K10 Helm Options
https://docs.kasten.io/latest/install/advanced.html
Kasten K10 系统需求
https://docs.kasten.io/latest/operating/footprint.html
腾讯云 TKE 文档与资源

https://cloud.tencent.com/product/tke/developer

腾讯云 TCR 文档与资源

https://cloud.tencent.com/document/product/1141

腾讯云 CBS-CSI 文档与资源

https://cloud.tencent.com/document/product/457/51099