将 Spring Cloud Data Flow 2.6.0 部署到 Openshift
Deploy Spring Cloud Data Flow 2.6.0 to Openshift
我正在尝试将 SCDF 2.6.0 部署到 Openshift。
我可以验证数据库架构是否已成功更新,但似乎 Tomcat 无法启动并出现以下错误,我不知道发生了什么。
Caused by: java.lang.IllegalArgumentException: standardService.connector.startFailed
Caused by: org.apache.catalina.LifecycleException: Protocol handler start failed
Caused by: java.net.SocketException: Permission denied
重现步骤
使用MariaDB,然后按以下顺序导入*.yaml
- 服务器-roles.yaml
- 服务器-rolebinding.yaml
- 服务-account.yaml
- server-config.yaml(确保在此处更改数据库连接)
- 服务器-svc.yaml
- 服务器-deployment.yaml
我在我的仓库中上传了所有的 yml 和完整的日志文件:
https://github.com/gry77/app-issue-repo/tree/master/Openshift-SCDF-issue/k8s-config
OpenShift 默认不允许您 运行 容器作为特权,因此您需要使用 SecurityContextConstraint
特别允许。这里有一份关于如何在 OpenShift 上将 SCDF 设置为 运行 的很好的文档:https://donovanmuller.blog/spring-cloud-dataflow-server-openshift/docs/1.1.0.RELEASE/reference/htmlsingle/#_creating_and_configuring_service_accounts
基本上,您需要将 anyuid
SCC 添加到 ServiceAccount 运行宁 Pods:
oc adm policy add-scc-to-user anyuid system:serviceaccount:scdf:scdf
显然,在我将服务器端口从 80 更改为其他端口后,此错误消失了。
所以只需将环境中的 server.port 更改为其他 80
我正在尝试将 SCDF 2.6.0 部署到 Openshift。 我可以验证数据库架构是否已成功更新,但似乎 Tomcat 无法启动并出现以下错误,我不知道发生了什么。
Caused by: java.lang.IllegalArgumentException: standardService.connector.startFailed
Caused by: org.apache.catalina.LifecycleException: Protocol handler start failed
Caused by: java.net.SocketException: Permission denied
重现步骤
使用MariaDB,然后按以下顺序导入*.yaml
- 服务器-roles.yaml
- 服务器-rolebinding.yaml
- 服务-account.yaml
- server-config.yaml(确保在此处更改数据库连接)
- 服务器-svc.yaml
- 服务器-deployment.yaml
我在我的仓库中上传了所有的 yml 和完整的日志文件: https://github.com/gry77/app-issue-repo/tree/master/Openshift-SCDF-issue/k8s-config
OpenShift 默认不允许您 运行 容器作为特权,因此您需要使用 SecurityContextConstraint
特别允许。这里有一份关于如何在 OpenShift 上将 SCDF 设置为 运行 的很好的文档:https://donovanmuller.blog/spring-cloud-dataflow-server-openshift/docs/1.1.0.RELEASE/reference/htmlsingle/#_creating_and_configuring_service_accounts
基本上,您需要将 anyuid
SCC 添加到 ServiceAccount 运行宁 Pods:
oc adm policy add-scc-to-user anyuid system:serviceaccount:scdf:scdf
显然,在我将服务器端口从 80 更改为其他端口后,此错误消失了。
所以只需将环境中的 server.port 更改为其他 80