fix: 将 k3s-ansible 作为普通目录添加

This commit is contained in:
fei
2026-02-04 23:43:40 +08:00
commit 7f6c8b9b92
40 changed files with 10909 additions and 0 deletions

272
JPD-NEXT-STEPS.md Normal file
View File

@@ -0,0 +1,272 @@
# JPD集群后续部署步骤
## ✅ 已完成
- ✅ K3s集群部署成功
- ✅ 3个节点全部Ready
- ✅ 核心组件运行正常CoreDNS, Traefik, Metrics Server
## 📋 集群信息
- **Master节点**: jp1 (149.13.91.216 / 10.198.0.112)
- **Worker1节点**: jp2 (149.13.91.64 / 10.198.0.175)
- **Worker2节点**: jp3 (149.13.91.59 / 10.198.0.111)
## 🚀 继续部署步骤
由于网络限制需要SSH到master节点进行后续操作。
### 步骤1: SSH到Master节点
```bash
ssh fei@149.13.91.216
```
### 步骤2: 配置kubectl在master节点上
```bash
# 配置kubectl权限
sudo chmod 644 /etc/rancher/k3s/k3s.yaml
# 配置环境变量
echo "export KUBECONFIG=/etc/rancher/k3s/k3s.yaml" >> ~/.bashrc
source ~/.bashrc
# 验证集群
kubectl get nodes -o wide
kubectl get pods --all-namespaces
```
### 步骤3: 安装Helm在master节点上
```bash
# 下载Helm安装脚本
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 > /tmp/get_helm.sh
# 安装Helm
chmod +x /tmp/get_helm.sh
sudo /tmp/get_helm.sh
# 验证安装
helm version
```
### 步骤4: 上传部署脚本(在本地机器上)
```bash
# 回到本地机器上传所有脚本到master节点
cd /home/fei/opk3s/k3s自动化部署
scp -r scripts/ config/ fei@149.13.91.216:/home/fei/k3s-deploy/
```
### 步骤5: 部署Gitea在master节点上
```bash
# SSH到master节点
ssh fei@149.13.91.216
# 进入部署目录
cd /home/fei/k3s-deploy
# 运行Gitea部署脚本
bash scripts/deploy-gitea.sh
# 等待Gitea Pod就绪约3-5分钟
watch kubectl get pods -n gitea
# 获取Gitea访问地址
GITEA_PORT=$(kubectl get svc gitea-http -n gitea -o jsonpath='{.spec.ports[0].nodePort}')
echo "Gitea访问地址: http://149.13.91.216:$GITEA_PORT"
echo "Gitea域名访问: http://git.jpd.net3w.com"
```
### 步骤6: 部署ArgoCD在master节点上
```bash
# 运行ArgoCD部署脚本
bash scripts/deploy-argocd.sh
# 等待ArgoCD Pod就绪约2-3分钟
watch kubectl get pods -n argocd
# 获取ArgoCD admin密码
kubectl -n argocd get secret argocd-initial-admin-secret \
-o jsonpath="{.data.password}" | base64 -d && echo
# 访问ArgoCD
echo "ArgoCD访问地址: https://argocd.jpd.net3w.com"
echo "用户名: admin"
```
### 步骤7: 配置HTTPS在master节点上
```bash
# 部署cert-manager和配置HTTPS
bash scripts/deploy-https.sh
# 等待证书签发约1-2分钟
watch kubectl get certificate --all-namespaces
```
### 步骤8: 部署测试应用在master节点上
```bash
# 部署nginx测试应用
bash scripts/deploy-nginx-app.sh
# 验证部署
kubectl get pods -l app=nginx-test -n default
kubectl get ingress -n default
# 测试访问
curl http://ng.jpd.net3w.com
```
## 🔧 快速部署命令(一键执行)
如果想一次性完成所有部署可以在master节点上执行
```bash
# SSH到master节点
ssh fei@149.13.91.216
# 创建部署目录
mkdir -p /home/fei/k3s-deploy
# 退出,从本地上传文件
exit
# 上传部署文件
cd /home/fei/opk3s/k3s自动化部署
scp -r scripts/ config/ fei@149.13.91.216:/home/fei/k3s-deploy/
# 重新SSH到master节点
ssh fei@149.13.91.216
# 配置kubectl
sudo chmod 644 /etc/rancher/k3s/k3s.yaml
echo "export KUBECONFIG=/etc/rancher/k3s/k3s.yaml" >> ~/.bashrc
source ~/.bashrc
# 安装Helm
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | sudo bash
# 进入部署目录
cd /home/fei/k3s-deploy
# 依次部署所有组件
bash scripts/deploy-gitea.sh
sleep 180 # 等待Gitea就绪
bash scripts/deploy-argocd.sh
sleep 120 # 等待ArgoCD就绪
bash scripts/deploy-https.sh
sleep 60 # 等待证书签发
bash scripts/deploy-nginx-app.sh
```
## 📊 验证部署
### 查看所有资源
```bash
# 查看所有命名空间
kubectl get namespaces
# 查看所有Pod
kubectl get pods --all-namespaces
# 查看所有Service
kubectl get svc --all-namespaces
# 查看所有Ingress
kubectl get ingress --all-namespaces
# 查看证书状态
kubectl get certificate --all-namespaces
```
### 访问服务
| 服务 | 访问地址 | 用户名 | 密码 |
|------|----------|--------|------|
| Gitea | http://git.jpd.net3w.com | gitea_admin | GitAdmin@2026 |
| ArgoCD | https://argocd.jpd.net3w.com | admin | (见kubectl命令) |
| Nginx测试 | http://ng.jpd.net3w.com | - | - |
### 获取ArgoCD密码
```bash
kubectl -n argocd get secret argocd-initial-admin-secret \
-o jsonpath="{.data.password}" | base64 -d && echo
```
## 🔍 故障排查
### Pod无法启动
```bash
# 查看Pod详情
kubectl describe pod <e> -n <namespace>
# 查看Pod日志
kubectl logs <pod-name> -n <namespace>
# 查看事件
kubectl get events -n <namespace> --sort-by='.lastTimestamp'
```
### 服务无法访问
```bash
# 检查Service
kubectl get svc -n <namespace>
# 检查Ingress
kubectl describe ingress <ingress-name> -n <namespace>
# 测试内部访问
kubectl run test-pod --rm -it --image=curlimages/curl -- \
curl http://<service-name>.<namespace>.svc.cluster.local
```
### DNS未解析
```bash
# 检查DNS配置
nslookup git.jpd.net3w.com
# 如果DNS未生效使用NodePort访问
kubectl get svc -n gitea
# 访问 http://149.13.91.216:<NodePort>
```
## 📝 重要提示
1. **DNS配置**: 确保已在域名服务商配置DNS解析
```
*.jpd.net3w.com A 149.13.91.216
```
2. **防火墙**: 确保以下端口已开放:
- 6443: Kubernetes API
- 80: HTTP
- 443: HTTPS
- 30000-32767: NodePort范围
3. **证书签发**: 首次HTTPS访问需等待1-2分钟证书签发
4. **ArgoCD同步**: ArgoCD每3分钟检查一次Git仓库更新
## 📚 相关文档
- [完整部署指南](./JPD-CLUSTER-DEPLOYMENT.md)
- [手动部署指南](./MANUAL-DEPLOYMENT-GUIDE.md)
- [集群迁移指南](./CLUSTER-MIGRATION-GUIDE.md)
---
**当前状态**: K3s集群已部署等待部署Gitea和ArgoCD
**下一步**: SSH到master节点按照上述步骤继续部署