在K8S中链接POD中的容器

时间:2018-01-16 05:36:49

标签: docker kubernetes

我想将我的selenium / hub容器链接到POD中的chrome和firefox节点容器。

在docker中,它很容易在docker compose yaml文件中定义。 我想知道如何在kubernetes中实现这种链接。

这是日志上显示的内容:logs
这是错误图片:error

apiVersion: v1
kind: Pod
metadata:
  name: mytestingpod
spec:
  containers:
  - name: seleniumhub
    image: selenium/hub
    ports:
    - containerPort: 4444
    hostPort: 4444
  - name: chromenode
    image: selenium/node-chrome-debug
    ports:
    - containerPort: 5901
    links: seleniumhub:hub
  - name: firefoxnode
    image: selenium/node-firefox-debug
    ports:
    - containerPort: 5902
    links: seleniumhub:hub  

2

2 个答案:

答案 0 :(得分:2)

您不需要链接它们。 Kubernetes的工作方式all the containers in the same Pod are already on the same networking namespace,意味着他们可以通过localhost和正确的端口相互交谈。

  

pod中的应用程序都使用相同的网络命名空间(相同的IP和端口空间),因此可以相互“查找”并使用localhost进行通信。因此,pod中的应用程序必须协调它们对端口的使用。每个pod在平面共享网络空间中都有一个IP地址,可以与网络中的其他物理计算机和pod进行完全通信。

如果要从chromenode容器访问seleniumhub容器,只需向localhost发送请求:5901。

如果要从seleniumhub容器访问chromenode容器,只需向localhost发送请求:4444。

答案 1 :(得分:1)

只需使用" kompose"中描述的 Translate a Docker Compose File to Kubernetes Resources :它会将您的docker-compose.yml文件翻译成kubernetes yaml文件。

然后,您将看到selenium / hub容器声明如何转换为kubernetes配置文件。

请注意,docker link已过时 请尝试关注kubernetes examples/seleniumdescribed here

将应用程序与Kubernetes连接的方式是通过服务:
请参阅" Connecting Applications with Services"。