【问题标题】:Connection refused to Kubernetes Pod from CronJob on the same Cluster拒绝从同一集群上的 CronJob 连接到 Kubernetes Pod
【发布时间】:2019-12-22 01:29:03
【问题描述】:

我目前正在使用具有微服务架构的 Google Cloud 上的 Kubernetes。在集群中,我有不同的 Pod,每个 Pod 都可以使用 ClusterIp 通过 curl 与其他 Pod 通信。

我的问题是我需要使用 ClusterIp 不时调用其中一个 Pod 的端点。为此,我创建了一个 CronJob,它会卷曲 pod 的端点,但它总是返回:

curl: (7) Failed to connect to xx.xx.xx.xx port 8080: Connection refused

这是 cronJob 的 yaml。

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: cronjob-test # name of the CronJob
spec:
  schedule: "*/1 * * * *" # run every minute
  concurrencyPolicy: Replace
  jobTemplate:
    spec:
      template:
        spec:
          containers:
            - name: cronjob-test
              image: appropriate/curl
              args:
              - /bin/sh
              - -c
              - curl -X POST http://${CLUSTER_IP}:${CLUSTER_PORT}/api/test/
          restartPolicy: Never

【问题讨论】:

  • 首先,你不应该使用 ClusterIP,你应该使用服务。
  • 可能包括您的服务和部署如何确定是否存在问题。此外,请说明您是否能够 cURL 访问 ClusterIP 的其他 pod,如果可以,您是否通过 IP 地址或 FQDN 对它们进行 cURL。
  • 我可以使用创建的 ClusterIp 类型的 Service 生成的 IP 地址和端口成功地在所有 Pod 之间执行 curl。
  • 什么是 CLUSTER_IP 和 CLUSTER_PORT (8080) 值? CLUSTER_IP 是否可能是 CronJob 的 pod 本身的集群 IP?在任何情况下,除非已修复 (kubernetes.io/docs/concepts/services-networking/service/…),否则 Service-s 集群 IP 在出于某种原因重新创建 Service 对象时会发生变化,因此通常最好使用 Service 名称。
  • 如果我在 de curl 之前延迟(睡眠 10)它会起作用,为什么会发生这种情况

标签: kubernetes google-cloud-platform kubernetes-pod kubernetes-cronjob


【解决方案1】:

istio-proxy sidecar 与仅包含 alpine 的工作负载相比,启动起来非常慢。

当您的工作负载已经发出请求,而 istio-proxy 尚未准备好,甚至尚未在 Pilot 中注册时,这将导致问题。这就是为什么如果您在实际发送请求之前sleep 10 它会起作用。

【讨论】:

    【解决方案2】:

    在我看来,dns-pod-service 包含您需要的解决方案。

    如果您想使用服务,可以在这里找到服务的 FQDN。如果您使用 pod,您还可以找到 pod 的 FQDN 名称(有/没有无头服务)。

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题。在我通过将标签 istio-injection=disabled 添加到命名空间来禁用 istio sidecar 注入之后。一切正常。

      【讨论】:

        猜你喜欢
        • 2021-04-19
        • 2019-04-24
        • 2016-02-02
        • 2017-12-28
        • 1970-01-01
        • 2020-10-15
        • 2020-06-10
        • 1970-01-01
        • 2021-07-22
        相关资源
        最近更新 更多