docker - 如何实现 Kubernetes POD 到 POD 的通信?
问题描述
这个问题之前已经在stackoverflow上提出并回答了,但是因为我是K8的新手,所以我不明白答案。
假设我有两个容器,每个容器在一个单独的 POD 中(因为我相信这是推荐的方法),我想我需要为我的两个 pod 创建一个单独的服务。
- 我的 java 应用程序代码如何获取服务的 IP 地址?
- 我的 java 应用程序代码如何(从服务)获取另一个 POD/容器的 IP 地址?
- 这将是一个 IP 地址列表,因为它们是无状态的,并且可能会被复制。这个对吗?
- 如何选择要与之通信的最不繁忙的 POD 实例?
谢谢齐格弗里德
解决方案
我的 java 应用程序代码如何获取服务的 IP 地址?
您需要创建一个 Service 来公开 Pod 的端口,然后您只需要使用 Service 名称,kube-dns 将解析 Pod 的 IP 地址
我的 java 应用程序代码如何(从服务)获取另一个 POD/容器的 IP 地址?
是的,使用服务的名称
这将是一个 IP 地址列表,因为它们是无状态的,并且可能会被复制。这个对吗?
Service 将在所有匹配选择器的 Pod 之间进行负载均衡,因此它可以是 0、1 或任意数量的 Pod
如何选择要与之通信的最不繁忙的 POD 实例?
常见的方法是循环策略,但这里有其他特定的平衡策略 https://kubernetes.io/docs/concepts/services-networking/service/#proxy-mode-ipvs
干杯;)
推荐阅读
- macos - 为什么我无法在 macOS 上更改环境变量 $USERNAME?
- c++ - 如何提取将使用 clang 生成的所有符号?
- javascript - Select2:为什么复制的代码演示不起作用?
- java - 从数组中查找元素的最大长度
- assembly - 如何区分 lc3 操作码和 lc3 处理器指令
- java - org.glassfish.jersey.servletServletContainer.service() 挂了太久
- swift - Swift 交互式过渡 - 取消过渡时,来自第二个视图控制器的视图正在闪烁
- python - print(object.method) 不打印预期的输出?
- javascript - 如何将 ES6 require() 语句移植到 typescript
- php - 加密密码哈希作为胡椒的替代品