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


Userlevel 1
Badge

Kasten K10 实战系列 02 - 搭建国内本地镜像库

[toc]

1.前言 - gcri.io 的访问

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

Kasten 实战系列回顾:

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

2.1 腾讯镜像库 TCR 介绍

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

2.2 腾讯镜像库 TCR 新建命名空间

在腾讯云 镜像仓库中,新建命名空间

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 团队的 Wei lei 已经创造了更方便的方法部署 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. 离线软件包下载
请通过如下渠道下载:
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

9. 参考链接

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


0 comments

Be the first to comment!

Comment