aditya rawat
aditya rawat

Reputation: 129

Linking Containers in POD in K8S

I want to link my selenium/hub container to my chrome and firefox node containers in a POD.

In docker, it was easily defined in the docker compose yaml file. I want to know how to achieve this linking in kubernetes.

This is what appears on the log.: logs
This is the error image: 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:

Upvotes: 3

Views: 5524

Answers (2)

Jose Armesto
Jose Armesto

Reputation: 13739

You don't need to link them. The way Kubernetes works, all the containers in the same Pod are already on the same networking namespace, meaning that they can just talk to each other through localhost and the right port.

The applications in a pod all use the same network namespace (same IP and port space), and can thus “find” each other and communicate using localhost. Because of this, applications in a pod must coordinate their usage of ports. Each pod has an IP address in a flat shared networking space that has full communication with other physical computers and pods across the network.

If you want to access the chromenode container from the seleniumhub container, just send a request to localhost:5901.

If you want to access the seleniumhub container from the chromenode container, just send a request to localhost:4444.

Upvotes: 4

VonC
VonC

Reputation: 1323115

Simply use kompose described in "Translate a Docker Compose File to Kubernetes Resources": it will translate your docker-compose.yml file into kubernetes yaml files.

You will then see how the selenium/hub container declaration is translated into kubernetes config files.

Note though that docker link are obsolete.
Try instead to follow the kubernetes examples/selenium which are described here.

The way you connect applications with Kubernetes is through a service:
See "Connecting Applications with Services".

Upvotes: 3

Related Questions