minikube addons enable ingress
由于大家都知道到原因,国内无法直接访问gcr.io和quay.io很多Kubernetes相关镜像无法从国内下载,网上很多大神也给出了薅aliyun羊毛的方案,我自己也试了几次也总是不能成功,使用aliyun提供minikube的版本也总是无法启动ingress。
通过查看启动ingress失败的POD信息发现是无法下载使用到镜像,于是按照网络指导按照如下步骤提前下载镜像到minikube节点,再启动ingress即可成功,具体操作如下:
查询minikube版本对应的ingress镜像版本 使用
kubectl get po -A
查询ingress对应POD1
2
3
4
5
6
7
8
9
10
11
12
13kubectl get po -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-546565776c-xgggd 1/1 Running 0 27m
kube-system etcd-minikube 1/1 Running 0 27m
kube-system ingress-nginx-admission-create-d9dtl 0/1 Completed 0 28s
kube-system ingress-nginx-admission-patch-x67q7 0/1 Completed 1 28s
kube-system ingress-nginx-controller-7bb4c67d67-hp5c7 0/1 ContainerCreating 0 28s
kube-system kube-apiserver-minikube 1/1 Running 0 27m
kube-system kube-controller-manager-minikube 1/1 Running 0 27m
kube-system kube-proxy-7wbct 1/1 Running 0 27m
kube-system kube-scheduler-minikube 1/1 Running 0 27m
kube-system storage-provisioner 1/1 Running 0 27m其中名字中包含ingress就是启动ingress新建到POD。
再使用
kubectl describe po ingress-nginx-xxx --namespace kube-system
查询具体的失败信息,即可查询到失败原因为:获取镜像失败/超时。由于minikube 1.12.0版本以上的ingress镜像目前在阿里云上也无法下载,我们将minikube的版本切换到1.12.0版本,此时查询到的ingress插件依赖镜像信息如下:1
2quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.32.0
jettech/kube-webhook-certgen:v1.2.0手动安装ingress镜像 使用minikube ssh登录到minikube的节点上,再动过docker命令手工pull镜像。
1
2
3docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:0.32.0
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:0.32.0 quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.32.0
docker pull jettech/kube-webhook-certgen:v1.2.0quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.32.0 镜像可以由aliyun的镜像替代,再重新Tag成原有镜像。
再次启用ingress 上述操作均成功以后可以再次启动ingress插件即可秒成功 :)
minikube addons enable ingress