我在kubernetes上设置了trapi,一切运行正常,但是当我尝试从我的前端应用程序(它在HTTPs上运行)中通过stripi公开的API时,由于Kubernetes入口已在HTTP上公开了stradi,我遇到了一个错误。我不知道如何为HTTPS请求配置Stradi。如果有人可以指导我,我会很高兴。
最佳答案
基本上,Ingress提供了TLS终止的不同机制。
如果您的前端应用程序可以处理https,则应将tls流量路由到相应的服务。如果您的前端应用程序没有TLS功能,则应使用入口https终止。
https://kubernetes.io/docs/concepts/services-networking/ingress/
http:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /testpath
backend:
serviceName: test
servicePort: 80
来自kubernetes的示例https config,如果您的服务不执行https,它将如何显示:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: frontend-application-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
tls:
- hosts:
- mydomain.com
secretName: mycertificate
rules:
- host: mydomain.com
https:
paths:
- path: /
backend:
serviceName: frontend-application
servicePort: http
关于docker - Ingress如何决定他是否必须在http或https上公开kubernetes服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54666381/