前言
本篇是离线安装Kubernetes和Kubesphere的教程,包含初始化镜像仓库harbor 导入必要镜像至镜像仓库
Kubernetes版本:v1.26.12
Kubesphere版本:4.1
参考教程:离线安装 KubeSphere
正文
1、安装依赖包
所有节点需要安装必要依赖
1
| yum install -y socat conntrack
|
2、导入文件包并修改配置文件
以下是文件说明,已经放在网盘了,地址:
config-sample.yaml:集群配置文件
create_project_harbor.sh:初始化harbor项目脚本
kk:KubeKey工具
ks-core-1.1.3.tgz:helm安装包
kubesphere-4.1.tar.gz:Kubernetes离线包
将这些文件复制到主节点的工作目录下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| apiVersion: kubekey.kubesphere.io/v1alpha2 kind: Cluster metadata: name: sample spec: hosts: - {name: k8s-master, address: 192.168.1.20, internalAddress: 192.168.1.20, user: root, password: "root"} - {name: k8s-node1, address: 192.168.1.21, internalAddress: 192.168.1.21, user: root, password: "root"} - {name: k8s-node2, address: 192.168.1.22, internalAddress: 192.168.1.22, user: root, password: "root"} roleGroups: etcd: - k8s-master control-plane: - k8s-master worker: - k8s-node1 - k8s-node2 registry: - k8s-master controlPlaneEndpoint:
domain: lb.kubesphere.local address: "" port: 6443 kubernetes: kubeletArgs: - --root-dir=/app/kubelet version: v1.26.12 clusterName: cluster.local autoRenewCerts: true containerManager: docker etcd: type: kubekey network: plugin: calico kubePodsCIDR: 10.233.64.0/18 kubeServiceCIDR: 10.233.0.0/18 multusCNI: enabled: false storage: openebs: basePath: /app/openebs/ registry: type: harbor auths: "dockerhub.kubekey.local": username: admin password: Harbor12345 skipTLSVerify: true privateRegistry: "dockerhub.kubekey.local" namespaceOverride: "kubesphereio" registryMirrors: [] insecureRegistries: [] addons: []
|
3、创建镜像仓库(可选)
如果自己存在镜像仓库可以直接配置到config文件内(目前没有配置成功过,所以默认自己搭建一个仓库,将数据目录放到数据盘下)
赋于kk执行权限
执行创建仓库命令
PS:此操作会在registry 节点安装Docker,docker-compose 等软件,并且将 harbor 文件放在/opt/harbor 目录下
1
| ./kk init registry -f config-sample.yaml -a kubesphere-4.1.tar.gz
|
安装完成后显示如下画面

验证容器是否启动,目录是否存在

修改docker默认存储目录,Harbor数据目录(可选)
因为docker存储目录默认在 /var/lib/docker/ 后面会把根目录塞满,需要将目录转移至数据盘下
修改docker默认存储目录
PS:此操作只建议在刚安装docker后操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| # 停止docker systemctl stop docker systemctl status docker
# 复制docker数据目录至/app/docker cp -r /var/lib/docker/ /app/docker/
# 修改配置文件 vim /etc/docker/daemon.json # 添加如下配置 "data-root": "/app/docker"
# 重启docker systemctl daemon-reload systemctl start docker
# 删除原目录 rm -rf /var/lib/docker/
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| # 修改harbor数据目录
# 修改harbor配置文件 cd /opt/harbor/ vim harbor.yml # 56行 data_volume 改成 指定目录 :56 data_volume: /mnt/registry -> data_volume: /app/registry
# 重新初始化harbor # 如果启动出现文件,删除docker目录重启docker后再次运行 sh install.sh
# 删除原目录 rm -rf /mnt/registry
|

4、推送镜像至仓库
运行脚本创建harbor项目
1 2
| chmod +x create_project_harbor.sh sh create_project_harbor.sh
|
PS:如果使用别的仓库,需要修改如下配置
1 2 3 4 5 6
| ...
url="https://dockerhub.kubekey.local" # 或修改为实际镜像仓库地址 user="admin" passwd="Harbor12345" ...
|
推送镜像至仓库(可选)
此步骤只是验证镜像仓库是否安装成功,提前一步将镜像推送至仓库,安装集群时仍然会进行一次操作,验证所有镜像是否推送,所有此步骤可有可无
1
| ./kk artifact image push -f config-sample.yaml -a kubesphere-4.1.tar.gz
|
推送成功

5、创建Kubernetes集群
执行命令
1
| ./kk create cluster -f config-sample.yaml -a kubesphere-4.1.tar.gz --with-local-storage
|
指定 –with-local-storage 参数会默认部署 openebs localpv,如需对接其他存储,可在 Kubernetes 集群部署完成后自行安装。
在运行后会打印出所有节点的信息,确认无误后 输入 yes 进行安装

安装完成

6、安装Kubesphere
1 2 3 4 5 6
| helm upgrade --install -n kubesphere-system --create-namespace ks-core ks-core-1.1.3.tgz \ --set global.imageRegistry=dockerhub.kubekey.local/ks \ --set extension.imageRegistry=dockerhub.kubekey.local/ks \ --set ksExtensionRepository.image.tag=v1.1.2 \ --debug \ --wait
|
安装完成

显示了登录的地址和默认账号密码,可以直接登录
7、自己打包离线包(可选)
因为本文提供的镜像包是默认官方的,如果有其他需求请自己打包
需要准备一台可以联网的主机,无环境要求
将manifest-sample.yaml资源配置文件,kk 上传到运行目录
修改完成后运行如下命令,进行构建
1
| ./kk artifact export -m manifest-sample.yaml -o kubesphere.tar.gz
|
8、其他文件
其他文件官方获取方式:
kk
1
| curl -sSL https://get-kk.kubesphere.io | sh -
|
manifest-sample.yaml
1 2 3 4
| export KKZONE=cn
# 如需使用 kk 离线部署镜像仓库,添加 --with-registry 打包镜像仓库的安装文件 ./kk create manifest --with-kubernetes v1.26.12 --with-registry
|
ks-core-1.1.3.tgz
1 2 3 4 5 6
| # 安装 helm curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
# 下载 KubeSphere Core Helm Chart VERSION=1.1.3 # Chart 版本 helm fetch https://charts.kubesphere.io/main/ks-core-${VERSION}.tgz
|
config-sample.yam
1
| ./kk create config --with-kubernetes v1.26.12
|