fix: 将 k3s-ansible 作为普通目录添加
This commit is contained in:
104
README-DEPLOYMENT.md
Normal file
104
README-DEPLOYMENT.md
Normal file
@@ -0,0 +1,104 @@
|
||||
# K3s集群自动化部署项目
|
||||
|
||||
这个项目包含了完整的K3s集群自动化部署配置,使用Ansible + GitOps (ArgoCD + Gitea)。
|
||||
|
||||
## 项目结构
|
||||
|
||||
```
|
||||
.
|
||||
├── config/
|
||||
│ ├── cluster-vars.yml # 集群配置(敏感信息,不提交到Git)
|
||||
│ └── cluster-vars.yml.example # 配置模板
|
||||
├── k3s-ansible/ # k3s-ansible项目
|
||||
│ └── inventory/
|
||||
│ └── hosts.ini # Ansible inventory(自动生成)
|
||||
├── scripts/
|
||||
│ ├── generate-inventory.py # 生成inventory脚本
|
||||
│ ├── deploy.sh # K3s部署脚本
|
||||
│ ├── deploy-gitea.sh # Gitea部署脚本
|
||||
│ ├── setup-gitea.sh # Gitea初始化脚本
|
||||
│ ├── deploy-argocd.sh # ArgoCD部署脚本
|
||||
│ ├── create-argocd-app.sh # 创建ArgoCD应用脚本
|
||||
│ └── push-demo-app.sh # 推送示例应用脚本
|
||||
└── README-DEPLOYMENT.md # 本文件
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 1. 配置集群信息
|
||||
|
||||
```bash
|
||||
cp config/cluster-vars.yml.example config/cluster-vars.yml
|
||||
# 编辑 config/cluster-vars.yml,填入实际的节点信息
|
||||
```
|
||||
|
||||
### 2. 部署K3s集群
|
||||
|
||||
```bash
|
||||
# 生成inventory
|
||||
python3 scripts/generate-inventory.py
|
||||
|
||||
# 部署K3s(幂等操作,可重复执行)
|
||||
cd k3s-ansible
|
||||
ansible-playbook site.yml -i inventory/hosts.ini -e "@../config/cluster-vars.yml"
|
||||
```
|
||||
|
||||
### 3. 部署GitOps组件
|
||||
|
||||
在master节点上执行:
|
||||
|
||||
```bash
|
||||
# 部署Gitea
|
||||
./scripts/deploy-gitea.sh
|
||||
|
||||
# 初始化Gitea
|
||||
./scripts/setup-gitea.sh
|
||||
|
||||
# 部署ArgoCD
|
||||
./scripts/deploy-argocd.sh
|
||||
```
|
||||
|
||||
## 幂等性说明
|
||||
|
||||
本项目的所有部署脚本都支持幂等性,可以安全地重复执行:
|
||||
|
||||
- ✅ Ansible playbook可以重复运行,只会更新有变化的配置
|
||||
- ✅ Gitea和ArgoCD的Helm部署支持upgrade操作
|
||||
- ✅ 配置文件修改后重新运行会自动更新
|
||||
|
||||
## 访问服务
|
||||
|
||||
- **ArgoCD**: https://<MASTER_IP>:31875 (admin / ArgoAdmin@2026)
|
||||
- **Gitea**: http://<MASTER_IP>:32158 (gitea_admin / GitAdmin@2026)
|
||||
- **应用**: 通过NodePort或Ingress访问
|
||||
|
||||
## 更新部署配置
|
||||
|
||||
1. 修改 `config/cluster-vars.yml`
|
||||
2. 重新生成inventory: `python3 scripts/generate-inventory.py`
|
||||
3. 重新运行部署: `cd k3s-ansible && ansible-playbook site.yml -i inventory/hosts.ini -e "@../config/cluster-vars.yml"`
|
||||
|
||||
## 注意事项
|
||||
|
||||
- `config/cluster-vars.yml` 包含敏感信息,已添加到 `.gitignore`
|
||||
- 首次部署后,建议配置SSH密钥认证替代密码认证
|
||||
- 定期备份Gitea和ArgoCD的数据
|
||||
|
||||
## 故障排查
|
||||
|
||||
### 查看K3s服务状态
|
||||
```bash
|
||||
systemctl status k3s # master节点
|
||||
systemctl status k3s-agent # worker节点
|
||||
```
|
||||
|
||||
### 查看集群状态
|
||||
```bash
|
||||
kubectl get nodes
|
||||
kubectl get pods -A
|
||||
```
|
||||
|
||||
### 查看ArgoCD应用状态
|
||||
```bash
|
||||
kubectl get application -n argocd
|
||||
kubectl describe application <app-name> -n argocd
|
||||
```
|
||||
Reference in New Issue
Block a user