前言
在 Kubernetes 的世界里,Nginx Ingress 不仅是流量的门卫,更是一把强大的调控利器。我们已经领略了其基础面貌,现在让我们踏上深度之旅,揭示 Nginx Ingress 的高级功能,助你在 Kubernetes 中创造流量掌控的艺术。
1. 利用 Annotations 定制化配置
Annotations 是 Nginx Ingress 提供的瑰宝,通过添加注释,你可以像艺术家一样精雕细琢。重写路径、添加自定义配置片段,一切尽在掌握。
# 示例:使用 Annotations 进行路径重写
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$1
nginx.ingress.kubernetes.io/server-snippet: |
location / {
rewrite ^/oldpath/(.*)$ /newpath/$1 permanent;
}
spec:
rules:
- host: myapp.example.com
http:
paths:
- path: /somepath/(.*)
pathType: Prefix
backend:
service:
name: my-app-service
port:
number: 80
2. 基于主机名的多域名魔法
Nginx Ingress 巧妙支持不同主机名的流量分发,如同一场魔法表演,每个域名都是独一无二的服务入口。
# 示例:基于主机名的多域名支持
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
spec:
rules:
- host: app1.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: app1-service
port:
number: 80
- host: app2.example.com
http: