1 介绍

1.1 概念

  Ingress意为进入或进入的行为;进入的权利;进入的手段或地点;入口。
  Ingress支持L7(网络第七层,HTTP/HTTPS)负载均衡。

1.2 Ingress的需求

  每个LoadBalancer服务都需要自己的负载均衡器,以及独有的公有IP地址,而Ingress只需要一个公网IP就能为许多服务提供访问,当客户端向Ingress发送HTTP请求时,Ingress会根据请求的主机名和路径决定请求转发到的服务。

1.3 Ingress暴露服务


只有Ingress控制器在集群中运行,Ingress资源才能正常工作。

2 Ingress使用

2.1 创建Ingress资源

apiVersion: extensions/v1beta1
kind: Ingress
metadata:name: ingress_name
spec:rules:- host: ingress.example.comhttp:paths:- path: /backend:serviceName: service_nameservicePort: 80

$ kubectl create -f xxx.yaml

2.2 查询

$ kubectl get ingresses

其中,ADDRESS为服务暴露出来的IP地址。

3 Ingress工作原理

1)客户端首先对ingress.example.com执行DNS查找;
2)DNS服务器(或本地操作系统)返回Ingress控制器的IP;
3)客户端向Ingress控制器发送HTTP请求,并在Host头中指定ingress.example.com;
4)控制器从该头部确定客户端尝试访问哪个服务,通过与该服务关联的Endpoint对象查看pod IP;
5)将客户端的请求转发给其中一个pod。

4 服务映射方式

4.1 将不同的服务映射到相同主机的不同路径

...- host: service_name.example.comhttp:paths: - path: /service_path1backend: serviceName: service_name1servicePort: 80- path: /service_path2backend: serviceName: service_name2servicePort: 80

  对service_name.example.com/service_path1的请求转发到service_name1服务上;service_name.example.com/service_path2的请求转发到service_name2服务上。
  请求将发送到了两个不同的服务上,客户端可以通过一个IP地址访问两种不同的服务。

4.2 将不同的服务映射到不同的主机上

...
spec:rules:- host: service_name1.example.comhttp:paths:- path: /backend:serviceName: service_name1servicePort: 80- host: service_name2.example.comhttp:paths:- path: /backend:serviceName: service_name2servicePort: 80

  对service_name1.example.com的请求转发至service_name1服务上;对service_name2.example.com的请求转发至service_name2服务上;
  根据请求中的Host头,控制器收到的请求将被转发到service_name1service_name2服务,DNS需要将service_name1.example.comservice_name2.example.com域名指向Ingress控制器和IP地址。

参考《k8s in action》

Kubernetes-Ingress(十九)相关推荐

  1. 运维实操——kubernetes(十九)k8s中部署Prometheus、监控nginx、HPA自动伸缩

    k8s中部署Prometheus.监控nginx.HPA自动伸缩 1.什么是Prometheus? 2.k8s中部署Prometheus监控 3.prometheus监控nginx 4.基于prome ...

  2. 使用Minikube部署本地Kubernetes集群(二十九)

    前言 使用Minikube部署本地k8s集群相对比较简单,非常推荐将其用于本地k8s开发环境,唯一麻烦点的仅仅是网络问题. 在本篇教程中,我们使用了国内的镜像来完成本地k8s集群的搭建.如果搭建过程中 ...

  3. 宅家学习,如何进行Kubernetes Ingress控制器的技术选型?

    导语:在Kubernetes的实践.部署中,为了解决 Pod 迁移.Node Pod 端口.域名动态分配等问题,需要开发人员选择合适的 Ingress 解决方案.面对市场上众多Ingress产品,开发 ...

  4. Kubernetes Ingress 控制器的技术选型技巧

    作者:厉辉,腾讯云中间件API网关核心研发成员 在 Kubernetes 的实践.部署中,为了解决 Pod 迁移.Node Pod 端口.域名动态分配等问题,需要开发人员选择合适的 Ingress 解 ...

  5. 【Microsoft Azure 的1024种玩法】四十九.在Azure中使用Azure VirtualMachines 搭建Microsoft SharePoint 2016

    [简介] SharePoint Server 2016 的设计.开发和测试以 Microsoft 软件即服务 (SaaS) 战略为核心.SharePoint Server 2016 广泛借鉴了该经验, ...

  6. 【Microsoft Azure 的1024种玩法】五十九.基于Azure云平台快速搭建GitLab应用实现代码托管

    [简介] GitLab是由GitLab Inc.开发,一款基于Git的完全整合的软体开发平台,以 Git 作为代码管理工具并实现自托管的 Git 项目仓库,本篇文章主要介绍如何在Azure Virtu ...

  7. 《C++Primer》第十九章

    第十九章 特殊工具与技术 控制内存分配 1. 重载new和delete 重载这两个运算符与重载其他运算符的过程大不相同.想要真正重载new和delete的方法,首先要对new表达式和delete表达式 ...

  8. 2021年大数据Hadoop(二十九):​​​​​​​关于YARN常用参数设置

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 关于yarn常用参数设置 设置container分配最小内 ...

  9. python第二十九课——文件读写(复制文件)

    自定义函数:实现文件复制操作有形参(2个) 没有返回值相似版(不用) def copyFile(src,dest):#1.打开两个文件:1个关联读操作,1个关联写操作fr=open(src,'rb') ...

  10. 第十九章——使用资源调控器管理资源(2)——使用T-SQL配置资源调控器

    第十九章--使用资源调控器管理资源(2)--使用T-SQL配置资源调控器 原文: 第十九章--使用资源调控器管理资源(2)--使用T-SQL配置资源调控器 前言: 在前一章已经演示了如何使用SSMS来 ...

最新文章

  1. Flink状态后端配置(设置State Backend)
  2. ajax.beginform onfailure,如何使用Ajax.BeginForm OnSuccess和OnFailure方法?
  3. Web Components 入门实例教程
  4. Timus 1018 树形DP
  5. [XML-Jsoup]Jsoup_对象的使用(Jsoup工具类,Document,Elements,Element,Node)
  6. WebStorm取消默认style样式折叠
  7. LeetCode 2178. 拆分成最多数目的偶整数之和(等差数列求和)
  8. matlab安装第三方库,Matlab调用cpp+第三方库
  9. DJFP2FP2计算机电缆,ZR-DJFP2FP2-22 (ZR-DJFP2FP2-22计算机电缆)(百勤石油)
  10. 目标检测——域适应的学习笔记
  11. Silverlight:Dependency Property(依赖属性)学习笔记
  12. csuoj-1900 锋芒毕露
  13. 虚拟偶像成为二次元香饽饽,从直播切入有戏吗?
  14. android 计算屏幕尺寸来区分phone和pad
  15. php输出跳转下一页,tp5页面输出时,搜索后跳转下一页的处理
  16. 用一张PPT让面试官在100个人里面记住你
  17. 【CAD】多段线的合并与闭合的操作与测试
  18. spacy语言模型安装踩坑经历
  19. 从头学前端-35:溢出处理
  20. HAUT2021蓝桥杯专题练习第四周记录——贪心

热门文章

  1. VS2019/openGL/freeglut配置
  2. MySQL:数据库还原问题
  3. 红黑树原件 及其插入、删除(附图说明)
  4. python批量生成word报告_python自动生成word报告 | 如何将现有的数据利用python 填入word的表格中?...
  5. html ajax提交表单实例,jQuery使用$.ajax提交表单完整实例
  6. 电脑投屏软件哪个好_电脑绘画软件哪个好?
  7. 一款好看的单页个人引导页源码
  8. SubRenamer – 字幕批量重命名,自动匹配视频文件与字幕文件[Windows]
  9. 收录网zblog主题导航模板
  10. LeetCode160 | Intersection-of-two-linked-lists