kubernetes - 将 Kubernetes 入口子域主机映射到服务路径
问题描述
我有以下入口控制器和包含api
此 url 答案的主机https://api.example.com/docs
。
现在我想配置这个 nginx 入口访问/docs
端点使用https://docs.example.com
. 我曾尝试使用注释重写目标,但我不知道如何实现这一点。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: api-ingress
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "true"
kubernetes.io/ingress.class: nginx
certmanager.k8s.io/acme-challenge-type: dns01
certmanager.k8s.io/cluster-issuer: letsencrypt
spec:
rules:
- host: example.com
http:
paths:
- path: /
backend:
serviceName: web-service
servicePort: 80
- host: api.example.com
http:
paths:
- path: /
backend:
serviceName: api-service
servicePort: 80
tls:
- hosts:
- example.com
secretName: example.com
解决方案
您在这里需要的是app-root 注释。如果你使用这样的东西:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/app-root: /docs
传入的请求example.com/
将在内部重写为example.com/docs
.
请让我知道这是否有帮助。
推荐阅读
- c# - 从站点读取 RSS 提要并使用 C# 显示其中的 HTML 内容
- ios - 在不关闭键盘的情况下在文本字段之间切换时 Xcode 约束中断
- android - 没有连接到存储库的活动是否应该具有 ViewModel?
- git - git如何决定何时存在合并冲突?
- python - 在 c 扩展中返回 numpy 数组会导致分段错误:11
- javascript - 如何仅在用户登录时运行 ajax。(Django)
- asp-classic - tinymce 的经典 ASP 图像上传处理程序
- fpdf - 如何在 FPDF 中使用超过 1 个脚本
- javascript - 对 Angular 使用 @auth0/angular-jwt 时,auth 标头内没有令牌
- dart - 如何从 Dart 中的静态方法返回非静态字段