ingress

为什么需要ingress资源对象

1. service缺点: service的表现形式为ip:port, 既工作在tcp/ip层, 而对于基于HTTP服务来说, 不同的url地址经常对应到不同的后端服务,通过service是无法实现的, 
2. 解决方案: kubernetes 1.1版本增加ingress资源对象, 用于将不同的url访问请求转发到后端不同的service, 以实现http层的业务路由机制

为了使用ingress, 需要创建ingress策略和ingress controller

ingress controller 作用特点

1.ingress controller 以pod方式运行
2.监控api server的service关联的pod变量
3.获取ingress策略规则 生成nginx配置文件
4.会跳过kube-prox的转发功能

ingress策略

1)同一个域名 , 不同的url路径转发至不同的服务上

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
 name: ingress-demo
 namespace: default
spec:
  rules:
  - host: test1.nginx.com
    http:
      paths:
      - path: /web
        backend:
          serviceName: web-service
          servicePort: 80
      - path: api
        backend:
          serviceName: api-service
          servicePort: 80

2)不同的域名,被转发到不同的服务上

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
 name: ingress-demo
 namespace: default
spec:
  rules:
  - host: test1.nginx.com
    http:
      paths:
      - path: /web
        backend:
          serviceName: web-service
          servicePort: 80
  - host: test2.nginx.com
    http:
      paths:
      - path: /api
        backend:
          serviceName: api-service
          servicePort: 80
posted @ 2019-07-26 17:33  你很棒  阅读(567)  评论(0编辑  收藏  举报