簡體   English   中英

Argo 事件:通過 Azure 子網上的 K8s 負載均衡器公開 Webhook

[英]Argo Events: Exposing Webhook Through a K8s Load Balancer on Azure Subnet

我正在嘗試通過 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

有什么建議么?

我正在嘗試在 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 中刪除服務字段對象從端口轉發重構樣本。 希望能幫助到你。 我仍在努力完成這項工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM