【问题标题】:How does one install the kube-dns addon for minikube?如何为 minikube 安装 kube-dns 插件?
【发布时间】:2017-08-26 09:42:57
【问题描述】:

有人可以详细说明安装kube-dns 插件的必要步骤吗?我已经在上一个链接中下载了将近 400MB 的 git repo 并按照说明运行 make 但得到 Nothing to be done for 'all'.

文档不清楚附加组件的存在形式以及如何安装它们。那里的“管理员指南”链接将我带到 this 无用的页面。

我尝试了https://stackoverflow.com/a/42315074/4978821,但收到了error validating data 消息。即使这可行,它似乎也是一个非官方且尴尬的解决方案。

这样的回答也太模糊了:https://stackoverflow.com/a/36105547/4978821。

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

更新以澄清我的问题:

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

【问题讨论】:

  • 这与我在帖子中包含的链接相同。该链接指向 yaml 模板。正如我在帖子中提到的那样,按照该链接中的建议运行 make 不会产生任何结果。我仍然没有看到获得可用 yaml 文件的明确步骤。

标签: kubernetes minikube kube-dns


【解决方案1】:

此修复仅适用于 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”。 如果最后一条命令没有返回大量 pod(包括 kube-dns 和 kube-dashboard),请稍等 - 在成功之前我有一些空白结果。

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

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

【讨论】:

    【解决方案2】:

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

    编辑: 对我来说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 pod 运行正常。您能否验证您的 kube-dns pod 是否处于 Running 状态?

    【讨论】:

    • 您有参考网址吗? kubectl get po -n kube-system 是无效命令。而且,实际上,minikube addons list 确实表明 kube-dns 已启用。魔法。虽然,坏了。我无法在端点控制器中成功使用服务名称,因为它解析为公共 IP,而不是 minikube 的内部 IP。我想我可能需要走另一条路。 (你有一些错别字,但少于 10 个字符,所以我不会让我修正)
    • 我已经编辑了我的原始帖子以获得更多信息。我不太明白您在使用 kube-dns 时遇到的问题是什么,您能否在原始问题中提供一些 yaml 或示例?
    • 我已将问题的范围缩小到 minikube。由于您正确响应默认情况下启用了 kube-dns,并且 minikube addons list 确实显示它已安装并正在运行,因此我将其标记为答案。关于为什么它不起作用(解析公共 IP 而不是 k8s 服务 IP)是另一个问题。如果我继续追求这个,如果仍然没有解决,我会更深入地挖掘并提出一个新问题。
    • "在 minikube 中默认启用 kube-dns 插件。" 抱歉,它不在 minikube version: v1.15.1 中。 dns 的唯一插件是 ingress-dns,它也被禁用。继续寻找解决方案...
    • 找到 this 并且看起来不错。
    猜你喜欢
    • 2023-03-31
    • 2018-11-13
    • 2020-07-22
    • 2018-03-30
    • 2018-11-05
    • 2020-05-29
    • 2018-04-05
    • 2018-12-18
    • 2019-01-31
    相关资源
    最近更新 更多