网页访问在k8s集群中部署spinnaker跨域
·
前提:
(前提中的操作也是解决跨域问题的步骤)
1、在k8s集群中已成功部署spinnaker,pod都是running;

2、集群中已安装好ingress-nginx,nginx的访问方式为nodeport,已经创建好spinnaker的ingress资源,资源文件如下:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: spin-deck
namespace: spinnaker
spec:
ingressClassName: nginx
rules:
- host: spinnaker.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: spin-deck
port:
number: 9000
- host: spin-gate.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: spin-gate
port:
number: 8084
3、已通过如下命令设置好spinnaker的ui和gate的override-base-url
$ hal config security ui edit --override-base-url http://spinnaker.com:31295
$ hal config security api edit --override-base-url http://spin-gate.com
问题现象:
通过浏览器输入“http://spinnaker.com:31295”访问 spinnaker的时候,通过打开浏览器控制台(F12)-->Console疯狂输出跨域信息,类似如下情况;
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://spin-gate.com/credentials?expand=true.
(Reason: CORS header ‘Access-Control-Allow-Origin’ missing). Status code: 502.
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://spin-gate.com/credentials?expand=true.
(Reason: CORS request did not succeed). Status code: (null).
问题解决:
使用spinnaker用户做如下操作:
1、新建profiles文件夹
$ mkdir -p /home/spinnaker/.hal/default/profiles
2、新建两个文件,内容如下
# 路径:~/.hal/default/profiles/settings-local.js
# 内容如下:
window.spinnakerSettings.gateUrl = 'http://spin-gate.com:nginx端口号';
# 路径:~/.hal/default/profiles/gate-local.yml
# 内容如下:
server:
port: 8084
cors:
enabled: true
allowedOriginsPattern: '^http://spinnaker.com:nginx端口号$'
nginx端口号通过如下方式获取:、
![]()
3、重新部署spinnaker
$ hal deploy clean
$ hal deploy apply
4、浏览器访问spinnaker
注:如果还有跨域问题,可以尝试新建一个隐私窗口访问spinnaker,没有跨域问题的话,回到正常窗口下,
-
打开浏览器控制台(F12)→ 右键刷新按钮 → 选择 “清除缓存并完全重新加载”
-
或者使用快捷键:
Ctrl + Shift + R(Windows)或Cmd + Shift + R(Mac)
清空浏览器缓存。
更多推荐
所有评论(0)