Files
k3s_auto_deploy/JPD-NEXT-STEPS.md

273 lines
5.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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节点按照上述步骤继续部署