5.8 KiB
5.8 KiB
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节点
ssh fei@149.13.91.216
步骤2: 配置kubectl(在master节点上)
# 配置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节点上)
# 下载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: 上传部署脚本(在本地机器上)
# 回到本地机器,上传所有脚本到master节点
cd /home/fei/opk3s/k3s自动化部署
scp -r scripts/ config/ fei@149.13.91.216:/home/fei/k3s-deploy/
步骤5: 部署Gitea(在master节点上)
# 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节点上)
# 运行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节点上)
# 部署cert-manager和配置HTTPS
bash scripts/deploy-https.sh
# 等待证书签发(约1-2分钟)
watch kubectl get certificate --all-namespaces
步骤8: 部署测试应用(在master节点上)
# 部署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节点上执行:
# 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
📊 验证部署
查看所有资源
# 查看所有命名空间
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密码
kubectl -n argocd get secret argocd-initial-admin-secret \
-o jsonpath="{.data.password}" | base64 -d && echo
🔍 故障排查
Pod无法启动
# 查看Pod详情
kubectl describe pod <e> -n <namespace>
# 查看Pod日志
kubectl logs <pod-name> -n <namespace>
# 查看事件
kubectl get events -n <namespace> --sort-by='.lastTimestamp'
服务无法访问
# 检查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未解析
# 检查DNS配置
nslookup git.jpd.net3w.com
# 如果DNS未生效,使用NodePort访问
kubectl get svc -n gitea
# 访问 http://149.13.91.216:<NodePort>
📝 重要提示
-
DNS配置: 确保已在域名服务商配置DNS解析:
*.jpd.net3w.com A 149.13.91.216 -
防火墙: 确保以下端口已开放:
- 6443: Kubernetes API
- 80: HTTP
- 443: HTTPS
- 30000-32767: NodePort范围
-
证书签发: 首次HTTPS访问需等待1-2分钟证书签发
-
ArgoCD同步: ArgoCD每3分钟检查一次Git仓库更新
📚 相关文档
当前状态: K3s集群已部署,等待部署Gitea和ArgoCD 下一步: SSH到master节点,按照上述步骤继续部署