发生了什么:
我尝试使用externalName规范创建一个服务端点,以允许在 Pod 内运行的微服务访问本地主机上的本地 MySQL 服务器。
这是 yaml 文件的相关部分:
apiVersion: v1
kind: Service
metadata:
name: mysql
namespace: default
spec:
type: ExternalName
externalName: host.minikube.internal
Run Code Online (Sandbox Code Playgroud)
您期望发生的情况:
我希望能够连接,但我的 SpringBoot 容器显示 mysql 连接不起作用。我已经测试了微服务,它可以在 Docker 中使用相同的 MySQL 数据库运行。
如何重现它(尽可能少且精确):
正常安装 minikube 和 kubernetes,使用上面给出的 mysql 服务运行https://k8s.io/examples/admin/dns/dnsutils.yamldnsutils中的映像。
我们还需要知道什么吗?:
我已经测试了此处详细的故障排除(https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/),但它没有解决问题。运行时:
kubectl exec -i -t dnsutils -- nslookup mysql.default
Run Code Online (Sandbox Code Playgroud)
我收到以下消息:
Server: 10.96.0.10
Address: 10.96.0.10#53
mysql.default.svc.cluster.local canonical name = host.minikube.internal.
** server can't find host.minikube.internal: SERVFAIL
command terminated with exit code 1
Run Code Online (Sandbox Code Playgroud)
我已经验证它 …