在前一篇,我们介绍了service的访问,我们知道service的访问主要是对kubernetes集群内部的pod提供访问,但是我们在公网上这些是访问不了的,在真实环境中,例如nginx,我们肯定是需要对外暴露的,需要从公网进行访问。那么此时我们如何使这个服务在公网上进行暴露呢,这里就是今天的主题-Ingress。
首先介绍下什么是Ingress:
Ingress 是 Kubernetes 的一种 API 对象,将集群内部的 Service 通过 HTTP/HTTPS 方式暴露到集群外部,并通过规则定义 HTTP/HTTPS 的路由
那么Ingress有什么特点呢?
1、集群外部可访问的URL、 2、负载均衡、 3、SSL Termination、 4、按域名路由(name-based virtual hosting)
下面我们来演示下,让nacos可以被对外进行访问(本操作过程主要是在kuboard上进行操作,后面会发出来yml供大家参考,个人喜欢可视化的操作)
一、进入到kuboard的IngressClass界面上。
进入的流程是:
1、进入到kuboard的dashboard页面上 2、点击集群管理 3、点击网络 4、选择IngressCalss
二、创建IngressClass
1、点击安装IngressNginxController并且创建IngressClass
二、然后可以看到配置页面,名称随便填写,副本数按照实际的来,再点击确定
点击确定后可以看到这个界面
这里我们就安装的配置了一个ingresscontroller了。
接下来我们需要去配置让nacos可以被这个ingress进行访问。所以这里我们接下来继续操作。
这里有个前置条件,就是我这里解析了一个域名: nacos.80wz.com ,并且已经解析到这个演示机了,所以一会我们会使用nacos.80wz.com进行访问nacos。
好了直接开始配置nacos进行访问:
一、进入到我们的工作负载里面去:
二、选择nacos进去
三、点击上面的编辑按钮
四、进入到编辑页面
五、点击应用路由:
填写下图的内容:
然后点击保存。
然后此时我们就可以使用这个nacos.80wz.com进行访问了。但是我们直接访问下,在80端口他不是nacos
然后我们看下刚才配置了18848和8848端口是否可以访问?
可以看到我们都无法访问,那这是怎么回事呢? 其实这里的端口是kubernetes集群自动分配的端口,我们需要继续回到IngressClass里面去看具体的端口:
这里我们看到他的端口是30819,然后我们访问下nacos.80wz.com:30819
可以看到能正常访问了。
以上就是Ingress的配置过程。
备注:
这里可能有一些小伙伴比较纳闷,真实的环境中我们一般都是使用的80端口访问怎么办?
这里目前统一的解决办法就是在外部安装一个nginx或者在云上购买一个nginx,然后在upstream里面配置下访问这个Ingress的端口即可。
最后,要使用Ingress,那么服务发布的类型必须是ClusterIP模式,不能是NodePort模式
还没有评论,来说两句吧...