【问题标题】:Pod Communication吊舱通信
【发布时间】:2015-12-02 17:11:57
【问题描述】:

Kubernetes 中两个不同 pod 之间的通信是如何发生的?

就我而言,我有两个 pod:frontendbackend,它们都有不同的容器。 我希望我的前端 pod 与后端 pod 通信,但我不想使用后端 pod 的 IP(即硬编码)。

可以通过服务实现吗?

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    可以通过服务实现吗?

    是的,services 是处理此问题的推荐方法。为每个 pod(或推荐的复制控制器)设置服务后,您可以通过 service environment variable 找到服务 IP,例如BACKEND_SERVICE_HOSTBACKEND_SERVICE_PORT 用于“后端”服务。

    【讨论】:

      【解决方案2】:

      推荐的方法是使用 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中定义的

      【讨论】:

      • $host = 'redis-master' 这个 'redis-master' 从 redis-master-service.yaml 文件中的哪个字段定义?姓名?标签名称?或选择器名称?谢谢!
      猜你喜欢
      • 1970-01-01
      • 2017-08-24
      • 1970-01-01
      • 2021-04-20
      • 2020-12-08
      • 2016-10-22
      • 1970-01-01
      • 1970-01-01
      • 2021-08-28
      相关资源
      最近更新 更多