Kubernetes13:Ingress
1、把端口号对外暴露,通过ip+端口号进行访问
- 使用Service里面的NodePort实现(Cluster、LoadBanlancer、NodePort)
2、NodePort缺陷
- 在每个节点上启动一个端口,在访问时候通过任何节点,通过 节点ip+暴露端口号实现访问
- 意味着每个端口只能使用一次,并且一个端口对应一个应用,不能用多次
- 实际操作的访问中,都是用域名进行访问。根据不同的域名跳转到不同端口的服务中去
3、Ingress.和Pod关系—用Ingress可以对以上问题进行改进,弥补NodePort的不足
- pod和ingress通过service关联的
- ingress作为统一入口,由service关联一组pod
4、ingress工作流程
5、使用ingress
第一步 部署ingress Controller
第二部创建ingress规则
我们这里选择官方维护nginx控制器,实现部署
6、使用ingress对外暴露应用
(1)创建nginx应用,对外暴露端口
kubectl create deployment web --image=nginx
kubectl get pods
kubectl get deploy
kubectl expose deployment web --port=80 --target-port=80 --type=NodePort
kubectl get svc
(2)部署ingress controller
导入ingress-con.yaml文件
必须为true,对外暴露pod端口
kubectl apply -f ingress-con.yaml
查看ingress controller的状态
kubectl get pods -n ingress-nginx
(2)创建ingress 规则
导入ingress01.yaml
kubectl apply -f ingress-h.yaml
查看ingress controller的状态
kubectl get pods -n ingress-nginx -o wide
netstat -antup | grep 800
netstat -antup | grep 443
(4) 在windows/linux系统host文件中添加域名访问规则