Files
k3s_auto_deploy/JPD-NEXT-STEPS.md

5.8 KiB
Raw Blame History

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>

📝 重要提示

  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仓库更新

📚 相关文档


当前状态: K3s集群已部署等待部署Gitea和ArgoCD 下一步: SSH到master节点按照上述步骤继续部署