Ingress如何决定他是否必须在http或https上公开kubernetes服务?

时间:2019-02-13 09:13:17

标签: docker https kubernetes kubernetes-ingress strapi

我在kubernetes上设置了trapi,一切运行良好,但是当我尝试从我的前端应用程序(运行在HTTPs上)中通过trapi公开的API时,由于Kubernetes入口已在HTTP上公开了trapi,我遇到了错误。我不知道如何为HTTPS请求配置Stradi。如果有人可以引导我,我会很高兴。

1 个答案:

答案 0 :(得分:2)

基本上,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配置,如果您的服务不执行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