已有K8s和Harbor环境下高效部署KubeSphere 3.4全指南
当你已经搭建好Kubernetes集群和Harbor私有仓库,想要快速部署KubeSphere时,官方文档中混杂的集群搭建和仓库配置步骤往往会让你陷入不必要的麻烦。本文将为你提供一条清晰的路径,直接从现有环境出发,完成KubeSphere的高效部署。
1. 环境准备与离线包制作
在开始之前,确保你的环境满足以下条件:
- 运行正常的Kubernetes集群(版本1.20+)
- 可访问的Harbor私有镜像仓库(版本2.0+)
- 至少8GB内存和100GB存储空间的Master节点
- 网络连通性良好,能够从Master节点访问Harbor仓库
离线镜像包制作步骤:
- 从KubeSphere官网下载对应版本的离线安装包(以3.4.0为例)
- 解压离线包到Master节点的指定目录
- 验证文件完整性,确保包含以下关键组件:
- kubesphere-core镜像包
- 必要的中间件镜像(如Redis、MySQL等)
- kubekey(kk)部署工具
注意:离线包的版本需要与你的Kubernetes集群版本兼容,建议选择经过验证的组合。
2. 配置文件的精准调整
使用kk工具生成默认配置文件后,我们需要重点修改registry相关配置,这是整个部署过程中最容易出错的部分。
./kk create config --with-kubernetes v1.26.12生成的config-sample.yaml文件中,registry部分需要特别关注以下参数:
registry: auths: "your.harbor.com": username: admin password: Harbor12345 skipTLSVerify: true privateRegistry: "your.harbor.com" namespaceOverride: "kubesphereio"关键配置项说明:
| 参数 | 说明 | 示例值 |
|---|---|---|
| auths | Harbor仓库认证信息 | 需包含完整的仓库地址、用户名和密码 |
| privateRegistry | 镜像推送的目标仓库地址 | your.harbor.com |
| namespaceOverride | 镜像在Harbor中的项目名称 | kubesphereio |
| skipTLSVerify | 是否跳过TLS验证 | 测试环境可设为true |
3. 镜像推送的实战操作
配置完成后,使用以下命令将离线包中的镜像推送到Harbor仓库:
./kk artifact image push -f config-sample.yaml -a kubesphere.tar.gz这个过程中可能会遇到几个常见问题:
- 认证失败:检查auths部分的用户名密码是否正确,以及Harbor仓库是否允许外部访问
- 网络连接问题:确保Master节点能够解析Harbor仓库的域名
- 存储空间不足:Harbor仓库需要有足够的空间接收所有镜像
推送成功后,你可以在Harbor的Web界面中看到所有KubeSphere相关的镜像已经上传到指定项目中。
4. Helm安装KubeSphere核心组件
在安装ks-core之前,需要先确保Helm已经正确安装并配置:
# 下载Helm wget https://get.helm.sh/helm-v3.14.0-linux-amd64.tar.gz # 解压并安装 tar -zxvf helm-v3.14.0-linux-amd64.tar.gz sudo mv linux-amd64/helm /usr/local/bin/helm # 验证安装 helm version安装ks-core的关键参数:
helm upgrade --install -n kubesphere-system --create-namespace ks-core ks-core-1.1.3.tgz \ --set global.imageRegistry=your.harbor.com/ks \ --set extension.imageRegistry=your.harbor.com/ks \ --set ksExtensionRepository.image.tag=v1.1.4 \ --debug \ --wait这里有几个需要特别注意的参数:
global.imageRegistry:必须指向你的Harbor仓库地址extension.imageRegistry:同样需要修改为你的仓库地址--debug:开启调试模式,便于排查问题--wait:等待安装完成
5. 安装后验证与问题排查
安装完成后,通过以下命令验证各个组件的状态:
kubectl get pods -n kubesphere-system预期应该看到所有pod都处于Running状态。如果遇到问题,可以检查以下几个方面:
- 镜像拉取失败:确认Helm chart中的镜像地址是否正确指向了你的Harbor仓库
- 资源不足:检查集群资源是否满足KubeSphere的最低要求
- 网络问题:确保集群节点能够访问Harbor仓库
访问KubeSphere控制台的默认地址通常是http://<节点IP>:30880,使用默认账号admin和密码P@88w0rd登录后,记得立即修改密码。
6. 高级配置与优化建议
对于生产环境,建议进行以下优化配置:
- 持久化存储:为KubeSphere配置持久化存储,避免数据丢失
- 监控告警:集成Prometheus和Alertmanager实现监控告警
- 日志收集:配置EFK或Loki日志收集系统
- 高可用:考虑部署多个控制平面节点实现高可用
性能调优参数示例:
resources: limits: cpu: "2" memory: 4Gi requests: cpu: "1" memory: 2Gi在实际项目中,我们发现合理配置资源请求和限制可以显著提高KubeSphere的稳定性和性能。特别是在资源有限的集群中,避免组件因内存不足被OOM Killer终止至关重要。