K8S之Ingress

Ingress

Service一般情况下只作用内部Pod的代理调度,如果只指定一个NodeIP,随着业务量增大,这个Node压力就会很大,
这时可能会在前端加一个代理,代理几个Node。在应用小的情况下,这种架构还能接受。但如果有大量应用的话,我们
就需要管理大量的NodePort,这时就需要Ingress来解决

Ingress代理并不是Pod的service,而是Pod。Ingress提供外部访问集群的入口,将外部的HTTP或者HTTPS轻轻转发到
集群内service上,流量规制在Ingress资源上定义

Ingress controller类型,其中Nginx、Traefik为常用类型

  • HAProxy Ingress Controller
  • Nginx Ingress Controller
  • Tracefik Ingress Controller
  • Kong Ingress Controller

定义一个简单的Ingres

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: ingress-simple-demo
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - http:
    paths:
    - path: /joker
      backend:
        serviceName: nginx
        servicePord: 80    

Ingress更新

如果想更改正在工作的Ingress,比如新增一个HOST,可以使用kubectl edit ingress my-ingress进行更新,在保存退出
后会触发Ingress Controller重新配置LB

实例: kubectl edit ingress ingress-simple-demo

spec:
  rules:
  - http:
      paths:
      - backend:
          serviceName: nginx-service
          servicePort: 8000
        path: /joker
  - host: bar.baz.com
    http:
      paths:
      - backend:
          serviceName: nginx
          servicePort: 80
        path: /foo
status:
  loadBalancer: {}
posted @ 2024-08-23 14:12  秋水秋色  阅读(17)  评论(0编辑  收藏  举报