将Spring Cloud Data Flow 2.6.0部署到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

  1. server-roles.yaml
  2. server-rolebinding.yaml
  3. service-account.yaml
  4. server-config.yaml(确保在此处更改数据库连接)
  5. server-svc.yaml
  6. 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

上有一个很好的文档,说明如何使SCDF在OpenShift上运行。

基本上,您需要将anyuid SCC添加到运行Pod的ServiceAccount:

oc adm policy add-scc-to-user anyuid system:serviceaccount:scdf:scdf