是否可以将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文档中看到了这一点,但现在找不到。
答案 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
希望这会有所帮助!