首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ArgoCD &Traefik2.x:如何将argocd-服务器部署配置为禁用TLS运行(在何处放置-不安全标志)

ArgoCD &Traefik2.x:如何将argocd-服务器部署配置为禁用TLS运行(在何处放置-不安全标志)
EN

Stack Overflow用户
提问于 2022-03-31 12:57:08
回答 2查看 2.1K关注 0票数 4

我们有一个设置,Traefik作为侵入控制器/ CRD和ArgoCD。我们将ArgoCD安装到我们的EKS装置中,如阿戈被盯着的向导中所述

代码语言:javascript
复制
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

现在,正确配置Traefik的就像医生说的那样 IngressRoute对象如下所示:

代码语言:javascript
复制
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: argocd-server
  namespace: argocd
spec:
  entryPoints:
    - websecure
  routes:
    - kind: Rule
      match: Host(`argocd.tekton-argocd.de`)
      priority: 10
      services:
        - name: argocd-server
          port: 80
    - kind: Rule
      match: Host(`argocd.tekton-argocd.de`) && Headers(`Content-Type`, `application/grpc`)
      priority: 11
      services:
        - name: argocd-server
          port: 80
          scheme: h2c
  tls:
    certResolver: default

现在是医生里有个窃听器 -所以一定要删除options: {}以便让Traefik接受配置。

Traefik显示仪表板上的一切都很好:

但是,如果我们试图访问ArgoCD仪表板在https://argocd.tekton-argocd.de,我们得到了多个HTTP 307重定向,最后不能访问仪表板。您可以看到开发人员工具中的重定向:

在寻找解决方案时,我们已经找到了本期,其中描述了问题:

问题是,在默认情况下,Argo-CD处理TLS终止本身,并且总是将HTTP请求重定向到HTTPS。结合一个入口控制器,它也处理TLS终止,并且总是与后端服务使用HTTP通信,您就可以得到Argo-CD的服务器,它总是以重定向到HTTPS的方式响应。

此外,还勾勒出了解决方案:

其中一个解决方案是在argocd上禁用HTTPS,这可以通过在argocd服务器上使用--不安全的标志来实现。

但是,如何配置argocd-server部署以将--insecure标志添加到argocd-server命令中??因为它也是在ArgoCD文档中声明

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-31 12:57:08

0。为什么使用Kustomize的声明式ArgoCD设置是配置自定义参数的好方法?

关于如何配置ArgoCD有多个选项。一个很好的方法是使用声明式方法,这应该是默认的Kubernetes风格。浏览ArgoCD文档有一个附加配置部分,其中可以找到ConfigMap argocd-cmd-params-cm的可能标志。这些标志在argocd-cmd-params-cm.yaml中描述。其中之一是旗标server.insecure

代码语言:javascript
复制
## Server properties
# Run server without TLS
server.insecure: "false"

https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml附带的argocd-server部署将使用此参数,如果它是在argocd-cmd-params-cm ConfigMap中定义的。

为了以声明的方式配置ArgoCD配置,ArgoCD文档有一个很好的部分介绍了如何使用库斯托姆进行配置。事实上,ArgoCD团队本身使用这种方法来部署他们自己的ArgoCD实例--在这里可以使用动态部署,https://cd.apps.argoproj.io/和配置使用可以在GitHub上找到

将此应用于我们的用例中,我们需要将ArgoCD安装从简单地使用kubectl apply -f切换到基于库口化的安装。ArgoCD文档也有关于如何做到这一点的一节。以下是简单的步骤:

创建一个带有新文件argocd/installation kustomization.yaml目录

我们稍微增强了文档中提出的kustomization.yaml

代码语言:javascript
复制
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

resources:
  - https://raw.githubusercontent.com/argoproj/argo-cd/v2.3.3/manifests/install.yaml

## changes to config maps
patchesStrategicMerge:
  - argocd-cmd-params-cm-patch.yml

namespace: argocd

因为docs状态

建议将清单作为远程资源包括在内,并使用Kustomize修补程序应用其他自定义。

我们使用patchesStrategicMerge配置键,它包含我们需要创建的另一个名为argocd-cmd-params-cm-patch.yml的新文件。

argocd-cmd-params-cm-patch.yml 2.创建一个新的文件

这个新文件只包含我们希望在ConfigMap argocd-cmd-params-cm中更改的配置。

代码语言:javascript
复制
apiVersion: v1
kind: ConfigMap
metadata:
  name: argocd-cmd-params-cm
data:
  server.insecure: "true"

kubectl apply -k 3.使用库口化文件& ArgoCD安装ArgoCD

有一个单独的kustomize CLI可以安装,例如通过brew install kustomize。但是,当Kustomize构建到kubectl中时,我们只需使用kubectl apply -k并将其指向新创建的argocd/installation目录,如下所示。我们还需要确保创建了argocd命名空间:

代码语言:javascript
复制
kubectl create namespace argocd --dry-run=client -o yaml | kubectl apply -f -    
kubectl apply -k argocd/installation

这将安装ArgoCD,并将argocd-server部署配置为根据需要使用--insecure标志,以阻止Argo处理TLS终止本身并将该责任交给Traefik。现在访问https://argocd.tekton-argocd.de应该像预期的那样打开ArgoCD仪表板:

票数 8
EN

Stack Overflow用户

发布于 2022-05-04 21:19:03

您可以使用这个traefik规则:

代码语言:javascript
复制
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: argocd-server
  namespace: argocd
spec:
  entryPoints:
    - websecure
  routes:
    - kind: Rule
      match: Host(`argocd.example.com`)
      priority: 10
      services:
        - name: argocd-server
          port: 80
    - kind: Rule
      match: Host(`argocd.example.com`) && Headers(`Content-Type`, `application/grpc`)
      priority: 11
      services:
        - name: argocd-server
          port: 80
          scheme: h2c
  tls: {}

它适用于我使用traefik 2.6.3。

麻烦在tls: {}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71692891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档