# 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 -n # 查看Pod日志 kubectl logs -n # 查看事件 kubectl get events -n --sort-by='.lastTimestamp' ``` ### 服务无法访问 ```bash # 检查Service kubectl get svc -n # 检查Ingress kubectl describe ingress -n # 测试内部访问 kubectl run test-pod --rm -it --image=curlimages/curl -- \ curl http://..svc.cluster.local ``` ### DNS未解析 ```bash # 检查DNS配置 nslookup git.jpd.net3w.com # 如果DNS未生效,使用NodePort访问 kubectl get svc -n gitea # 访问 http://149.13.91.216: ``` ## 📝 重要提示 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节点,按照上述步骤继续部署