K8S-ingress

Ingress作用

  • 7层负载均衡
    我们知道service可以通过kube-proxy实现4层负载均衡,而ingress规则配置的后端是service,ingress似乎只起到反向代理的作用,且只能借助service实现4层负载均衡。但实际上,当我们配置了Ingress规则后,kube-proxy就不再起作用,ingress-controller会直接从service所属的endpoints中选择一个Pod,将流量直接转发到该Pod上,从而实现7层负载均衡。


    image.png
  • 小成本对外暴露服务
    当我们要把集群中的服务对外暴露时,通常要创建LB类型或者是NodePort类型的Service。在生产上,一般都使用LB类型的Service,当我们服务很多时,需要用到的LB就会非常多,成本相对就较高,如果再绑定下域名就更麻烦了。而使用Ingress只用把Ingress服务暴露出去,就可以把外部流量导入到集群中。

一般ingress-controller都是通过deployment形式部署的,只需要再创建一个LB类型的service(调试环境也可以使用NodePort类型Service。),后端为ingress-controller,将该ingress-controller暴露出去即可。

当然,通过这种方式暴露集群的服务,存在一个问题是ingress-controller可能成为一个性能瓶颈点。

Ingress-Nginx 规则配置

首先区分一下ingress规则和ingress-controller的作用。我们创建ingress的时候,实际上是创建ingress规则,也就是转发规则,而真正实现流量转发的是ingress-controller。ingress-controller会list/watch ingress规则,当流量进来后,根据ingress规则,将流量转发到不同的后端服务。

ingress-nginx是k8s官方实现的基于nginx的ingress-controller。规则配置的示例如下:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: test-ingress
  namespace: default
  annotations:
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
    nginx.ingress.kubernetes.io/use-regex: "true"
spec:
  rules:
  - host: test-ingress.com
    http:
      paths:
      - path: /foo
        backend:
          service: 
            name: web1-service
            port:
              number: 8080
        pathType: ImplementationSpecific
      - path: /bar
        backend:
          service: 
            name: web1-service
            port:
              number: 8080
        pathType: ImplementationSpecific
  • host:指定服务访问域名。
  • path:指定访问的URL路径。LB将流量转发到backend之前,所有的入站请求都要先匹配host和path。
  • backend:由服务名称和服务端口组成。
  • 服务名称:Ingress转发的backend服务名称。
  • 服务端口:服务暴露的端口。

注:根据云厂商的不同,ingress规则配置的语法也不同。

参考

https://marcuseddie.github.io/2021/K8s-Network-Architecture-section-two.html

?著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,100评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,308评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事?!?“怎么了?”我有些...
    开封第一讲书人阅读 159,718评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,275评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,376评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,454评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,464评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,248评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,686评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,974评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,150评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,817评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,484评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,140评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,374评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,012评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,041评论 2 351

推荐阅读更多精彩内容