【kubernetes笔记】k8s_ingress(10)

Page content

这一篇整理了ingress相关的内容。

Kubernetes 暴露服务的有三种方式:
分别为 LoadBlancer Service、NodePort Service、Ingress。

1.概述

全局的、为了代理不同后端Service而设置的负载均衡服务,
就是Kubernetes里的Ingress 服务。

所谓 Ingress,就是 Service 的“Service”

图片备用地址
ingress_02

2.Ingress工作原理

  • ingress controller通过和kubernetes api交互,动态的去感知集群中ingress规则变化。
  • 然后读取它,按照自定义的规则,规则就是写明了那个域名对应哪个service,生成一段nginx配置。
  • 在写到nginx-ingress-controller的pod里,这个Ingress controller的pod里运行着一个Nginx服务,控制器会把生成的nginx配置写入/etc/nginx.conf文件中。
  • 然后reload一下使配置生效,以此达到分配和动态更新问题。

3.简单例子

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: cafe-ingress
spec:
  tls:
  - hosts:
    - cafe.example.com
    secretName: cafe-secret
  rules:
  - host: cafe.example.com
    http:
      paths:
      - path: /tea
        backend:
          serviceName: tea-svc
          servicePort: 80
      - path: /coffee
        backend:
          serviceName: coffee-svc
          servicePort: 80

host字段是这个Ingress的入口。
当用户访问cafe.example.com的时候,实际上访问到的是这个Ingress对象。
Kubernetes就能使用IngressRule来对你的请求进行下一步转发。
之后通过path字段访问相对应的Service。

在实际的使用中,需要从社区里选择一个具体的Ingress Controller,把它部署在Kubernetes集群


欢迎大家的意见和交流

email: li_mingxie@163.com