在生产环境迁移至Kubernetes的过程中,有一个服务和其他服务不太一样,该服务主要用于和底层SAP系统做数据交换和同步,SAP提供了SAP Java Connector(SAP JCo)的开发库来连接SAP系统。
非容器环境下Linux
Jco本质上是基于RFC的ABAP和JAVA进程间通讯组件,和其他组件不同,并不是引入一个Jar包就解决问题,从官网下载的包里包含2个文件,Jar包和本地Native库:
- libsapjco3.so
- sapjco3.jar
必须要在系统环境变量加载Native库才能驱动Jar包
echo "export LD_LIBRARY_PATH=/你的目录" >> /etc/profile
# 生效
source /etc/profile
如此Java应用运行后便能够成功连接SAP系统。
容器环境下
由于需要迁移至Kubernetes环境下,所以分析后需要做到如下三点:
定义volume把jco文件夹做hostpath挂载至Pod内
在宿主机上传jco文件夹后,做挂载
这里为了方便使用的是Kuboard工具,并没有直接编辑yaml资源文件。如果不是专业Kubernetes运维,其实个人建议使用一些图形管理工具会更加高效一点。
配置环境变量LD_LIBRARY_PATH
由于并不想把所有机器都上传jco文件夹,所以考虑还是选出2-3台机器加标签后,把此应用限制一下调度主机范围
做完上述三点后,于是启动,sap连接正常,就这样。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。