Argocd 加载静态资源失败 UI

Argocd Failed to Get Static Asset when Loading UI

ArgoCD 的新手。我已经在我的 EKS 集群上部署了 ArgoCD,前面有一个 AWS ALB 控制器。

  ...
  kubernetes.io/ingress.class: alb
  alb.ingress.kubernetes.io/listen-port: '[{"HTTPS":443}]'
  name: argo-ingress
  namespace: argocd
 spec:
  rules:
  - host: argocd.example.com
    http:
      paths:
      - backend:
          serviceName: argocd-server
          servicePort: 80
        path: / 

鉴于 SSL 在 ALB 终止,我使用以下参数部署了 API 服务器和 API 服务器:

 spec:
  containers: 
  - command:
    - argocd-server
    - --insecure
    - --staticassets
    - /shared/app

当我在集群上转发 ArgoCD 时,我能够在本地检索对象。

HTTP request sent, awaiting response... 200 OK
Length: 2080536 (2.0M) [application/javascript]
Saving to: ‘main.12b930b6a3d660c9da5a.js.2’

100%[===================================================================================================================>] 2,080,536   --.-K/s   in 0.03s

2020-10-26 02:14:53 (64.2 MB/s) - ‘main.12b930b6a3d660c9da5a.js.2’ saved [2080536/2080536]

但是,当我使用浏览器访问 UI 时,我得到 200 MSG 和空白 UI 页面,并且 main.js 和图像出现 400 错误。 谁能帮我解决这个问题?

我设法找到了问题所在。 入口控制器规则中有错字。结果,所有请求都由导致 404 的最后一个 ALB 规则处理。修复是在路径中包含一个“*”。见下文:

  ...
  kubernetes.io/ingress.class: alb
  alb.ingress.kubernetes.io/listen-port: '[{"HTTPS":443}]'
  name: argo-ingress
  namespace: argocd
 spec:
  rules:
  - host: argocd.example.com
    http:
      paths:
      - backend:
          serviceName: argocd-server
          servicePort: 80
        path: /*