【发布时间】:2021-06-15 00:11:19
【问题描述】:
当我使用 nginx 作为我的 k8s 集群的入口控制器时,指定入口规则会自动在 nginx pod 的 /etc/nginx/conf.d/ 文件中创建相应的配置。
因此,它在那里为相关的上游/后端服务配置了 proxy_pass 指令。它是http。 对于我的服务的这个入口规则:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: my-ingress
# annotations:
# nginx.org/redirect-to-https: "false"
# #nginx.ingress.kubernetes.io/ssl-passthrough: "true"
spec:
ingressClassName: nginx
tls:
- hosts:
- test.myapp.com
secretName: test-tls-secret
rules:
- host: test.myapp.com
http:
paths:
- backend:
serviceName: myui
servicePort: 80
- path: /api/
backend:
serviceName: myapp
servicePort: 88
默认情况下,它会在 nginx 配置中自动为后端创建此指令:
proxy_pass http://default-my-ingress-test.myapp.com-myapp-88;
但是,我需要它是这样的 https:
proxy_pass https://default-my-ingress-test.myapp.com-myapp-88;
那么只有我的应用程序才能工作,因为该后端只接受 https 请求。
有没有办法为此目的使用任何注释或类似的东西通过 Ingress 资源修改特定后端服务的 proxy_pass 指令?
编辑:
有没有类似的注释可用?
或者是否有任何选项可以让我使用与实际 myapp 容器在同一个 pod 中的边车容器来处理它?
【问题讨论】:
标签: nginx kubernetes proxy kubernetes-ingress nginx-ingress