kubernetes - java.net.UnknownHostException:postgres

标签 kubernetes

我正在尝试在kubernetes上部署spring boot应用程序并连接到本地主机上的postgres。

Spring Boot部署很好。
对于postgres我做了

kind: Service
apiVersion: v1
metadata:
  name: postgres
  namespace: default
spec:
  type: ExternalName
  # https://docs.docker.com/docker-for-mac/networking/#use-cases-and-workarounds
  externalName: host.docker.internal
  ports:
    - name: port
      port: 5432

kubectl get svc
postgres           ExternalName   <none>           host.docker.internal   5432/TCP         9m13s

我是数据库URL
jdbc:postgresql://postgres:5432/postgres

所以Spring Boot部署的日志给出了异常
 java.net.UnknownHostException: postgres

最佳答案

此功能仅适用于Mac和Win Docker,因此,如果您在Linux上运行它-将无法使用。

Linux已支持此主机名,并且可能在接下来的几天/几周内提供:docker/libnetwork#2348

仍然有一些解决方法,但尚未针对Linux发布

I.
您可以在项目中使用以下内容创建一个名为.ddev / docker-compose.xdebug.yaml的文件:

# For Linux users; Docker has not yet supported the "host.docker.internal"
# convention that is used in ddev v0.18.0. But if you add this file as
# .ddev/docker-compose.xdebug.yaml it should sort that out.
# Note that the IP address in your environment might not be 172.17.0.1,
# Find out what address to use with "ifconfig docker0" or "ip addr show docker0 | grep inet"
version: "3"
services:
  web:
    extra_hosts:
      # Find out what address to use with "ifconfig docker0" or "ip addr show docker0 | grep inet"
      - "host.docker.internal:172.17.0.1"

II。
使用此image将TCP和UDP流量转发到Docker主机

关于kubernetes - java.net.UnknownHostException:postgres,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56440172/

相关文章:

kubernetes - 不断获取权限错误gcloud.container.clusters.get-credentials

kubernetes - Helm chart 上是否可以有条件变量以进行部署?

kubernetes - 1 个 pod 中的多个容器延迟

kubernetes - Traefik 无法读取 k8s api

kubernetes - Terraform 抛出 resource name may not be empty 错误

kubernetes - agents.volumes 参数应该如何在 Datadog Helm Chart 中工作

apache-kafka - 如何在kubernetes配置属性中结合使用POD_NAME和其他值

java - spring boot如何在k8s中连接localhost mysql?

amazon-web-services - 我不完全理解容器化如何从一开始就不会导致过度配置实例

kubernetes - 从镜头中删除Kubernetes集群设置