1 Ingress概述

在前面使用Service中的NodePort将服务端口号暴漏以供外部访问,这样显然会存在一些弊端:

  • 通过ip+端口的方式对外提供服务
  • 每个节点上都会其端口,访问时通过ip+端口进行访问
  • 每个端口对应一个应用服务

但是在实际中是通过域名来访问应用的,根据域名跳转到不同端口服务中,所以需要在Service之上再添加一层访问入口,这一层就是Ingress。

2 Ingress工作流程

在这里插入图片描述
ingress和pod通过service进行关联,实际访问中ingress作为一个统一的入口,由service关联一组pod。

3 ingress使用

Ingress对外暴露应用,还是首先需要通过Service的NodePort暴露端口,在此基础上再进行操作。

1 创建一个nginx pod

// 创建nginx应用
[root@k8smaster ~]# kubectl create deployment web --image=nginx
deployment.apps/web created
// 将上述应用对外暴露端口
[root@k8smaster ~]# kubectl expose deployment web --port=80 --target-port=80 --type=NodePort
service/web exposed
// 查看
[root@k8smaster ~]# kubectl get pod,svc
NAME READY STATUS RESTARTS AGE
pod/web-5dcb957ccc-rq5k5 1/1 Running 0 92s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 443/TCP 69d
service/web NodePort 10.106.108.66 80:31558/TCP 28s

2 部署ingress controller
执行yaml文件
在这里插入图片描述
3 配置ingress规则

  • 编写yaml配置文件
    在这里插入图片描述
  • 运行yaml文件
    在这里插入图片描述
  • 访问测试
    windows中配置好域名映射后即可访问
    在这里插入图片描述
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐