镜像获取

在可连接外网的机器上下载镜像列表images-list.txt

curl -L -O https://github.com/kubesphere/ks-installer/releases/download/v3.0.0/images-list.txt

列表中以##+{模块名称}对镜像进行分组,如有需求,也可按此规则将自己的镜像加入到列表中。

下载offline-installation-tool.sh

curl -L -O https://github.com/kubesphere/ks-installer/releases/download/v3.0.0/offline-installation-tool.sh
chmod +x offline-installation-tool.sh

可通过执行·./offline-installation-tool.sh -h查看脚本使用方法

-b: 保存k8s相关二进制文件
-d: 镜像保存路径
-s: 保存镜像到指定路径
-l: 镜像列表
-r: 私有仓库地址, 将镜像导入私有仓库时使用
-v: 保存指定版本的k8s二进制文件

下载k8s二进制文件(已有k8s集群,可略过)

./offline-installation-tool.sh -b -v v1.17.9
### 若无法访问google对象存储,可添加环境变量切换下载源
export KKZONE=cn;./offline-installation-tool.sh -b -v v1.17.9

脚本执行后会在当前目录下生成kubekey文件夹,将该文件夹拷贝至待安装机器,并于kk可执行文件放置在同级目录下。

拉取images-list.txt中镜像

./offline-installation-tool.sh -s -l images-list.txt -d ./kubesphere-images

可按需拉去镜像,如已有k8s环境,可将镜像列表中##k8s-images及其所包含镜像删除。

将下载并打包好的镜像传入离线环境

确保离线环境中有可使用的私有镜像仓库。
可使用harbor或其他第三方镜像仓库。
如需快速部署自签名镜像仓库可参考:https://kubesphere.com.cn/forum/d/2240-docker-registry

将镜像导入私有镜像仓库

## 以下命令中以dockerhub.kubekey.local为例,使用时请使用自己实际镜像仓库地址。
./offline-installation-tool.sh -l images-list.txt -d ./kubesphere-images -r dockerhub.kubekey.local

在已有k8s之上部署kubesphere

下载部署文件

curl -L -O https://github.com/kubesphere/ks-installer/releases/download/v3.0.0/cluster-configuration.yaml
curl -L -O https://github.com/kubesphere/ks-installer/releases/download/v3.0.0/kubesphere-installer.yaml

修改安装配置

在cluster-configuration.yaml中添加私有镜像仓库配置
## 以dockerhub.kubekey.local为例,部署时请配置自己实际镜像仓库地址。
local_registry: dockerhub.kubekey.local
替换ks-installer为私有仓库镜像
## 以dockerhub.kubekey.local为例,部署时请配置自己实际镜像仓库地址。
sed -i 's|kubesphere/ks-installer:v3.0.0|dockerhub.kubekey.local/kubesphere/ks-installer:v3.0.0|g' kubesphere-installer.yaml

部署

kubectl apply -f kubesphere-installer.yaml
kubectl apply -f cluster-configuration.yaml

部署k8s + kubesphere

下载kk

可从github上下载kk至本地环境:https://github.com/kubesphere/kubekey/releases

创建配置文件

./kk create config --with-kubesphere -f config.yaml

配置文件中指定私有镜像仓库地址

以dockerhub.kubekey.local为例,部署时请配置自己实际镜像仓库地址。

  ...
  network:
    plugin: calico
    kubePodsCIDR: 10.233.64.0/18
    kubeServiceCIDR: 10.233.0.0/18
  registry:
    registryMirrors: []
    insecureRegistries: []
    privateRegistry: "dockerhub.kubekey.local"
  addons: 
    ...

执行安装

确保机器已经安装所需依赖软件(sudo curl openssl ebtables socat ipset conntrack docker),离线环境下可使用私有源或者rpm包(centos类OS)或deb包(debian类OS)安装。

具体环境要求参见:https://github.com/kubesphere/kubekey/tree/release-1.0#requirements-and-recommendations

建议:可将安装了所有依赖软件的操作系统制作成系统镜像使用,避免每台机器都安装依赖软件,即可提升交付部署效率,又可避免依赖问题的发生。

## kk可执行文件应与kubekey文件夹放置于同级目录下
./kk create cluster -f config.yaml