来自 Kubernetesdocs http://kubernetes.io/docs/user-guide/pods/:
Pod 中的应用程序都使用相同的网络命名空间(相同的 IP 和端口空间),因此可以“find” 彼此并使用本地主机进行通信。
是否可以使用一些容器特定名称来代替locahost
?
例如,与docker-compose up
, 你用服务名称进行沟通。[docs] https://docs.docker.com/compose/networking/
所以,如果我的docker-compose.yml file is
version: '2'
services:
web:
build: .
ports:
- "8000:8000"
srv:
build: .
ports:
- "3000:3000"
然后我访问srv
从内部web
通过致电http://srv:3000/
, not http://localhost:3000
如何在 kubernetes 中实现相同的行为?有什么方法可以指定在 pod 的 yaml 配置中使用什么名称?
localhost
只是网络环回设备的名称(通常127.0.0.1
对于 IPv4 和::1
对于 IPv6)。这通常在您的/etc/hosts
file.
Pod 有自己的 IP,因此内部的每个容器共享该 IP。如果这些容器应该是独立的(即不需要并置),那么它们应该各自位于自己的 Pod 中。然后,您可以定义一个service http://kubernetes.io/docs/user-guide/services/#defining-a-service对于每个允许从同一命名空间中的 pod 进行 DNS 查找的“$SERVICENAME”,或从不同命名空间中的 pod 进行“$SERVICENAME.$NAMESPACE”的 DNS 查找。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)