Kubernetes上的WebLogic Server 12.1.3

wls-hello-world-kubernetes 你们中的大多数人都记得,我在Oracle WebLogic Server中拥有很少的历史。 从BEA时代一路走来。 我不想评论最新的开发,功能或标准支持,但可以肯定的是:它已经存在,有机会将其运行在容器中是许多客户都会喜欢的。 也许这是一回事,随着集装箱化领域的不断发展,这将对我们的行业产生真正的影响。 实际上,我们可以在一个通用基础上管理异构基础架构组件。 如果我们拥有合适的工具。 对于OpenShift的操作方面,当然对所有开发人员来说,这都是正确的,他们将欣赏Fabric8可以为他们做的事情。

许可证序言

无论此博客文章中发生什么,都只会在我本地的开发人员笔记本电脑上发生。 我坚信,就Oracle技术而言,这完全由所谓的OTN自由开发人员许可协议Java SEOracle二进制代码许可协议涵盖。

我很确定,生产环境需要大量许可证。 但是我不是专家。 所以,不要问我。 如果要使用RHEL 7,请了解有关Red Hat订阅的信息

WebLogic –您的图像在哪里?

不在那里。 我假设出于许可原因。 但是,Bruno在将相关的Dockerfile和脚本推送到Oracle GitHub官方帐户方面做得很好。 所以。 在Kubernetes上运行WebLogic的第一步是实际使用它构建一个docker映像。 走,

git clone https://github.com/oracle/docker

并导航到OracleWebLogic文件夹。 实际上,您可以删除除此以外的所有其他内容。 第一步是下载WebLogic ZIP安装程序和要使用的正确JDK。

转到Oracle网站 ,接受OTN许可证(如果您愿意)并下载独立于平台的ZIP安装程序(wls1213_dev_update2.zip)。

现在浏览至JDK下载网站 ,执行相同的许可操作,并将8u51 JDK下载为rpm(jdk-8u51-linux-x64.rpm)。 将两者都放入OracleWebLogic \ dockerfiles \ 1.2.1.3文件夹中。 如果您自己在操作系统(如OS)上运行,请随时查阅官方文档并使用提供的脚本。 在Windows上,这对我不起作用,因此您将逐步了解。 去将Dockerfile.developer重命名为Dockerfile并删除所有其他文件。

mv Dockerfile.developer Dockerfile
rm Dockerfile.*

现在,您打开Dockerfile并进行一些更改。 基于RHEL 7:

FROM rhel7

并注释掉另一个库,因为它…因为我们要运行一个补丁不错且可用的Java版本,因此我们将相应地更改环境变量:

ENV JAVA_RPM jdk-8u51-linux-x64.rpm

是时候树立我们的形象了。 在开始之前,让我们重用我已经在前两个博客文章中使用过的fabric8 vagrant安装程序。 因此,首先将带有OpenShift的流浪实例启动。 现在是时候构建WebLogic映像了。 坐下来放松一下,因为这将需要花费几分钟。 做些家务吗? 这可能是正确的时间!

docker build --force-rm=true --tag="vagrant.f8:5000/oracle/weblogic:12.1.3-dev" .

做完了吗 检查是否一切都在我们期望的位置:(泊坞窗图像)

vagrant.f8:5000/oracle/weblogic       12.1.3-dev          68f1ea788bba        About a minute ago   2.05 GB

因为此映像仅包含服务器二进制文件,所以我们现在需要构建其中具有已配置的WLS域的映像。 幸运的是,samples \ 12c-domain文件夹中还有更多脚本。 因此,请检查Dockerfile和容器脚本中的所有脚本是否具有正确的UNIX行尾。 有时,如果您使用Windows,Git可能会使它们混乱。 并且,如果您已经在那里,请确保根据需要更改一些端口。 我必须将管理端口更改为8011(在Dockerfile和add-machine.py脚本中执行此操作。我们要做的另一件事是,以开发模式运行实例。这使我们可以仅复制Java EE应用程序放入./autodeployment文件夹并在启动时进行部署。您只需将以下行中的属性从prod更改为dev:

setOption('ServerStartMode','dev')

现在,您准备开始构建开发域映像:

docker build --force-rm=true --tag="vagrant.f8:5000/myfear/weblogic:12.1.3-dev"

并且,在再喝了几杯咖啡之后,我们准备检查此图像是否进入了我们的存储库(docker图像)

vagrant.f8:5000/myfear/weblogic      12.1.3-dev          77a3ec07d176        9 minutes ago       2.052 GB

在继续之前,请务必先尝试一下,看看是否出现了Weblogic实例。

docker run -it myfear/weblogic:12.1.3-dev

如果这行得通,那么您今天就可以构建第三张图片。 它将包含您的应用程序。

NetBeans和Fabric8 –将WebLogic带入希腊天堂

启动NetBeans,并使用您选择的Maven原型创建一个漂亮,简单且精简的Java EE 6项目。 向其添加所有fabric8和docker-maven插件依赖项,就像我之前在该系列第一篇博客文章中向您展示的那样。 让我们根据需要调整属性,然后仅将图像命名为:myfear / weblogic-test:latest。 最重要的是,您必须正确地将容器端口映射到Kubernetes服务:

<!-- Kubernetes Service Port // Mapped via the HARouter-->
<fabric8.service.port>9050</fabric8.service.port>

<!-- The exposed container port -->
<fabric8.service.containerPort>8011</fabric8.service.containerPort>

<!-- because, I'm working with the remote registry here, base it on the remote image -->
<docker.from>vagrant.f8:5000/myfear/weblogic:12.1.3-dev</docker.from>

<!-- Just cosmetics, changing the container label -->
<fabric8.label.container>weblogic</fabric8.label.container>

不要忘记使用Java EE 6作为依赖项,并将docker-maven插件中的用户和部署基础都更改为:

<user>oracle:oracle:oracle</user>
<basedir>/u01/oracle/weblogic/user_projects/domains/base_domain/autodeploy/</basedir>

是时候构建第三个也是最后一个docker映像了:

mvn clean install docker:build

如果正确完成,我们将使用Fabric8工具将所有内容部署到OpenShift:

mvn fabric8:json fabric8:apply

并且不要忘记将主机名映射添加到您的主机文件。

172.28.128.4 myfear-weblogic-test.vagrant.f8

等待几分钟(至少,我必须这样做;看起来我的笔记本电脑不够快)后,对http://myfear-weblogic-test.vagrant.f8/sample的请求将显示该应用程序。

wls-on-k8

进一步说明

这还不是完全可以生产的。 WLS知道托管服务器和节点管理器,并且有很多用于外部通信的端口需要打开。 基本上,这无非就是将小应用程序部署到AdminServer上。 关于如何调整域脚本以适合您的需求,有一些白皮书和进一步的想法。 由于明显的原因,我不想这样做。 因此,认为这是一个概念证明。

翻译自: https://www.javacodegeeks.com/2015/08/weblogic-server-12-1-3-on-kubernetes.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值