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

Cof*_*tle 5 kubernetes minikube kubernetes-ingress

我正在尝试在 minkube 中启用 ingress。当我运行时,minikube addons enable ingress它会挂起一段时间,然后收到以下错误消息:

\n
\xe2\x9d\x8c  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\nstdout:\nnamespace/ingress-nginx unchanged\nserviceaccount/ingress-nginx unchanged\nconfigmap/ingress-nginx-controller unchanged\nconfigmap/tcp-services unchanged\nconfigmap/udp-services unchanged\nclusterrole.rbac.authorization.k8s.io/ingress-nginx unchanged\nclusterrolebinding.rbac.authorization.k8s.io/ingress-nginx unchanged\nrole.rbac.authorization.k8s.io/ingress-nginx unchanged\nrolebinding.rbac.authorization.k8s.io/ingress-nginx unchanged\nservice/ingress-nginx-controller-admission unchanged\n\nstderr:\nerror: 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\n waiting for app.kubernetes.io/name=ingress-nginx pods: timed out waiting for the condition]\n\n\xe2\x95\xad\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x95\xae\n\xe2\x94\x82                                                                                           \xe2\x94\x82\n\xe2\x94\x82      If the above advice does not help, please let us know:                             \xe2\x94\x82\n\xe2\x94\x82      https://github.com/kubernetes/minikube/issues/new/choose                           \xe2\x94\x82\n\xe2\x94\x82                                                                                           \xe2\x94\x82\n\xe2\x94\x82    Please run `minikube logs --file=logs.txt` and attach logs.txt to the GitHub issue.    \xe2\x94\x82\n\xe2\x94\x82    Please also attach the following file to the GitHub issue:                             \xe2\x94\x82\n\xe2\x94\x82    - /tmp/minikube_addons_2c0e0cafd16ea0f95ac51773aeef036b316005b6_0.log                  \xe2\x94\x82\n\xe2\x94\x82                                                                                           \xe2\x94\x82\n\xe2\x95\xb0\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x95\xaf\n
Run Code Online (Sandbox Code Playgroud)\n

这是我使用的 minikube 启动命令:\nminikube start --kubernetes-version=v1.19.15 --vm-driver=docker

\n

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

\n

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

\n

提前致谢。

\n

小智 10

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

kubectl get pod -n ingress-nginx
Run Code Online (Sandbox Code Playgroud)

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

要修复此问题,您需要首先描述您的 Pod:

kubectl describe pod ingress-nginx-controller-xxxxx -n ingress-nginx
Run Code Online (Sandbox Code Playgroud)

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

kubectl delete deployment ingress-nginx-controller -n ingress-nginx
Run Code Online (Sandbox Code Playgroud)

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

minikube ssh docker pull k8s.gcr.io/ingress-nginx/controller:v1.2.1
Run Code Online (Sandbox Code Playgroud)

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


小智 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
Run Code Online (Sandbox Code Playgroud)