Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker ingress如何决定是否必须在http或https上公开kubernetes服务?_Docker_Https_Kubernetes_Kubernetes Ingress_Strapi - Fatal编程技术网

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

Docker ingress如何决定是否必须在http或https上公开kubernetes服务?,docker,https,kubernetes,kubernetes-ingress,strapi,Docker,Https,Kubernetes,Kubernetes Ingress,Strapi,我已经在kubernetes上设置了strapi,一切都正常运行,但是当我试图从我的前端应用程序(在HTTPs上运行)中访问strapi公开的API时,我遇到了一个错误,因为kubernetes ingress在HTTP上公开了strapi。我不知道如何为HTTPS请求配置strapi。如果有人能指导我,我会很高兴。基本上,Ingress提供了不同的TLS终止机制 如果您的前端应用程序可以处理https,那么您应该将tls流量路由到相应的服务。如果前端应用程序没有tls功能,则应使用入口http

我已经在kubernetes上设置了strapi,一切都正常运行,但是当我试图从我的前端应用程序(在HTTPs上运行)中访问strapi公开的API时,我遇到了一个错误,因为kubernetes ingress在HTTP上公开了strapi。我不知道如何为HTTPS请求配置strapi。如果有人能指导我,我会很高兴。

基本上,Ingress提供了不同的TLS终止机制

如果您的前端应用程序可以处理https,那么您应该将tls流量路由到相应的服务。如果前端应用程序没有tls功能,则应使用入口https终端。

http:

kubernetes提供的https配置示例,如果您的服务不使用https,它会是什么样子:

apiVersion:extensions/v1beta1
种类:入口
元数据:
名称:前端应用程序入口
注释:
nginx.ingres.kubernetes.io/rewrite-target:/
规格:
tls:
-主持人:
-mydomain.com
秘名:菌丝体
规则:
-主持人:mydomain.com
https:
路径:
-路径:/
后端:
serviceName:前端应用程序
servicePort:http

您的Kubernetes托管在哪里?答案将取决于这一点,因为入口有不同的变体;在规则部分为我生成了一个异常:io.k8s.api.extensions.v1beta1中的“未知字段”https```
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