具有多个容器的Kubernetes Pod无法彼此连接(DNS问题?!)

时间:2020-01-14 08:23:54

标签: kubernetes dns google-kubernetes-engine

对于我们的CI管道,我设置了Kubernetes pod配置(请参见下文)。 php应用程序无法连接到mysql容器是一个问题,因为它无法解析主机“ mysql”。 错误消息:

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

pod配置:

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

这是在GKE中运行的,但是我想这没有什么不同?

任何想法为何以及如何解决?

1 个答案:

答案 0 :(得分:2)

提供主机作为127.0.0.1localhost而不是Pod中的mysql容器,通过本地主机进行通信