提问者:小点点

如何从localhost(例如Cassandra)直接访问localhost库伯内特斯上的有状态pods端口-需要什么路由?


我想在localhost上使用库伯内特斯构建一些测试环境(可以是Docker Desktop. minikube,…)。我想将我的客户端连接到K8s集群中localhostCassandra的3个实例。Cassandra就是一个例子,它可以在etcd,redis,…或任何StatefulSet中相同。

  1. 我在localhost库伯内特斯的相同端口上创建了3个副本。
  2. 我创建Services来公开每个pod。

接下来我应该做什么来路由使用三个不同名称的流量cassandra-0cassandra-1cassandra-2和相同的端口。这是驱动程序所需要的-我不能转发单个端口,因为驱动程序需要在同一端口上运行所有实例。

所以它应该是cassandra-0:9042cassandra-1:9042cassandra-0:9042

我想通过使用一些东西来实现红线连接…-我不知道在K8s中使用什么-也许是服务。


共1个答案

匿名用户

我会说你应该定义一个节点端口并将请求发送到localhost:NodePort

  ports: 
   - protocol: TCP 
     port: 8081 
     targetPort: 8080 
     nodePort: 32000

只需更改您的端口,使其符合您的需求。

如果您已经创建了暴露端口的服务,请获取所有endpoint并尝试将流量转向它们。

kubectl get endpoints -A