【问题标题】:Argo Events: Exposing Webhook Through a K8s Load Balancer on Azure SubnetArgo 事件:通过 Azure 子网上的 K8s 负载均衡器公开 Webhook
【发布时间】:2022-05-18 04:34:43
【问题描述】:

我正在尝试通过 K8s 负载均衡器将 POST 请求路由到 Argo Events 中的 Webhook。我找不到任何明确的文档。我能够创建 Webhook,并且当我移植 webhook-eventsource-svc 时,我可以成功地与它通信。负载均衡器构建良好并显示我分配的外部 IP。但是,当我尝试 POST 到负载均衡器时,我只会收到连接超时错误。我希望我只是错误地配置了这些清单。

这是两个服务的清单。

apiVersion: argoproj.io/v1alpha1
kind: EventSource
metadata:
  name: webhook
  namespace: argo-events
spec:
  service:
    ports:
    - port: 12000
      targetPort: 12000
  webhook: 
    example:
      endpoint: /deploy
      method: POST
      port: "12000"
---
apiVersion: v1
kind: Service
metadata:
  name: webhook-loadbalancer
  namespace: argo-events
  annotations:
    service.beta.kubernetes.io/azure-load-balancer-internal: "true"
    service.beta.kubernetes.io/azure-load-balancer-internal-subnet: DevelopSubnet
spec:
  type: LoadBalancer
  loadBalancerIP: 1XX.X.X.XXX
  ports:
  - protocol: TCP   
    port: 90
    targetPort: 12000
  selector:
    app: webhook-eventsource-svc
    controller: eventsource-controller

这是我发送请求的方式:

curl -d '@params.json' -H "Content-Type: application/json" -X POST http://1XX.X.X.XXX:90/deploy

有什么建议吗?

【问题讨论】:

    标签: azure kubernetes webhooks argo-events argo


    【解决方案1】:

    我正在尝试在 AWS 中做类似的事情。我可以让示例 webhook 与端口转发 (https://argoproj.github.io/argo-events/quick_start/) 一起使用,但它不适用于常规 K8s 对象。在我的例子中,一个 Ingress 和一个 Service 对象。我可以看到我的服务选择器正确选择了 webhook 传感器吊舱。 Argo Events 和 Argo Workflow 都在同一个 argo 命名空间中运行。配置完成后,从 Postman 访问 Ingress 会返回 404。令我感到困惑的是,示例中传感器 pod 暴露的实际端口是 7777,而不是 12000。因此,我尝试使用端口 12000 / TargetPort 12000 或7777. 在任何一种情况下,POST 都会返回 404。

    我可以指出这适用于您的情况,而我的情况是第二段中的 (https://argoproj.github.io/argo-events/eventsources/services/),它指出您必须从 EventSource 对象中删除服务字段才能从端口转发重构示例。希望能帮助到你。我仍在努力完成这项工作。

    【讨论】:

      猜你喜欢
      • 2020-05-29
      • 2018-10-12
      • 2021-12-24
      • 2018-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-14
      • 1970-01-01
      相关资源
      最近更新 更多