【发布时间】:2019-06-09 03:52:39
【问题描述】:
问题:
在使用 K8 的 [Kubernetes] 进行开发时,我遇到了一个问题,即我的 Ingress/Nginx 似乎阻止我的客户端(React)从我的 API(Flask/Python)中提取数据。
详情:
客户端和 API 之间的连接是使用环境变量来促进的,为了这篇文章,我们将其称为 API_URL。使用API_URL 以便客户端知道哪些 API 路由到 GET 和 POST。
在开发中使用 K8 的 Minikube 上,提供的 Minikube IP 根据我的理解强制 https(或者它可能是 ingress/nginx?)。 API_URL 环境变量值为value: api-cluster-ip-service。但是,当我访问开发站点时,它显示此值已分配给 http://localhost(非 https)
这导致:阻止加载混合活动内容“http://localhost/server/stuff”。结果,我无法从我的 API 中提取任何内容。
问题:
对此有推荐的方法吗?也许是一种在 dev 上关闭 https 的方法(我什至不知道这是否可能)?或者也许我需要本地主机的证书?我对 Kubernetes 还很陌生,因此非常感谢任何帮助!
Ingress-server.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-service
annotations:
kubernetes.io/ingress.class: nginx
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: client-cluster-ip-service
servicePort: 3000
- path: /api/
backend:
serviceName: server-cluster-ip-service
servicePort: 5000
入口命名空间输出
kubectl get ing --all-namespaces
default ingress-service * 10.0.2.15 80 4d21h
【问题讨论】:
-
你能分享你的入口yaml吗?
-
@Crou 是的!在编辑中添加
-
@dizzy 你是如何部署入口控制器的?
-
@dizzy kubectl get ing --all-namespaces
-
@dizzy,您是否尝试过在 .yaml 中指定
host?您也可以禁用重定向添加注释nginx.ingress.kubernetes.io/ssl-redirect: "false"
标签: http kubernetes kubectl minikube