如何为 minikube 安装 kube-dns 插件?

How does one install the kube-dns addon for minikube?

有人可以详细说明安装 kube-dns 插件的必要步骤吗?我已经按照指示在之前的 link 和 运行 make 中下载了将近 400MB git 的存储库,但得到 Nothing to be done for 'all'.

文档不清楚附加组件的形式以及如何安装它们。 "Administrators guide" link 将我带到 this 无用的页面。

我已经尝试 ,但收到 error validating data 消息。即使这行得通,这似乎也是一个非正式且笨拙的解决方案。

这样的回答也太含糊了:.

一旦我有了解决方案,我很乐意创建一个拉取请求来改进文档。

已更新以澄清我的问题:

正如 Aaron 所提到的,dns 插件在 minikube 中默认是启用的。 运行 minikube addons list 表示已启用。但是,如果我进入 bash shell 用于 运行ning pod,例如 kubectl exec -it node-controller-poqsl bash 并尝试使用 ping 访问我的 mongo 服务,例如,它解析为 public URL,而不是 kubernetes 服务 IP。

kube-dns 插件应该在 minikube 中默认启用。您可以 运行 kubectl get po -n kube-system 检查插件管理器启动的 pod 是否存在。如果您没有看到列出的 pod,请确保通过 运行ning minikube addons list 在 minikube 中启用插件并验证 kube-dnsenabled

编辑: 对我来说 kubectl get po -n kube-system 是一个有效的命令,这里是输出:

$ kubectl get po -n kube-system
NAME                          READY     STATUS    RESTARTS   AGE
kube-addon-manager-minikube   1/1       Running   2          5d
kube-dns-v20-7ddvt            3/3       Running   6          5d
kubernetes-dashboard-rn54g    1/1       Running   2          5d

从这里可以看出 kube-dns pods 运行 正确。你能验证你的 kube-dns pods 处于 Running 状态吗?

此修复仅适用于 VirtualBox 驱动程序 - 使用

确认您的驱动程序
cat ~/.minikube/machines/minikube/config.json | grep DriverName

接受的答案是正确的,默认情况下安装并启用了 kube-dns。但是管理DNS的pods似乎是一个普遍的问题,没有创建,看起来好像没有安装kube-dns。

例如:

$ kubectl get po -n kube-system
kube-addon-manager-minikube   1/1       Running   1          1m

您可以确认 kube-dns 已安装并启用(即使不工作):

$ minikube addons list
- addon-manager: enabled
- dashboard: enabled
- kube-dns: enabled
{snipped}

根本问题与 VirtualBox 相关,如下所述:https://forums.virtualbox.org/viewtopic.php?f=7&t=50368

修复:

minikube stop    
VBoxManage modifyvm "VM name" --natdnshostresolver1 on
minikube start

kubectl get all -n kube-system

VM 名称可能是 "minikube"。 如果最后一个命令没有 return 一大串 pods (包括 kube-dns 和 kube-dashboard),请稍等片刻 - 在成功之前我有一些空白结果。

对于 Windows 用户,VBoxManage 默认安装在 c:\Program Files\Oracle\VirtualBox

更多信息请访问 https://superuser.com/questions/641933