Ingress概念介绍

      service只能做四层代理 无法做七层代理(如https服务)
      lvs只能根据第四层的数据进行转发 无法对七层协议数据进行调度

      Ingress Controller
            拥有七层代理的Pod程序

      Ingress资源
         1.首先通过无头service动态关联符合标签选择器选择的后端Pod
         2.Ingress动态的把service关联的pod地址注入到前端配置upstream中    同时触发主程序重新加载最新的配置文件

         pod变化 > service变化 > Ingress变化 > Ingress Control注入配置

Ingress反代到后端的web服务器

  1.部署后端pod

apiVersion: v1
kind: Service
metadata:
  name: myapp
  namespace: default
spec:
  selector:
    app: myapp
    release: canary
  ports:
  - name: http
    targetPort: 80
    port: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp-deploy
  namespace:  default
apiVersion: v1
kind: Service
metadata:
  name: myapp
  namespace: default
spec:
  selector:
    app: myapp
    release: canary
  ports:
  - name: http
    targetPort: 80
    port: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp-deploy
  namespace:  default
spec:
  replicas: 3
  selector:
    matchLabels:
      app: myapp
      release: canary
  template:
    metadata:
      labels:
        app: myapp
        release: canary
    spec:
      containers:
      -  name: myapp
         image: ikubernetes/myapp:v2
         ports:
         - name: http
           containerPort: 80
ngx-deploy.yaml

相关文章: