问题描述
我正在尝试将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
- server-roles.yaml
- server-rolebinding.yaml
- service-account.yaml
- server-config.yaml(确保在此处更改数据库连接)
- server-svc.yaml
- server-deployment.yaml
我将所有yml和完整的日志文件上传到了我的仓库中: https://github.com/gry77/app-issue-repo/tree/master/Openshift-SCDF-issue/k8s-config
解决方法
显然,在我将服务器端口从80更改为其他端口后,此错误消失了。
所以只需将环境中的server.port更改为80以外的其他
, OpenShift不允许默认情况下以特权用户身份运行容器,因此您需要使用SecurityContextConstraint
专门允许它。 https://donovanmuller.blog/spring-cloud-dataflow-server-openshift/docs/1.1.0.RELEASE/reference/htmlsingle/#_creating_and_configuring_service_accounts
基本上,您需要将anyuid
SCC添加到运行Pod的ServiceAccount:
oc adm policy add-scc-to-user anyuid system:serviceaccount:scdf:scdf