kubernetes - "externalTrafficPolicy"设置为 "Local"时无响应

标签 kubernetes

externalTrafficPolicy: Local 时,我无法访问以下 Kubernetes 服务设置。我直接通过 NodePort 访问它,但总是超时。

{
  "kind": "Service",
  "apiVersion": "v1",
  "metadata": {
    "name": "echo",
    "namespace": "default",
    "selfLink": "/api/v1/namespaces/default/services/echo",
    "uid": "c1b66aca-cc53-11e8-9062-d43d7ee2fdff",
    "resourceVersion": "5190074",
    "creationTimestamp": "2018-10-10T06:14:33Z",
    "labels": {
      "k8s-app": "echo"
    }
  },
  "spec": {
    "ports": [
      {
        "name": "tcp-8080-8080-74xhz",
        "protocol": "TCP",
        "port": 8080,
        "targetPort": 3333,
        "nodePort": 30275
      }
    ],
    "selector": {
      "k8s-app": "echo"
    },
    "clusterIP": "10.101.223.0",
    "type": "NodePort",
    "sessionAffinity": "None",
    "externalTrafficPolicy": "Local"
  },
  "status": {
    "loadBalancer": {}
  }
}

我知道对于这个服务的 pod 需要在一个节点上可用,因为流量不会路由到其他节点。我检查了这个。

最佳答案

不确定您从哪里连接以及您正在键入什么命令来测试连接或您的环境是什么样的。但这很可能是由于 this known issue使用 externalTrafficPolicy 无法访问节点端口的地方设置为 Local如果kube-proxy找不到运行它的节点的 IP 地址。

link对这个问题有更多的了解。显然 --hostname-override从 K8s 1.10 开始,kube-proxy 上的 kube-proxy 不起作用。您必须指定 HostnameOverride kube-proxy ConfigMap 中的选项。还有一个修复描述 here这将使它在撰写本文后的某个时候成为上游。

关于kubernetes - "externalTrafficPolicy"设置为 "Local"时无响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52817382/

相关文章:

kubernetes - 无法在 Kubernetes (Google Cloud) 中的持久卷上保存数据

docker - "mkdir vault: permission denied"将 docker-vault 与 kubernetes 一起使用时

kubernetes - Kubernetes:对于包括本地在内的所有环境,是否可能具有完全相同的部署描述符?

docker - kube-dns 无法解析 'kubernetes.default.svc.cluster.local'

kubernetes - 重启 master 并在节点上丢失 pod

kubernetes - kubectl执行权限被拒绝

Kubernetes:列出节点的所有 pod 和 pod 状态

c# - kubernetes集群中的C#gRPC无法将DNS名称解析为其他服务

kubernetes - Kubectl exec 超时

kubernetes - Helm list 尝试连接到 localhost 而不是 Kubernetes