Kubernetes Pod with multiple containers can't connect to each other (DNS issue?!)

1/14/2020

For our CI pipeline I setup a Kubernetes pod config (see below). There is one issue that the php app can't connect to the mysql container because it can't resolve the host "mysql". Error message:

mysqli_connect(): php_network_getaddresses: getaddrinfo failed: Name or service not known

pod config:

apiVersion: v1
kind: Pod
spec:
  containers:
  - name: php
    image: docker.pkg.github.com/foo-org/bar-php/bar-php:latest
  - name: nginx
    image: docker.pkg.github.com/foo-org/bar-nginx/bar-nginx:latest
    command:
    - cat
    tty: true
  - name: mysql
    image: docker.pkg.github.com/foo-org/bar-mysql/bar-mysql:latest
    env:
    - name: MYSQL_ROOT_PASSWORD
      value: bazz
    ports:
    - containerPort: 3306
    readinessProbe:
      tcpSocket:
        port: 3306
      initialDelaySeconds: 5
    tty: true
  imagePullSecrets:
  - name: ci-gh-registry

This runs in GKE but I guess this doesn't make a difference?

Any ideas why and how to fix it?

-- user1587047
dns
google-kubernetes-engine
kubernetes

1 Answer

1/14/2020

provide host as 127.0.0.1 or localhost instead of mysql containers in a pod communicate over localhost

-- saiteja pakalapati
Source: StackOverflow