k8s 1.25 版本需要nginx-ingress 1.4.0 版本, 我们使用nginx控制器,其官网给出的配置方法如下: https://kubernetes.github.io/ingress-nginx/deploy/:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.4.0/deploy/static/provider/cloud/deploy.yaml
但是官方给出的yaml文件中拉取的镜像不在docker hub
中,在registry.k8s.io 中,所以在国内我们拉取就会报错:ErrImagePull
解决方法很简单,用国内好心人搬运到docker hub
上的仓库代替 https://hub.docker.com/u/anjia0532 ,仓库地址是 :https://github.com/anjia0532/gcr.io_mirror,
相关的几个issue:
- https://github.com/anjia0532/gcr.io_mirror/issues/1627
- https://github.com/anjia0532/gcr.io_mirror/issues/1628
所以,v1.4.0 版本的修改过的镜像的完整yaml
文件如下: https://github.com/dotNetCloudNative/eShopOnDapr/blob/main/deploy/k8s/nginx-ingress.yaml
如果你要使用其他版本ingress控制器,请在该docker hub上自己寻找替换,如果不是最新自己发issue拉取.
验证
kubectl get pods --all-namespaces -l app.kubernetes.io/name=ingress-nginx