Kubernetes 阻止混合活动内容
Kubernetes Blocked Mixed Active Content
问题:
在使用 K8 的 [Kubernetes] 进行开发时,我 运行 遇到了一个问题,我的 Ingress/Nginx 似乎阻止我的客户端 (React) 从我的 [=54= 中提取数据](Flask/Python)。
详情:
客户端和 API 之间的连接是使用一个环境变量来促进的,我们将为此 post 调用 API_URL
。使用 API_URL
以便客户端知道哪些 API 路由到 GET 和 POST。
在开发中带有 K8 的 Minikube 上,根据我的理解,提供的 Minikube IP 会强制 https(或者可能是 ingress/nginx?)。 API_URL
环境变量值为 value: api-cluster-ip-service
。但是,当我访问开发站点时,它显示该值已分配给 http://localhost (not-https)
这导致:阻止加载混合活动内容“http://localhost/server/stuff”。结果,我无法从我的 API.
中提取任何内容
问题:
对此有推荐的方法吗?也许是一种在开发人员上关闭 https 的方法(我什至不知道这是否可能)?或者也许我需要本地主机的证书?我是 Kubernetes 的新手,非常感谢任何帮助!
入口-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
我找到了我的问题的原因...而且错误消息相当具有误导性。在本地环境中,我的客户端通过 http://localhost/api/ 与我的 API 对话。然而,我意识到因为我在 Minikube 上,它不再在本地主机上(因为 Minikube 有它自己的 IP)。一旦我将 API_URL 更改为 http://,它就会立即开始工作。
这里唯一的挑战是 minikube 在停止时会在每次刷新时更改 IP,这意味着我每次都需要获取 IP 并更新 API_URL。但是,这是一个单独的 question/answer.
总结:
将我的 API_URL 从 http://localhost 更改为 Minikube IP。立即开始工作。
问题:
在使用 K8 的 [Kubernetes] 进行开发时,我 运行 遇到了一个问题,我的 Ingress/Nginx 似乎阻止我的客户端 (React) 从我的 [=54= 中提取数据](Flask/Python)。
详情:
客户端和 API 之间的连接是使用一个环境变量来促进的,我们将为此 post 调用 API_URL
。使用 API_URL
以便客户端知道哪些 API 路由到 GET 和 POST。
在开发中带有 K8 的 Minikube 上,根据我的理解,提供的 Minikube IP 会强制 https(或者可能是 ingress/nginx?)。 API_URL
环境变量值为 value: api-cluster-ip-service
。但是,当我访问开发站点时,它显示该值已分配给 http://localhost (not-https)
这导致:阻止加载混合活动内容“http://localhost/server/stuff”。结果,我无法从我的 API.
中提取任何内容问题:
对此有推荐的方法吗?也许是一种在开发人员上关闭 https 的方法(我什至不知道这是否可能)?或者也许我需要本地主机的证书?我是 Kubernetes 的新手,非常感谢任何帮助!
入口-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
我找到了我的问题的原因...而且错误消息相当具有误导性。在本地环境中,我的客户端通过 http://localhost/api/ 与我的 API 对话。然而,我意识到因为我在 Minikube 上,它不再在本地主机上(因为 Minikube 有它自己的 IP)。一旦我将 API_URL 更改为 http://,它就会立即开始工作。
这里唯一的挑战是 minikube 在停止时会在每次刷新时更改 IP,这意味着我每次都需要获取 IP 并更新 API_URL。但是,这是一个单独的 question/answer.
总结:
将我的 API_URL 从 http://localhost 更改为 Minikube IP。立即开始工作。