proxy - 为什么我的 kubernetes 服务找不到端点?

标签 proxy docker coreos kubernetes

我在 coreos 上运行 kubernetes 集群。

我有一个运行良好的 kubernetes 复制 Controller 。它看起来像这样:

id: "redis-controller"
kind: "ReplicationController"
apiVersion: "v1beta3"
metadata:
  name: "rediscontroller"
  lables:
    name: "rediscontroller"
spec:
  replicas: 1
  selector:
    name: "rediscontroller"
  template:
    metadata:
      labels:
        name: "rediscontroller"
    spec:
      containers:
        - name: "rediscontroller"
          image: "redis:3.0.2"
          ports:
            - name: "redisport"
              hostPort: 6379
              containerPort:  6379
              protocol: "TCP"

但是我为上述复制 Controller 的 pod 提供了一个服务,如下所示:
id: "redis-service"
kind: "Service"
apiVersion: "v1beta3"
metadata:
  name: "redisservice"
spec:
  ports:
    - protocol: "TCP"
      port: 6379
      targetPort: 6379
  selector:
    name: "redissrv"
  createExternalLoadBalancer: true
  sessionAffinity: "ClientIP"

kube-proxy 的日志对服务有这样的说法:
Jul 06 21:18:31 core-01 kube-proxy[6896]: E0706 21:18:31.477535    6896 proxysocket.go:126] Failed to connect to balancer: failed to connect to an endpoint.
Jul 06 21:18:41 core-01 kube-proxy[6896]: E0706 21:18:41.353425    6896 proxysocket.go:81] Couldn't find an endpoint for default/redisservice:: missing service entry

据我了解,我确实将服务指向正确的 pod 和正确的端口,但我错了吗?

更新 1

我注意到另一个可能的问题,在修复了 Alex 提到的问题后,我注意到在其他服务中,它使用 websockets,该服务找不到端点。这是否意味着服务需要一个 http 端点来轮询?

最佳答案

额外的东西要检查。

只有在您的部署被认为是健康的情况下才会创建端点。如果您错误地定义了您的 readinessProbe(我的过错)或者部署没有正确地对其使用react,则不会创建端点。

关于proxy - 为什么我的 kubernetes 服务找不到端点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31255934/

相关文章:

elasticsearch - kubernetes 调度器是否支持反亲和性?

python - 无法使用 python 连接到 *.onion 站点(<urlopen 错误 [Errno 11001] getaddrinfo 失败>)

java - Hibernate.initialize() 如何工作

nginx - 如何在 CoreOS 中负载均衡服务?

使用 VSCode 开发容器的 Docker 设置中的 Docker : How to access running docker containers on the host machine

docker - docker-compose错误 “Cannot locate specified Dockerfile: Dockerfile”

linux - iptables 通过注释删除特定规则

java - HTTP 代理连接共享

http.Client.Do 停止执行没有任何错误

docker - Packetbeat无法连接到elasticsearch docker