首页 >  kubernetes >  k8s部署ingress-nginx-controller
k8s部署ingress-nginx-controller
编辑时间:2022-08-27 11:02:54 浏览量:1927

使用Ingress之前提是先部署好Ingress-Controller,查看版本(https://github.com/kubernetes/ingress-nginx)。K8s v1.24.1版本需要部署Ingress NGINX Controller v1.3.0版本

wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.3.0/deploy/static/provider/cloud/deploy.yaml #下载

由于此yaml中的镜像源是国外的,而国内无法访问,需要修改成国内镜像源。

共需修改两处:

registry.k8s.io/ingress-nginx/controller:v1.3.0 替换为 registry.cn-hangzhou.aliyuncs.com/sjr/ingress-nginx-controller:v1.3.0(此为通过下面方法下载到自己仓库的镜像)

registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.1.1 替换成 registry.aliyuncs.com/google_containers/kube-webhook-certgen:v1.1.1

 

 

kubectl apply -f nginx/ingress-nginx-controller-v1.3.0.yaml #文件放在了nginx文件夹下

执行部署后ingress-nginx-controller的Service会是pending状态,解决方法为:

1、部署MetalLB负载均衡器

2、修改type: LoadBalancer 为type: NodePort (目前使用这种)

 

下载国外镜像方法:

下载国外镜像方法一

#对于k8s.gcr.io、gcr.io的镜像,国内不能下载,可使用以下方法下载(https://github.com/anjia0532/gcr.io_mirror

wget https://raw.githubusercontent.com/anjia0532/gcr.io_mirror/master/pull-k8s-image.sh

chmod +x pull-k8s-image.sh  #下载并设权限


./pull-k8s-image.sh k8s.gcr.io/ingress-nginx/controller:v1.3.0

 

下载国外镜像方法二

国外镜像源registry.k8s.io不可使用上面方法。使用guihub和阿里云镜像服务拉取(https://www.cnblogs.com/straycats/p/14405513.html?spm=a2c6h.12873639.article-detail.9.65fa77703dwKjJ

1、  创建git仓库,并新建Dockerfile文件

文件内容如下(以registry.k8s.io/ingress-nginx/controller:v1.3.0镜像为例

# FROM <要拉取的镜像>
FROM registry.k8s.io/ingress-nginx/controller:v1.3.0

 

2、在阿里云容器镜像服务创建一个镜像仓库ingress-nginx-controller,并且需要绑定GitHub,如下图设置

image.png                                             

 

3、 点击“构建”后,点击“添加规则”

image.png

image.png

其中Branch/Tag对应GitHub的Branch/Tag

 

4、 最后点构建,等待一

image.png

等待一会,构建日志就会有成功的记录。