kubernetes与spring cloud 的结合中,由于前后端分别部署在了不同的pod中,所以在访问的时候会产生跨域问题,有三种解决方式。
一、在集群中部署nginx pod对后端应用进行代理
我们的前端应用为crm-web,后端应用为crm-portal,每个应用对应一个ClusterIP形式的service。
> kubectl get po -n dev
NAME READY STATUS RESTARTS AGE
crm-portal-deployment-7c6f544855-l8qr8 1/1 Running 0 117m
crm-web-deployment-5cf8447595-h7qms 1/1 Running 0 17m
> kubectl get svc -n dev
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
crm-portal -svc ClusterIP 10.108.158.149 <none> 8091/TCP 6d1h
crm-web-svc NodePort 10.107.246.255 <none> 8080:30000/TCP 6d1h
我们在集群中创建一个nginx,设置为允许跨域,代理后端pod。
1、创建nginx的confmap
1)首先准备nginx的配置文件nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8090;
server_name localhost;
location / {
add_header 'Access-Control-Allow-Origin' '*';
add_hea