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

标签 docker https kubernetes kubernetes-ingress strapi

我在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/

相关文章:

docker - 本地 docker Repos 不断变得越来越大

Docker:当 Dockerfile 位于子目录中时使用 COPY

apache - 每个带有 SSL 的 Apache 服务器的多个站点显示带有 HTTPS 的错误站点

docker - 如何删除所有这些 kubernetes k8s_* 容器

kubernetes - Istio 分布式跟踪仅显示 1 个跨度

azure - 错误: Rotate certificates in Azure Kubernetes Service (AKS)

docker - 使用 Traefik 2 作为 MariaDB (Docker) 的 TCP 代理

docker - 如何在特定时间每天运行容器

c# - 为 c# Post 使用不受信任的 ssl 证书

ssl - Fiddler https 错误 : "because they do not possess a common algorithm"