如何在Kubernetes中发生两个不同 beans 荚之间的通信?
在我的情况下,我有两个pod:前端和后端,两者都有不同的容器 . 我希望我的前端pod与后端pod通信,但我没有IP(即硬编码) .
是否有可能通过服务?
通过服务可以吗?
是的,services是处理此问题的推荐方法 . 为每个pod(或复制控制器,如建议)设置服务后,您可以通过service environment variable找到服务IP,例如, BACKEND_SERVICE_HOST 和 BACKEND_SERVICE_PORT 用于"backend"服务 .
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进行通信的默认方法 .
$host = 'redis-master';
redis-master
哪个是在 redis-master-service.yaml 中定义的:https://github.com/kubernetes/kubernetes/blob/3574999fa34d54c47f43efd9eaff7e1c571c7910/examples/guestbook/redis-master-service.yaml
redis-master-service.yaml
2 回答
是的,services是处理此问题的推荐方法 . 为每个pod(或复制控制器,如建议)设置服务后,您可以通过service environment variable找到服务IP,例如,
BACKEND_SERVICE_HOST
和BACKEND_SERVICE_PORT
用于"backend"服务 .建议的方法是使用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