• Kubernetes Ingress


    Kubernetes关于服务的暴露主要是通过NodePort方式,通过绑定node主机的某个端口,然后进行pod的请求转发和负载均衡,但这种方式下缺陷是

    • Service可能有很多个,如果每个都绑定一个node主机端口的话,主机需要开放外围一堆的端口进行服务调用,管理混乱
    • 无法应用很多公司要求的防火墙规则

    理想的方式是通过一个外部的负载均衡器,绑定固定的端口,比如80,然后根据域名或者服务名向后面的Service ip转发,Nginx很好的解决了这个需求,但问题是如果有新的服务加入,如何去修改Nginx的配置,并且加载这些配置? Kubernetes给出的方案就是Ingress;

    Ingress包含了两大主件Ingress Controller和Ingress.

    • Ingress 解决的是新的服务加入后,域名和服务的对应问题,基本上是一个ingress的对象,通过yaml进行创建和更新进行加载。
    • Ingress Controoler 通过watch与 Kubernetes API 交互,动态的去感知集群中 Ingress 规则变化,然后读取他,按照他自己模板生成一段 Nginx 配置,再写到 Nginx Pod 里,最后 reload 一下。

    目前Kubenetes只支持和维护GCE和Nginx Controller。使用Ingress后,外部访问的流量就不再经过Service,而是从Ingress Controller直接到Pod。

    Ingress Controller中包含三个组件:

    • Nginx
    • Ingress Controller
    • Ingress

    参考文档: 

    http://blog.51cto.com/newfly/2060587

    https://mritd.me/2017/03/04/how-to-use-nginx-ingress/

    https://www.cnblogs.com/ericnie/p/6965091.html

  • 相关阅读:
    基于maven构建javaweb项目思路梳理及改进 在路上
    分圆多项式整理
    第03次作业栈和队列
    C语言第二次实验报告
    week01绪论作业
    第02次作业线性表
    C语言第一次实验报告
    工作流的问题
    无法使用Outlook 2003 Out Of Office Assisant
    刷机
  • 原文地址:https://www.cnblogs.com/vincenshen/p/8988606.html
Copyright © 2020-2023  润新知