首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Argo工作流健康检查在GKE中失败

Argo工作流健康检查在GKE中失败
EN

DevOps用户
提问于 2022-06-12 19:55:47
回答 1查看 233关注 0票数 0

我正在尝试将我的argo工作流部署公开到一个域,但是当我访问域: argo.example.com时,我一直会得到服务器错误。我设置了一个GKE入口,并试图通过将http重定向到https来修复健康检查,这就是为什么我添加了一个自定义的FrontendConfig和BackendConfig。然而,我看到的健康检查"/“通过。请参见下面的配置。

argo-server命令args:

代码语言:javascript
复制
...
- args:
    - server
    - --namespaced
    - --auth-mode
    - server
    - --secure
    - "true"
...

入口:

代码语言:javascript
复制
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: argo-ingress
  annotations:
    networking.gke.io/managed-certificates: "argo-cert"
    networking.gke.io/v1beta1.FrontendConfig: argo-frontend-config
spec:
  rules:
    - host: argo.example.com
      http:
        paths:
          - backend:
              service:
                name: argo-server-expose
                port:
                  number: 2746
            path: /*
            pathType: ImplementationSpecific

前部:

代码语言:javascript
复制
apiVersion: networking.gke.io/v1beta1
kind: FrontendConfig
metadata:
  name: argo-frontend-config
  namespace: argo
spec:
  redirectToHttps:
    enabled: true

后端:

代码语言:javascript
复制
apiVersion: cloud.google.com/v1
kind: BackendConfig
metadata:
  name: argo-backend-config
  namespace: argo
spec:
  healthCheck:
    checkIntervalSec: 30
    timeoutSec: 5
    healthyThreshold: 1
    unhealthyThreshold: 2
    type: HTTPS
    requestPath: /
    port: 2746

服务:

代码语言:javascript
复制
apiVersion: v1
kind: Service
metadata:
  name: argo-server-expose
  namespace: argo
  annotations:
    cloud.google.com/neg: '{"ingress": true}'
    cloud.google.com/backend-config: '{"ports": {"http":"argo-backend-config"}}'
spec:
  type: NodePort
  ports:
    - name: http
      port: 2746
      protocol: TCP
      targetPort: 2746
  selector:
    app: argo-server
EN

回答 1

DevOps用户

发布于 2022-12-31 02:46:32

不要使用GKE入口,这是一场噩梦。使用nginx控制器舵包代替。您必须配置如下内容:

代码语言:javascript
复制
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: argo-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/backend-protocol: http
    cert-manager.io/cluster-issuer: "letsencrypt"
spec:
  rules:
    - host: argo.example.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: argo-system-argo-workflows-server
                port:
                  number: 2746
  tls:
  - hosts:
      - argo.example.com
    secretName: argo-tls-cert
票数 0
EN
页面原文内容由DevOps提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://devops.stackexchange.com/questions/16123

复制
相关文章

相似问题

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