1. 基于用户的Ingress Basic Auth认证配置
1.1 前置准备
- 安装
http-tools工具包,用于生成Basic Auth所需的认证文件 - 通过
htpasswd命令生成认证文件,配置用户名为xinxianghongfu,密码为123
1.2 资源创建流程
- 创建类型为
Opaque的Secret资源,将生成的认证文件封装其中,供Ingress调用 - 配置Ingress资源:
- 开启Basic Auth功能,通过3个注解实现:
nginx.ingress.kubernetes.io/auth-type: basic:指定认证类型为基础认证nginx.ingress.kubernetes.io/auth-secret: <Secret名称>:指定存储认证文件的Secretnginx.ingress.kubernetes.io/auth-realm: <认证提示信息>:配置认证弹窗的提示文案
- 配置Ingress规则:匹配目标主机名,后端指向对应
Service,端口为80
- 开启Basic Auth功能,通过3个注解实现:
1.3 验证与注意事项
- 访问Ingress绑定的域名时,会弹出认证弹窗,输入用户名
xinxianghongfu、密码123即可正常访问后端服务 - 注意:新版浏览器默认会隐藏认证提示信息,仅显示输入框,属于正常现象,可通过Chrome DevTools或旧版浏览器验证提示信息是否生效
2. Ingress重定向(Redirect)配置
2.1 配置方法
在Ingress资源的annotations中添加nginx.ingress.kubernetes.io/permanent-redirect: <目标地址>注解,即可实现请求永久重定向,示例中配置为重定向到https://www.baidu.com,返回301状态码。
2.2 验证方式
- 将目标域名(如
xinxianghongfu.com)解析到Ingress所在节点的IP - 浏览器访问该域名,会自动跳转到配置的目标地址
- 通过
curl -I <域名>或Chrome DevTools的网络面板可查看返回的301状态码,确认重定向生效
3. Ingress重写(Rewrite)配置与原理
3.1 新旧版本Ingress类指定差异
- 老版本Ingress:通过annotation
nginx.ingress.kubernetes.io/configuration-snippet指定Ingress类名 - 新版本Ingress:直接在
spec.ingressClassName字段指定类名,无需额外annotation,更简洁
3.2 重写配置方法
在Ingress资源的annotations中添加nginx.ingress.kubernetes.io/rewrite-target: <重写后的路径>注解,结合路径匹配的正则表达式规则实现路径重写。
示例配置逻辑:匹配/api/<任意路径>的请求,通过正则捕获分组将路径重写为/<任意路径>,转发给后端服务,解决前后端路径不一致的问题。
3.3 重写与重定向的核心区别
| 特性 | 重写(Rewrite) | 重定向(Redirect) |
|---|---|---|
| 执行主体 | Ingress控制器内部处理,无额外请求 | 客户端收到3xx状态码后主动发起新请求 |
| 客户端感知 | 无感知,浏览器URL地址栏不变 | 有感知,URL地址栏会变更为目标地址 |
| 返回状态码 | 无特殊状态码,直接返回后端服务响应 | 返回3xx状态码(如301永久重定向、302临时重定向) |
| 适用场景 | 统一域名下不同路径转发到不同后端、隐藏后端真实路径、前后端路径对齐等 | 域名迁移、HTTP跳HTTPS、旧地址跳转新地址、协议跳转等 |
3.4 典型应用场景
统一域名下区分前端/后端服务:例如访问xinxianghongfu.com/xxx转发到前端服务,访问xinxianghongfu.com/api/xxx通过重写将路径转为/xxx转发到后端服务,无需修改业务代码即可实现路径对齐,降低业务改造成本。
4. 自定义Ingress全局错误页面配置
4.1 配置前提
自定义错误页面为Ingress-nginx全局配置,需在安装Ingress-nginx时提前规划配置,若安装后需修改,需重新部署Ingress-nginx组件。
4.2 配置步骤
- 准备错误页面镜像:可使用提前封装好的镜像
wangyanglanus/tools:errweb1.0,内置各类通用错误页面,容器端口为80,也可自行封装包含自定义错误页面的镜像 - 修改Ingress-nginx的配置参数:
- 开启自定义错误页面功能
- 指定错误页面镜像的仓库地址、镜像名称、版本号、端口
- 重新部署Ingress-nginx,指定修改后的配置文件和命名空间
ingress-nginx
4.3 效果验证
当Ingress后端的服务出现404、502等错误时,会自动返回配置的自定义错误页面,无需在每个业务服务中单独实现错误页面逻辑,降低重复开发成本。
AI 总结
本视频是Kubernetes Ingress-nginx的进阶实操教程,围绕Ingress的3个核心高级能力展开:首先演示了基于用户的Basic Auth认证全流程配置与验证;其次详细讲解了Ingress重定向、重写的配置方法,明确了两者的本质区别与适用场景;最后介绍了全局自定义错误页面的部署方案。所有内容均通过实操演示验证,适合K8s运维人员学习Ingress的高级用法,解决实际生产中的访问控制、路径管理、异常处理等需求。