加载UI时Argocd无法获取静态资产

问题描述

ArgoCD的新功能。我已经在带有AWS ALB控制器的EKS集群上部署了ArgoCD。

  ...
  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错误。 谁能帮我解决这个问题?

解决方法

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

  ...
  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: /*  

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...