如何在Kubernetes中发生两个不同豆荚之间的通信?
在我的情况下,我有两个pod:前端和后端,两者都有不同的容器.我希望我的前端pod与后端pod通信,但我不想使用后端pod的IP(即硬编码).
是否有可能通过服务?
是否有可能通过服务?
是的,服务是处理此问题的推荐方法.一旦你有你的服务设置为每荚(或复制控制器,如我们推荐的),你可以找到通过服务IP 服务环境变量,例如,BACKEND_SERVICE_HOST
和BACKEND_SERVICE_PORT
一个"后台"服务.
建议的方法是使用DNS群集加载项:http://kubernetes.io/docs/user-guide/services/#dns
来自'留言簿'应用的示例:
https://github.com/kubernetes/kubernetes/blob/3574999fa34d54c47f43efd9eaff7e1c571c7910/examples/guestbook/php-redis/guestbook.php#L13
他们使用:$host = 'redis-master';
作为与redis-master
pod 通信的默认方法.
其定义redis-master-service.yaml
如下:https://github.com/kubernetes/kubernetes/blob/3574999fa34d54c47f43efd9eaff7e1c571c7910/examples/guestbook/redis-master-service.yaml