kubernetes之Ingress

news/2024/11/24 2:22:53/

一、背景

        Ingress是k8s中实现7层负载的实现方式,是公开集群外部流量到集群内服务的HTTP和HTTPS路由

二、Ingress基础

        通常Ingress实现由Ingress 控制器和Ingress组成,Ingress控制器负责具体实现反向代理及负载均衡,Ingress负责定义匹配规则和路由

        Ingress-nginx控制器部署参见:Installation Guide - Ingress-Nginx Controller

        Ingress流程示意图:

三、示例

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: minimal-ingressannotations:nginx.ingress.kubernetes.io/rewrite-target: /
spec:ingressClassName: nginx-examplerules:- http:paths:- path: /testpathpathType: Prefixbackend:service:name: testport:number: 80

 参数解释说明:

1. ingressClassName: 指定Ingressclass名称,集群可以有多个class

2. rules:规则具体定义

3. paths:指定匹配URI

4. backend: 指定匹配到URI后转发到后端的service

5. annotations: 配合Ingress控制器来配置;不同的控制器,这里注解不一样

 其他参数:

 host:未指定host,则规则适用于通过指定IP地址的所有入站流量;反之,则只是适用于特定的host

backend: service加端口的组合;

defaultBackend:默认后端,通常在Ingress控制器配置,实现无法和rules匹配的其他路由处理

四、路径类型

pathType有如下选项:

1. Exact: 精确匹配URL路径,且区分大小写

2. Prefix:基于/分隔的URL路径前缀匹配,区分大小写

3. ImplementationSpecific:对于这种路径类型,匹配方法取决于 IngressClass

 五、Ingress类

Ingress可以有不同的控制器,通常也使用不同的配置;每个Ingress应当改指定一个类,也就是对ingressClass资源的引用

apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:name: external-lb
spec:controller: example.com/ingress-controllerparameters:apiGroup: k8s.example.comkind: IngressParametersname: external-lb


http://www.ppmy.cn/news/1001455.html

相关文章

金三银四好时节,python面试10K+能不能得到?

嗨害大家好鸭!我是小熊猫~ 金三银四好时节,面试10K能不能得到? 这次正逢面试季,这次给大家带来一个真实面试题 虽然最后上的班不一定是自己喜欢的, 但是工作还是要有哇! 第三方库: requests >>>…

MySQL 远程操作mysql

可以让别人在他们的电脑上操作我电脑上的数据库 create user admin identified with mysql_native_password by admin; //设置账号密码都为admingrant all on *.* to admin; //给admin账号授权 授权完成

登录Artifactory

在Linux中,如果要通过Docker客户端拉取Artifactory中的Docker镜像,您需要使用Docker登录命令来进行认证。Artifactory作为Docker Registry时,通常使用基本身份验证(Basic Authentication)来进行登录。 以下是使用Dock…

js中基于正则的多字符串分割split

待分割字符串:‘a b -c z’ 1、按照 ‘’ 或者 ‘-’ 进行分割 a b -c z.split(/\|\-/)分割结果 [a , ’ b , c ‘, ’ z’] 2、为什么不去除分割结果的空格呢? a b -c z.split(/\s*(\|\-)\s*/)分割结果 [‘a’, ‘’, ‘b’, ‘-’…

无涯教程-Lua - Modules(模块)

模块就像可以使用 require 加载的库,并且具有包含Table的单个全局名称,该模块可以包含许多函数和变量。 Lua 模块 其中一些模块示例如下。 -- Assuming we have a module printFormatter -- Also printFormatter has a funtion simpleFormat(arg) -- …

【Spring Cloud 四】Ribbon负载均衡

Ribbon负载均衡 系列文章目录背景一、什么是Ribbon二、为什么要有Ribbon三、使用Ribbon进行负载均衡服务提供者A代码pom文件yml配置文件启动类controller 服务提供者Bpom文件yml配置文件启动类controller 服务消费者pom文件yml文件启动类controller 运行测试 四、Ribbon的负载均…

模型优化调参方法介绍(Python代码)

模型算法在机器学习和深度学习中都发挥着自己的作用,但往往训练出来的模型效果不佳或稳定性不强,就需要对模型进行调优。一般来说,会从以下几个角度来优化模型。 1.优化数据维度 在需要对原始需求进行理解、准确定义好坏样本的前提下&#…

tomcat和nginx的日志记录请求时间

当系统卡顿时候,我们需要分析时间花费在哪个缓解。项目的后端接口可以记录一些时间,此外,在我们的tomcat容器和nginx网关上也可以记录一些有关请求用户,请求时间,响应时间的数据,可以提供更多的信息以便于排…