从零开始:使用三台服务器搭建最简 Kubernetes 集群并集成 Gitea + Harbor 示例
1 | # 从零开始:使用三台服务器搭建最简 Kubernetes 集群并集成 Gitea + Harbor |
1.2 创建共享存储目录(所有节点)
1 | sudo mkdir -p /opt/k8s-data/{gitea,harbor} |
📦 二、集成 Gitea 代码仓库
2.1 创建 PostgreSQL 数据库(依赖 Helm 3)
1 | # 添加 Bitnami 仓库 |
2.2 部署 Gitea 服务
2.2.1 创建配置文件 ConfigMap
1 | # gitea-config.yaml |
2.2.2 部署 Gitea 应用
1 | # gitea-deployment.yaml |
2.2.3 应用部署
1 | kubectl apply -f gitea-config.yaml |
2.2.4 访问初始化
1 | # 查看 Ingress IP |
🌊 三、集成 Harbor 镜像仓库
3.1 安装 Helm 客户端(所有节点)
1 | curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 |
3.2 部署 Harbor 依赖组件
1 | # 创建命名空间 |
3.3 创建 Harbor 配置文件
3.3.1 自签名证书生成(Master 节点)
1 | mkdir -p /opt/certs |
3.3.2 创建 Harbor Values 文件
1 | # harbor-values.yaml |
3.4 部署 Harbor
1 | # 添加 Harbor Helm 仓库 |
3.5 配置 Ingress 规则
1 | # harbor-ingress.yaml |
1 | # 创建 TLS Secret |
🔄 四、集成验证
4.1 修改 Go 应用部署文件
1 | # 修改 deployment.yaml 中的 image 字段 |
4.2 配置 Kubernetes 秘钥
1 | # 创建镜像拉取秘钥 |
4.3 推送镜像到 Harbor
1 | # 登录 Harbor |
🧪 五、完整 CI/CD 流程演示
代码提交
在 Gitea 创建新仓库go-hello
,推送代码:1
2git remote add origin http://git.wdft.com/ljq/go-hello.git
git push -u origin master镜像构建
修改构建命令指向私有仓库:1
2docker build -t harbor.wdft.com/ljq/go-hello:latest .
docker push harbor.wdft.com/ljq/go-hello:latest生产部署
更新 Deployment 镜像地址后重新部署:1
kubectl apply -f deployment.yaml
📌 六、配置参考图示
1 | +-------------------+ +------------------+ +-------------------+ |
📚 七、后续优化建议
安全加固
- 使用 Let’s Encrypt 自动签发证书
- 配置 RBAC 权限隔离
- 启用 Harbor 的 Clair 漏洞扫描
存储优化
- 替换 hostPath 为 NFS 或云存储
- 配置 Harbor 的 MinIO 后端存储
高可用
- 部署 PostgreSQL + Patroni 集群
- 使用 Redis Cluster 替代单实例
监控告警
- 部署 Prometheus + Grafana
- 配置 Harbor 自带的监控面板
```
💡 注意事项:
- 将
harbor.wdft.com
和gitea.wdft.com
替换为实际域名- 生产环境应使用独立存储类(StorageClass)
- 所有敏感信息应通过 Kubernetes Secret 管理
- 建议为 Harbor 配置独立的 DNS 解析记录
从零开始:使用三台服务器搭建最简 Kubernetes 集群并集成 Gitea + Harbor 示例