# deploy **Repository Path**: galosys/deploy ## Basic Information - **Project Name**: deploy - **Description**: 部署文件 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-22 - **Last Updated**: 2026-07-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Galosys Deploy > Galosys 自托管基础设施 — Docker Compose 服务编排 + K3s Kubernetes 集群管理 [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE) ## 目录结构 ``` docker/ — Docker Compose 服务分组 k8s/ — Kubernetes 清单文件 base/ — 按服务划分(mysql/、apolloconfig/、xxl-job/ 等)+ 共享资源 base/kube-system — Calico CNI(helm 打包) base/longhorn-system — Longhorn(helm 打包) docs/ — 文档 registries.yaml — K3s 容器注册表镜像配置 wsl.conf — WSL 配置(systemd、root 用户) ``` ## 快速开始 ### 环境要求 - Linux 节点(推荐 Ubuntu 22.04+,或 WSL2) - Docker Engine 24+ - K3s 集群(embedded etcd HA) ### K3s 集群初始化 以下为概要步骤,完整手册见 [docs/k3s-ha.md](docs/k3s-ha.md)。 #### 初始化第一个 Server 节点 ```bash curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | \ INSTALL_K3S_MIRROR=cn K3S_TOKEN= \ INSTALL_K3S_EXEC="server --cluster-init --flannel-backend=none" sh - ``` #### 加入其他 Server 节点 ```bash curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | \ INSTALL_K3S_MIRROR=cn K3S_TOKEN= \ INSTALL_K3S_EXEC="server --server https://:6443 --flannel-backend=none" sh - ``` #### 部署 Calico CNI ```bash kubectl apply -f k8s/base/kube-system/calico.yaml ``` #### 配置 10 年证书 ```bash cat << EOF > /etc/default/k3s CATTLE_NEW_SIGNED_CERT_EXPIRATION_DAYS=3650 EOF k3s certificate rotate systemctl restart k3s ``` #### 注册表镜像配置 ```bash cp registries.yaml /etc/rancher/k3s/registries.yaml ``` #### 安装 Kuboard ```bash kubectl apply -f k8s/base/kuboard ``` ### Docker 服务部署 ```bash # 核心服务 docker compose -f docker/0.1-devops/compose.yaml up -d docker compose -f docker/0.2-infra/compose.yaml up -d ``` 其他组以此类推,详情见 [docker/README.md](docker/README.md)。 ## 服务矩阵 ### Docker 分组 | 组 | 服务 | 优先级 | |---|---|---| | `0.1-devops` | GitLab + Runner/Jenkins + (Nexus/Registry) | 核心 | | `0.2-infra` | PostgreSQL + RocketMQ + Redis + RabbitMQ + MySQL + RustFS | 核心 | | `1-testing` | k6-tester | 偶尔 | | `2-ai` | LocalAI + Qdrant + NextChat | 偶尔 | | `999-tools` | QingLong + n8n | 非特殊不用 | ### K8s 命名空间 | 命名空间 | 服务 | |---|---| | `default` | MySQL、MSSQL、Apollo、JimuReport、XXL-Job | | `kube-system` | Calico、Octopus-UI | | `kuboard` | Kuboard v3/v4、etcd、agents | | `longhorn-system` | Longhorn CRDs | | `xxl-job` | 仅 XXL-Job ingress | ## 常用命令速查 ### Docker ```bash docker compose -f docker/<组>/compose.yaml up -d docker compose -f docker/<组>/compose.yaml down ``` ### K8s ```bash kubectl apply -f k8s/base/<路径> kubectl get pods -A kubectl get nodes ``` ### K3s 管理 ```bash k3s etcd-snapshot save k3s certificate rotate ``` ## 约定与注意事项 - **镜像代理:** `docker.1ms.run/<镜像>`(Docker Hub 代理)。n8n 用 `localhost:5000`(本地仓库)。 - **二选一服务:** `0.1-devops/compose.yaml` 中以注释形式存在(CI: runner/jenkins,制品库: nexus/registry),取消注释切换。 - **数据目录:** `**/data/*` 被 gitignore。多数服务用命名卷持久化 + 绑定挂载配置文件。 - **Docker 套接字:** 挂载在 GitLab Runner、Jenkins 中。 - **Ingress:** cert-manager(letsencrypt 颁发者)、nginx ingress controller、IP 白名单、TLS、`*.ds.jsbooks.com.cn` 域名。 - **Apollo ingress:** 引用了端口 `name: web`,但 Service 定义的是 `name: transport`(`targetPort: 8070` 能工作,但名称对不上)。 - **XXL-Job ingress:** 位于 `namespace: xxl-job`,而 deployment/service 在 `namespace: default`,需确认 ingress controller 能否跨命名空间路由。 - **Nexus 授权:** 推荐 v3.76.1(无限制)。v3.77+ 限制 10 万组件 / 20 万日请求。v3.87+ 降至 4 万组件 / 10 万请求。 - **MySQL 密码:** 在 `k8s/base/mysql/mysql.yaml` 的 Secret 中硬编码(`tn4X#sbihm793h`)。 - **WSL 配置:** hostname=desktop-5eujusn,generateHosts=false。 ## 子模块文档 - [Docker 服务](docker/README.md) — 服务分组、启动方式、镜像代理 - [K8s 资源](k8s/base/README.md) — Kubernetes 清单文件说明 - [K3s 高可用搭建](docs/k3s-ha.md) — 集群初始化、扩容、备份恢复 ## License Apache 2.0 — 详见 [LICENSE](LICENSE)