Kubernetes:如何将服务映射到Pod内的本地端口

时间:2019-04-04 15:22:02

标签: kubernetes

是否可以将Kubernetes服务映射到一组Pod(部署)的特定端口? 例如。我有服务(仅作为示例)

kind: Service
apiVersion: v1
metadata:
  name: my-service
spec:
  selector:
    app: MyApp
  ports:
  - protocol: TCP
    port: 8081
    targetPort: 8081

我希望这项服务可以在某些特定部署的pod中以http://localhost:8081/的形式使用。

在我看来,几天前我在K8S文档中看到了这一点,但现在找不到。

1 个答案:

答案 0 :(得分:1)

查看您对K8s服务的使用情况可能会有所帮助。如果您已将Pod部署作为服务公开,则您的服务将定义端口映射,并且您将能够通过服务端口上的群集DNS名称访问服务。

如果您必须通过本地主机访问服务,我假设您的用例是您的pod中一些紧密耦合的容器。在这种情况下,您可以在部署yaml中定义一个“ containerPort”,并在同一容器中的localhost上添加需要相互通信的容器。

如果localhost指的是您自己的本地开发计算机,则可以执行port-forward。只要端口转发过程正在运行,您就可以从localhost访问Pod的端口。在port-forwarding中查找更多信息。简单示例:

kubectl port-forward redis-master-765d459796-258hz 6379:6379 
# or
kubectl port-forward service/redis 6379:6379 

希望这会有所帮助!