为什么我无法在 minikube 中启用 ingress?

问题描述 投票:0回答:7

我正在尝试在 minkube 中启用 ingress。当我运行

minikube addons enable ingress
时,它会挂起一段时间,然后收到以下错误消息:

❌  Exiting due to MK_ADDON_ENABLE: run callbacks: running callbacks: [sudo KUBECONFIG=/var/lib/minikube/kubeconfig /var/lib/minikube/binaries/v1.19.15/kubectl apply -f /etc/kubernetes/addons/ingress-deploy.yaml: Process exited with status 1
stdout:
namespace/ingress-nginx unchanged
serviceaccount/ingress-nginx unchanged
configmap/ingress-nginx-controller unchanged
configmap/tcp-services unchanged
configmap/udp-services unchanged
clusterrole.rbac.authorization.k8s.io/ingress-nginx unchanged
clusterrolebinding.rbac.authorization.k8s.io/ingress-nginx unchanged
role.rbac.authorization.k8s.io/ingress-nginx unchanged
rolebinding.rbac.authorization.k8s.io/ingress-nginx unchanged
service/ingress-nginx-controller-admission unchanged

stderr:
error: error validating "/etc/kubernetes/addons/ingress-deploy.yaml": error validating data: [ValidationError(Service.spec): unknown field "ipFamilies" in io.k8s.api.core.v1.ServiceSpec, ValidationError(Service.spec): unknown field "ipFamilyPolicy" in io.k8s.api.core.v1.ServiceSpec]; if you choose to ignore these errors, turn validation off with --validate=false
 waiting for app.kubernetes.io/name=ingress-nginx pods: timed out waiting for the condition]

╭───────────────────────────────────────────────────────────────────────────────────────────╮
│                                                                                           │
│    😿  If the above advice does not help, please let us know:                             │
│    👉  https://github.com/kubernetes/minikube/issues/new/choose                           │
│                                                                                           │
│    Please run `minikube logs --file=logs.txt` and attach logs.txt to the GitHub issue.    │
│    Please also attach the following file to the GitHub issue:                             │
│    - /tmp/minikube_addons_2c0e0cafd16ea0f95ac51773aeef036b316005b6_0.log                  │
│                                                                                           │
╰───────────────────────────────────────────────────────────────────────────────────────────╯

这是我使用的 minikube 启动命令:

minikube start --kubernetes-version=v1.19.15 --vm-driver=docker

我尝试过重新安装 minikube。上周当我运行相同的命令时,它运行良好。

如果需要更多具体信息,请告诉我,我将编辑问题。有谁知道我该如何解决这个问题?

提前致谢。

kubernetes kubernetes-ingress minikube
7个回答
10
投票

有点晚了,但我希望有人觉得这有用,发生这种情况是因为 minikube 无法及时拉取镜像(ingress-nginx-controller),知道的方法是:

kubectl get pod -n ingress-nginx

如果 ingress-nginx-controller-xxxx (xxxx 是 pod 的标识符)的状态为 ImagePullBackOff 或类似的状态,则说明您处于这种情况。

要解决此问题,您需要首先描述您的 Pod:

kubectl describe pod ingress-nginx-controller-xxxxx -n ingress-nginx

查看容器/控制器/图像并复制其值(不需要复制@sha256:...如果包含它)。您必须手动拉取它,但之前可能还要删除相关部署:

kubectl delete deployment ingress-nginx-controller -n ingress-nginx

然后从虚拟机本身提取图像,在我的例子中看起来像这样:

minikube ssh docker pull k8s.gcr.io/ingress-nginx/controller:v1.2.1

等待它,然后再次尝试“插件启用入口”,看看它是否有效,它为我做到了。


2
投票

降级到 minikube v1.23.2 解决了该问题。


0
投票
  1. 您使用的是哪个操作系统?
# If you are using Mac:
brew install docker-machine-driver-vmware
# Start a cluster using the vmware driver:
minikube start --driver=vmware
# To make vmware the default driver:
minikube config set driver vmware

0
投票

升级到 minikube v1.26.0 解决了该问题。


0
投票

我的例子的错误是:

X 由于 MK_ADDON_ENABLE 而退出:运行回调:运行回调:[NewSession:新客户端:新客户端:使用 ssh 创建新的本机配置时出错:docker, &{[] [C:\Users.minikube\machines\minikube\ id_rsa]}:打开 C:\Users.minikube\machines\minikube\id_rsa:访问被拒绝。等待 app.kubernetes.io/name=ingress-nginx pods:等待条件超时]

简单的修复方法是使用管理员运行 PowerShell(我使用的是 Windows)。 我使用的是v1.26.0。


0
投票

使用以下命令启动你的 minikube,它应该可以工作

minikube start --insecure-registry="registry.k8s.io"

然后

minikube addons enable ingress

-1
投票
minikube delete --all --purge


minikube addons enable ingress
© www.soinside.com 2019 - 2024. All rights reserved.