尝试使用 minikube 运行 示例微服务应用程序时如何解决 DNS 查找错误
How to resolve DNS lookup error when trying to run example microservice application using minikube
亲爱的 Whosebug 社区!
我正在尝试 运行 https://github.com/GoogleCloudPlatform/microservices-demo locally on minikube, so I am following their development guide: https://github.com/GoogleCloudPlatform/microservices-demo/blob/master/docs/development-guide.md
在我成功设置 minikube(使用 virtualbox 驱动程序,但我也尝试了 hyperkit,但结果是一样的)并执行 skaffold run
后,一段时间后它会出现以下错误:
Building [shippingservice]...
Sending build context to Docker daemon 127kB
Step 1/14 : FROM golang:1.15-alpine as builder
---> 6466dd056dc2
Step 2/14 : RUN apk add --no-cache ca-certificates git
---> Running in 0e6d2ab2a615
fetch https://dl-cdn.alpinelinux.org/alpine/v3.13/main/x86_64/APKINDEX.tar.gz
WARNING: Ignoring https://dl-cdn.alpinelinux.org/alpine/v3.13/main: DNS lookup error
fetch https://dl-cdn.alpinelinux.org/alpine/v3.13/community/x86_64/APKINDEX.tar.gz
WARNING: Ignoring https://dl-cdn.alpinelinux.org/alpine/v3.13/community: DNS lookup error
ERROR: unable to select packages:
git (no such package):
required by: world[git]
Building [recommendationservice]...
Building [cartservice]...
Building [emailservice]...
Building [productcatalogservice]...
Building [loadgenerator]...
Building [checkoutservice]...
Building [currencyservice]...
Building [frontend]...
Building [adservice]...
unable to stream build output: The command '/bin/sh -c apk add --no-cache ca-certificates git' returned a non-zero code: 1. Please fix the Dockerfile and try again..
错误信息提示DNS不工作。我试图在 minikube VM 上将 8.8.8.8
添加到 /etc/resolv.conf
,但没有帮助。我注意到在我重新 运行 skaffold run
并且它再次失败后,内容 /etc/resolv.conf
returns 恢复为包含 10.0.2.3
作为唯一 DNS 的原始状态入口。访问外部互联网并在 minikube VM 中 ping 8.8.8.8
表单。
你能给我指出一个方向吗?我怎样才能解决问题并了解 minikube/kubernetes 中的 DNS 是如何工作的?我听说 Kubernetes 集群中的 DNS 问题是您 运行 遇到的常见问题。
感谢您的回答!
此致,
理查德
尝试使用 docker 驱动程序,即 minikube start --driver=docker
,它可以工作。谢谢布莱恩!
听起来 OP 的问题已解决,但如果有人在 minikube 中使用 docker,那么下面的建议对我有用。
参考:https://github.com/kubernetes/minikube/issues/10830
minikube ssh
$>sudo vi /etc/docker/daemon.json
# Add "dns": ["8.8.8.8"]
# save and exit
$>sudo systemctl restart docker
亲爱的 Whosebug 社区!
我正在尝试 运行 https://github.com/GoogleCloudPlatform/microservices-demo locally on minikube, so I am following their development guide: https://github.com/GoogleCloudPlatform/microservices-demo/blob/master/docs/development-guide.md
在我成功设置 minikube(使用 virtualbox 驱动程序,但我也尝试了 hyperkit,但结果是一样的)并执行 skaffold run
后,一段时间后它会出现以下错误:
Building [shippingservice]...
Sending build context to Docker daemon 127kB
Step 1/14 : FROM golang:1.15-alpine as builder
---> 6466dd056dc2
Step 2/14 : RUN apk add --no-cache ca-certificates git
---> Running in 0e6d2ab2a615
fetch https://dl-cdn.alpinelinux.org/alpine/v3.13/main/x86_64/APKINDEX.tar.gz
WARNING: Ignoring https://dl-cdn.alpinelinux.org/alpine/v3.13/main: DNS lookup error
fetch https://dl-cdn.alpinelinux.org/alpine/v3.13/community/x86_64/APKINDEX.tar.gz
WARNING: Ignoring https://dl-cdn.alpinelinux.org/alpine/v3.13/community: DNS lookup error
ERROR: unable to select packages:
git (no such package):
required by: world[git]
Building [recommendationservice]...
Building [cartservice]...
Building [emailservice]...
Building [productcatalogservice]...
Building [loadgenerator]...
Building [checkoutservice]...
Building [currencyservice]...
Building [frontend]...
Building [adservice]...
unable to stream build output: The command '/bin/sh -c apk add --no-cache ca-certificates git' returned a non-zero code: 1. Please fix the Dockerfile and try again..
错误信息提示DNS不工作。我试图在 minikube VM 上将 8.8.8.8
添加到 /etc/resolv.conf
,但没有帮助。我注意到在我重新 运行 skaffold run
并且它再次失败后,内容 /etc/resolv.conf
returns 恢复为包含 10.0.2.3
作为唯一 DNS 的原始状态入口。访问外部互联网并在 minikube VM 中 ping 8.8.8.8
表单。
你能给我指出一个方向吗?我怎样才能解决问题并了解 minikube/kubernetes 中的 DNS 是如何工作的?我听说 Kubernetes 集群中的 DNS 问题是您 运行 遇到的常见问题。
感谢您的回答!
此致, 理查德
尝试使用 docker 驱动程序,即 minikube start --driver=docker
,它可以工作。谢谢布莱恩!
听起来 OP 的问题已解决,但如果有人在 minikube 中使用 docker,那么下面的建议对我有用。
参考:https://github.com/kubernetes/minikube/issues/10830
minikube ssh
$>sudo vi /etc/docker/daemon.json
# Add "dns": ["8.8.8.8"]
# save and exit
$>sudo systemctl restart docker