Ingress 定制配置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ingress 定制配置相关的知识,希望对你有一定的参考价值。
参考技术A原文地址: https://alphahinex.github.io/2021/08/01/customize-ingress/
description: "最大化 Ingress 价值"
date: 2021.08.01 10:34
categories:
- K8s
tags: [K8s, nginx]
keywords: K8s, Ingress, Ingress Controller, ingress-nginx, KIC, Kong Ingress Controller
K8s Ingress、Ingress Controller 和 Ingress Class 中介绍了 Ingress 相关的概念,接下来让我们看看如何对 Ingress 进行更加灵活的配置。
Ingress 的特性至 Kubernetes v1.19 进入了稳定状态,不论使用哪个具体的 Ingress Controller,这些配置都是生效的。
Ingress 中的每个 path 都需要有一个对应的 pathType ,共有三种类型:
例如:
主机名支持完全匹配和通配符匹配两种:
注意:host 中包含通配符时,通配符必须放在起始位置,即不可以设置为 foo.*.com
除了 Ingress 资源上的通用配置外,我们还可以针对所使用的具体的 Ingress Controller,通过注解的方式添加更灵活且丰富的配置。
这些注解通常由具体的 Controller 所提供,例如:
接下来让我们浏览几个 ingress-nginx 中的常用注解的作用及用法。
从 ingress-nginx 0.22.0 版本起,使用 nginx.ingress.kubernetes.io/rewrite-target 注解进行重写目标地址的配置,并且请求路径中的任意要在重写的路径中子路径,都必须明确的通过正则表达式的 捕获组 进行定义。捕获组以数字进行占位,按定义的先后顺序,表示为 $1 , $2 ... $n 。
在上面的配置中,请求路径 /demo-ui/ 后面的部分都会被 $2 所捕获,并作为参数传入 rewrite-target 注解中。
例如:
使用 nginx.ingress.kubernetes.io/app-root 注解可以设定根路径,例如:
此时,对 http://approot.bar.com/ 的访问,会被重定向到 http://approot.bar.com/app1 ,响应的 HTTP Status 是 302 Moved Temporarily 。
nginx.ingress.kubernetes.io/proxy-body-size 注解等同于 Nginx 中的 client_max_body_size ,可以设定允许的 request body 大小:
例如:
nginx.ingress.kubernetes.io/proxy-body-size: 8m
以上是关于Ingress 定制配置的主要内容,如果未能解决你的问题,请参考以下文章