Ingress-Nginx(0.30.0)在k8s集群内的配置

前言

如果kubernetes集群决定使用Ingress-Nginx七层负载均衡,那么可以参考本教程。

准备

  1. 一台能访问互联网的PC。
  2. 一个完整的k8s集群 。
  3. 一个待被负载的应用。
  4. 最好有一个docker私有仓库。

步骤

一、组件准备

1.1. 首先打开github的Ingress-Nginx仓库,如图找到nginx-0.30.0

nginx-0.30.0

1.2. 访问deploy文件夹

github
1.3.打开文档
github
1.4.直接在k8s主节点执行此语句。

github

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.30.0/deploy/static/mandatory.yaml

没错,第4步很臭屁,我知道你的集群应该没有连互联网,更不可能连上google的k8s镜像仓库。所以给我点个关注,然后移步至附录,我会手把手地教你。

二、部署Nginx服务

2.1. 首先查看已有应用的service文件,查看已部署的应用port,与服务名。
port
2.2. 编写Nginx.yml文件,将service名与port值写到backend下面的标签中。
nginx
2.3. 输入命令kubectl create -f nginx.yml执行即可
(这句话也是多余我知道~)

三、访问

如果你毫无压力完成以上两步,那么你已经部署成功了,接下来我们去宿主机访问即可:
3.1.查询你的1.4步产生的pod所在Node的Ip地址,命令如下:

kubectl get pod -o wide -n ingress-nginx

3.2.在一个能访问到k8s集群的局域网主机中,打开C:\Windows\System32\drivers\etc\hosts,将你3.1步查到的IP与2.2步设置的host写入该文件中。
hosts
3.3打开浏览器,搜索2.2步的host+path,然后你就能访问到你所部署的应用了。

四、附录

4.1.在能访问互联网的系统中下载yaml文件:

扫描二维码关注公众号,回复: 12860767 查看本文章
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.30.0/deploy/static/mandatory.yaml

4.2. 打开yaml文件,输入以下内容。
yaml

4.3在k8s集群中找一个NODE打个标签。

kubectl label node 你所选NODE的IP nginx=nginx

4.4找把梯子,通过docker下载该镜像。

如果没有梯子,那就直接下载我打包好的镜像(免费!),然后直接跳至4.6

如果有私有仓库,将镜像tag然后push即可。不用再做4.5 ,4.6,4.7但是需要将mandatory文件中images改为私有仓库镜像名。

下载
4.5 使用docker save -o nginx-ingress-controller.tar quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.30.0导出镜像。

4.6使用docker load < nginx-ingress-controller.tar 将文件导入到4.3你打标签的Node中(记得先把nginx-ingress-controller.tar文件拷贝到当前目录)。

4.7 在mandatory.yml中添加imagePullPolicy: Never.mandatory
4.8在k8s主节点执行kubectl create -f mandatory.yml即可,然后继续按照步骤进行即可。

写在后面

发博文比真正部署要难得多,而且过程枯燥无味。如果大家不多多支持,我就真的没有写下去的勇气了!!!点赞、评论、关注!三连!三连啊!!

猜你喜欢

转载自blog.csdn.net/weixin_44159662/article/details/109819615