Kubernetes Ingress 背后缺少 Zeppelin 笔记本和解释器
Zeppelin Notebooks and Interpreters Missing Behind Kubernetes Ingress
我运行遇到一个问题,即在启用 Kubernetes 入口到达我的 Zeppelin 容器后解释器丢失。
我在 Kubernetes 上 运行ning Zeppelin 0.8.2,当它不在入口后面时一切正常。
我可以在笔记本创建弹出窗口中选择默认解释器,运行 段没有问题。
在 Kubernetes 中设置入口时,以前创建的笔记本和在创建新笔记本时选择的解释器会丢失。
我仍然可以访问解释器设置页面,而且它们似乎都还在那里。
zeppelin-site.xml 需要更改为 运行,没有入口。
<property>
<name>zeppelin.server.addr</name>
<value>0.0.0.0</value>
<description>Server binding address</description>
</property>
默认为 127.0.0.0
根据此论坛讨论对 shiro.ini 所做的更改:
https://community.cloudera.com/t5/Support-Questions/How-do-I-recover-missing-Zeppelin-Interpreter-tab-and-its/m-p/160680
sessionManager = org.apache.shiro.web.session.mgt.DefaultWebSessionManager
cacheManager = org.apache.shiro.cache.MemoryConstrainedCacheManager
securityManager.cacheManager = $cacheManager
securityManager.sessionManager = $sessionManager
securityManager.sessionManager.globalSessionTimeout = 86400000
下面使用的 Ingress 变量名称已更改
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
ingress.kubernetes.io/ssl-redirect: "true"
name: zeppelin-name
namespace: namespace_here
spec:
rules:
- host: zeppelin.zeppelin-services.my-host.org
http:
paths:
- backend:
serviceName: zeppelin-name
servicePort: 8080
path: /
tls:
- hosts:
- zeppelin.zeppelin-services.my-host.org
secretName: secret-name
status:
loadBalancer: {}
为了让 Zeppelin 在 Kubernetes Ingress 后面正常工作,我缺少什么,让我可以看到以前创建的笔记本,以及在创建新笔记本时下拉菜单中出现的解释器?
同事找到了答案。
事实证明,信息没有到达齐柏林飞艇页面。
经检查,出现 405 错误:
'wss://zeppelin.zeppelin-services.my-host.org/ws' 失败:WebSocket 握手期间出错:意外的响应代码:405
他检查了 nginx-ingress pod 上的日志,发现了类似的失败消息。
问题出在使用的入口 yaml 中,需要添加注释
metadata:
annotations:
nginx.org/websocket-services: zeppelin-name
我运行遇到一个问题,即在启用 Kubernetes 入口到达我的 Zeppelin 容器后解释器丢失。
我在 Kubernetes 上 运行ning Zeppelin 0.8.2,当它不在入口后面时一切正常。 我可以在笔记本创建弹出窗口中选择默认解释器,运行 段没有问题。
在 Kubernetes 中设置入口时,以前创建的笔记本和在创建新笔记本时选择的解释器会丢失。 我仍然可以访问解释器设置页面,而且它们似乎都还在那里。
zeppelin-site.xml 需要更改为 运行,没有入口。
<property>
<name>zeppelin.server.addr</name>
<value>0.0.0.0</value>
<description>Server binding address</description>
</property>
默认为 127.0.0.0
根据此论坛讨论对 shiro.ini 所做的更改: https://community.cloudera.com/t5/Support-Questions/How-do-I-recover-missing-Zeppelin-Interpreter-tab-and-its/m-p/160680
sessionManager = org.apache.shiro.web.session.mgt.DefaultWebSessionManager
cacheManager = org.apache.shiro.cache.MemoryConstrainedCacheManager
securityManager.cacheManager = $cacheManager
securityManager.sessionManager = $sessionManager
securityManager.sessionManager.globalSessionTimeout = 86400000
下面使用的 Ingress 变量名称已更改
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
ingress.kubernetes.io/ssl-redirect: "true"
name: zeppelin-name
namespace: namespace_here
spec:
rules:
- host: zeppelin.zeppelin-services.my-host.org
http:
paths:
- backend:
serviceName: zeppelin-name
servicePort: 8080
path: /
tls:
- hosts:
- zeppelin.zeppelin-services.my-host.org
secretName: secret-name
status:
loadBalancer: {}
为了让 Zeppelin 在 Kubernetes Ingress 后面正常工作,我缺少什么,让我可以看到以前创建的笔记本,以及在创建新笔记本时下拉菜单中出现的解释器?
同事找到了答案。 事实证明,信息没有到达齐柏林飞艇页面。 经检查,出现 405 错误:
'wss://zeppelin.zeppelin-services.my-host.org/ws' 失败:WebSocket 握手期间出错:意外的响应代码:405
他检查了 nginx-ingress pod 上的日志,发现了类似的失败消息。
问题出在使用的入口 yaml 中,需要添加注释
metadata:
annotations:
nginx.org/websocket-services: zeppelin-name