You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

K3s集群配置AWX的Traefik Ingress遇404问题求助

解决K3s集群中AWX的Ingress配置问题

先确认AWX服务基础信息

首先执行命令确认AWX服务的名称和端口:

kubectl get svc -n awx

正常会输出类似内容:

NAME            TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
awx-service     ClusterIP   10.43.XXX.XXX   <none>        80/TCP     5d

记住服务名awx-service和端口80,后续Ingress配置要指向这个服务。

针对第一次尝试的问题修正

  1. Host解析问题:

    • 若使用rocky作为host,需要在客户端的hosts文件中添加映射:集群节点IP rocky(Linux/macOS编辑/etc/hosts,Windows编辑C:\Windows\System32\drivers\etc\hosts)。
    • 也可直接使用可正常解析的域名(比如第二次尝试的rocky-k3-1.XXXXXX.com),确保该域名指向集群任一节点的内网/公网IP。
  2. 路径/awx的重写配置:
    AWX默认以根路径提供服务,Ingress指定/awx路径时必须配置路径重写,将/awx/*转换为AWX能识别的根路径请求。适配K3s默认Traefik的Ingress示例:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: awx-ingress
  namespace: awx
  annotations:
    traefik.ingress.kubernetes.io/rewrite-target: /$2
    traefik.ingress.kubernetes.io/router.entrypoints: web
spec:
  ingressClassName: traefik
  rules:
  - host: rocky
    http:
      paths:
      - path: /awx(/|$)(.*)
        pathType: Prefix
        backend:
          service:
            name: awx-service
            port:
              number: 80

配置后访问http://rocky/awx,Traefik会自动将请求重写为AWX服务可处理的格式。

针对第二次尝试的问题修正

  1. 调整路径范围:
    仅配置/login路径会导致AWX的静态资源、API请求无法通过Ingress转发,必须覆盖所有路径。正确的Ingress配置示例:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: awx-ingress
  namespace: awx
  annotations:
    traefik.ingress.kubernetes.io/router.entrypoints: web
spec:
  ingressClassName: traefik
  rules:
  - host: rocky-k3-1.XXXXXX.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: awx-service
            port:
              number: 80

该配置会将所有发往rocky-k3-1.XXXXXX.com的请求转发到AWX服务,包括登录页、静态资源、API等。

  1. 验证Ingress状态:
    执行命令检查Ingress是否正常绑定:
kubectl get ingress -n awx

输出的ADDRESS列应显示集群节点IP,READY列显示True。若READY为False,查看Traefik日志排查错误:

kubectl logs -n kube-system deployment/traefik
  1. 测试访问:
    先验证域名解析是否正确:
nslookup rocky-k3-1.XXXXXX.com

确认返回集群节点IP后,执行curl测试:

curl http://rocky-k3-1.XXXXXX.com/login

应返回AWX登录页的HTML内容,而非404错误。

额外注意事项

  • 确保K3s的Traefik Ingress Controller正常运行:kubectl get pods -n kube-system | grep traefik,所有pod需处于Running状态。
  • 若启用HTTPS,需在Ingress中配置TLS证书,同时将后端端口改为AWX的HTTPS端口(通常为443)。

内容的提问来源于stack exchange,提问作者Red Cricket

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 14:10:16