
#云原生征文# 使用Kubekey2.1.1离线部署KubeSphere全过程 原创
KubeKey v2.0.0 版本新增了清单(manifest)和制品(artifact)的概念,为用户离线部署 Kubernetes 集群提供了一种解决方案。在过去,用户需要准备部署工具,镜像 tar 包和其他相关的二进制文件,每位用户需要部署的 Kubernetes 版本和需要部署的镜像都是不同的。现在使用 kk,用户只需使用清单 manifest 文件来定义将要离线部署的集群环境需要的内容,再通过该 manifest 来导出制品 artifact 文件即可完成准备工作。离线部署时只需要 kk 和 artifact 就可快速、简单的在环境中部署镜像仓库和 Kubernetes 集群。
- 1.
1、下载kk安装包工具,完成后解压
2、使用kk来创建一个原生集群
安装过程省略,默认已经安装成功。
3、安装完成后可以通过30880访问页面
4、基于当前的集群环境导出配置文件manifest
说明:manifest 就是一个描述当前 Kubernetes 集群信息和定义 artifact 制品中需要包含哪些内容的文本文件。目前有两种方式来生成该文件:根据模版手动创建并编写该文件。 使用 kk 命令根据已存在的集群生成该文件。
可以对文件内容进行修改
• reppostiory 部分需要指定服务器系统的依赖 iso 包,可以直接在 url 中填入对应下载地址或者提前下载 iso 包到本地在 localPath 里填写本地存放路径并删除 url 配置项即可
• 开启 harbor、docker-compose 配置项,为后面通过 KK 自建 harbor 仓库推送镜像使用
• 默认创建的 manifest 里面的镜像列表从 docker.io 获取,建议修改以下示例中的青云仓库中获取镜像
• 可根据实际情况修改 manifest-sample.yaml 文件的内容,用以之后导出期望的 artifact 文件
5、集群中导出制品artifact
说明:制品就是一个根据指定的 manifest 文件内容导出的包含镜像 tar 包和相关二进制文件的 tgz 包。在 kk 初始化镜像仓库、创建集群、添加节点和升级集群的命令中均可指定一个 artifact,kk 将自动解包该 artifact 并将在执行命令时直接使用解包出来的文件。
注意:导出命令会从互联网中下载相应的二进制文件,请确保网络连接正常。
导出命令会根据 manifest 文件中的镜像列表逐个拉取镜像,请确保 kk 的工作节点已安装 containerd 或最低版本为 18.09 的 docker。
kk 会解析镜像列表中的镜像名,若镜像名中的镜像仓库需要鉴权信息,可在 manifest 文件中的 .registry.auths 字段中进行配置。
若需要导出的 artifact 文件中包含操作系统依赖文件(如:conntarck、chrony 等),可在 operationSystem 元素中的 .repostiory.iso.url 中配置相应的 ISO 依赖文件下载地址。
#默认tar包的名字是kubekey-artifact.tar.gz,可通过-o参数自定义包名
在离线环境安装集群
1、将 KK 和制品 artifact 通过 U 盘等介质拷贝至离线环境安装节点
保证kk工具包和生成的制品包可以拷贝到离线安装节点。
2、创建离线集群集群配置文件
3、修改配置文件
vim config-sample.yaml
说明:按照实际离线环境配置修改节点信息
必须指定 registry 仓库部署节点(因为 KK 部署自建 harbor 仓库需要使用) ,registry 里必须指定 type 类型为 harbor,不配 harbor 的话默认是装的 docker registry
4、使用kk来安装镜像仓库
说明:
• config-sample.yaml(离线环境集群的配置文件)
• kubesphere.tar.gz(源集群打包出来的 tar 包镜像)
• harbor 安装文件在 /opt/harbor , 如需运维 harbor,可至该录下。
检查443端口是否正常
5、创建Harbor项目(重要)
执行脚本创建harbor项目
修改脚本配置文件
说明:
• 修改 url 的值为 https://dockerhub.kubekey.local
• 需要指定仓库项目名称和镜像列表的项目名称保持一致
• 脚本末尾 curl 命令末尾加上 -k
6、安装kubesphere集群
说明 :
• config-sample.yaml(离线环境集群的配置文件)
• kubesphere.tar.gz(源集群打包出来的 tar 包镜像)
• 指定 k8s 版本、kubepshere 版本
• --with-packages(必须添加否则 ISO 依赖安装失败)
恭喜,到这里就创建成功了
7、查看集群状态
注意:本文没有使用iso依赖的方式,会导致找不到conntrack socat 两个组件找不到,需要手动yum安装一下,如果要解决这个问题,可以在制作tar包的时候,把iso的依赖包也都加上进去,
————————————————
【本文正在参加云原生有奖征文活动】
