网站如何制作浙江,珠海企业网站建设报价,国内网站是cn还是com,茂名公司网站设计团队openshift 部署我昨天用WildFly Swarm在博客上发布了有关简单JAX-RS微服务的博客。 您学习了如何使用Maven构建所谓的“胖子”#xff0c;还使用Maven Docker插件对我们的微服务进行了Docker化并在Docker Machine上本地运行。 这是在本地测试事物的好方法。 到目前为止#x… openshift 部署 我昨天用WildFly Swarm在博客上发布了有关简单JAX-RS微服务的博客。 您学习了如何使用Maven构建所谓的“胖子”还使用Maven Docker插件对我们的微服务进行了Docker化并在Docker Machine上本地运行。 这是在本地测试事物的好方法。 到目前为止缺少的是将其投入生产。 让我们看一下在OpenShift Origin上运行昨天的示例所需的步骤。 企业Java开发人员为什么要关心 但首先让我们简要地探讨为什么Enterprise Java开发人员甚至应该关心所有这些。 关于最近的炒作和嗡嗡声我有些疑惑。 可以肯定的是它们是一个有趣的运动场您可以花费数小时下载容器图像并在笔记本电脑上运行它们。 但是到目前为止将它们投入生产仍然是一个挑战。 Nigel的博客文章很好关于Docker中不推荐使用的功能 。 它还有另一个宝石一段叫做“企业影响力”。 主要报价是 “我敢肯定这类事情总是在很酷的时髦公司[...]中完成的但是绝对不会在生锈的老公司[...]中完成。” 奈杰尔·波顿 我绝对可以支持。 企业开发人员架构师和项目经理正在采用慢得多且保守的方法来采用所有这些技术。 他们正在寻找成功管理基础架构和项目的方法。 所有这些技术都将进入我们的日常工作中但它们将以更易于管理的方式出现。 因此我们只是在做作业对所有这些进行自我教育并评估可以帮助我们的解决方案。 但是足够的一般思想 让我们开始部署和扩展Java EE应用程序。 先决条件 安装并运行OpenShift Origin并按照以下步骤在Docker容器中构建WildFly Swarm JAX-RS微服务 。 因为这是示例所以我将进一步部署和扩展。 注意我同时使用OpenShift项目中的all-in-vm和Fabric8项目提供的Vagrant图像它们可以互换。它们的工作原理几乎相同并且都依赖于OpenShift Origin。 .f8例如代码或示例之一中的https//vagrant.f88443则可以使用localhost或其他可互换的主机映射。 什么是OpenShift起源 OpenShift Origin是Red Hat分布式应用程序系统OpenShift的上游开源版本。 我们启动了这个项目以提供一个平台开发团队可以在该平台上构建和管理基于Docker和Kubernetes的云本机应用程序。 您可以在Github上找到源代码 我们知道您有改善OpenShift Origin的好主意。 因此请袖手旁观 加入我们的社区 。 掌握所有集成技术有很多知识。 但是社区正在努力使这对我们企业Java开发人员尽可能地易于理解和管理。 为了给您OpenShift的简要概述这是所有工作原理的简单示意图 如果您一直在关注有关Docker和Kubernetes的最新消息那么您会在这里看到很多常见的部分。 请求通过客户端进入并在路由层结束。 它被分发到服务并命中了一个容器该容器在容器中运行我们的Docker映像之一。 吊舱由复制控制器控制。 当然还有很多事情要做但这应该是您现在需要了解的全部知识以便对整个事情有一个初步的了解。 另一个更详细的概述为您提供了我们今天将要使用的零件的更精确的概念。 尤其是现在集成的Docker注册表映像流部署配置和路由到我们的服务尤其重要。 基础知识–管理界面和客户端工具 设置无用信息框并将其启动后您可以通过浏览到https// localhost8443来访问基于Web的管理。 多合一虚拟机没有配置安全性。 这意味着将使用“全部允许”身份提供者。 您可以使用任何非空的用户名和密码登录。 “管理员”用户是具有所有权限的管理用户。 使用“ admin / admin”登录可让您充分使用Origin。 基于Web的管理非常适合查看日志文件和整体情况。 它尚未功能齐全并且不允许您进行调整或更改。 首先您需要使用命令行工具“ oc”。 与网络管理类似您还必须登录到OpenShift oc login https://localhost:8443 还提示您输入用户名和密码admin / admin并显示项目列表 Authentication required for https://vagrant.f8:8443 (openshift)
Username: admin
Password:
Login successful.Using project default.
You have access to the following projects and can switch between them with oc project projectname:* default (current)* openshift* openshift-infra 现在您可以在OpenShift中进行一些管理了。 公开内部Docker注册表 如果要在OpenShift中运行dockerized应用程序而docker-hub中不提供该应用程序则需要将其推送到OpenShift Docker Registry。 默认情况下它不在外部公开因此首先要做的是通过Route在OpenShift Docker Registry中公开该构建。 oc create -f registry-route.json json文件包含路由的定义并签入我的Github存储库。 确保根据需要调整第8行中的主机名 。 为了使该示例正常工作我在Windows上的主机文件中添加了以下映射 172.28.128.4 registry.vagrant.f8 成功创建路由后您要做的就是相应地设置环境在关注我的介绍性博客文章时您已经完成了此操作。这仅是提醒 set DOCKER_HOSTtcp://vagrant.f8:2375创建一个项目和一个用户 让我们为示例创建一个新项目。 由于命名空间的原因我们将在用户名和图像名后精确命名项目在本示例中为“ myfear”。 oc new-project myfear --descriptionWildFly Swarm Docker Image on OpenShift v3 --display-nameWildFly Swarm Project 描述和显示名称是可选的但可以使其在Web界面中看起来更好。 让我们通过简单地以以下身份登录来创建用户“ myfear” c login https://vagrant.f8:8443 -u myfear调整示例 我们需要从昨天的示例中更改pom.xml的某些部分。 首先我们需要告诉Docker Maven插件它应该使用运行在Registry.vagrant.f880的私有注册表。 想知道为什么不是5000端口 因为我们通过OpenShift公开了服务而HAProxy通过端口80公开了该服务。取消注释pom.xml中的两行 docker.hosttcp://vagrant.f8:2375/docker.host
docker.registryregistry.vagrant.f8:80/docker.registry 并通过oc客户端工具获取用户myfear的登录令牌 $oc whoami -t 这将输出如下内容 ykHRzUGGu-FAo_ZS5RJFcndjYw0ry3bskMgFjqK1SZk 现在在pom的authConfig元素中更新令牌。 基本上就是这样。 建立并推动形象 该图像已经在我之前的博客文章中构建但是让我们在这里再次做一次 mvn clean install docker:build 现在将映像推送到我们的OpenShift Docker Registry mvn docker:push 它将输出将映像推送到registry.vagrant.f880 / myfear / swarm-sample的过程。 在OpenShift上运行Docker映像 现在我们仅使用常规方法在OpenShift上启动新的Docker映像 oc new-app --docker-imagemyfear/swarm-sample:latest 观察发生了什么OpenShift实际上在幕后创建了一些资源以便处理部署和运行此Docker映像。 首先它创建了一个服务该服务标识它将代理和负载平衡的一组Pod。 服务分配IP地址和端口对访问时将重定向到适当的后端。您关心服务的原因是它们基本上充当Pod与需要使用内部运行Pod的任何事物之间的代理/负载平衡器。 OpenShift环境。 使用describe命令获取有关从我们的映像创建的OpenShift的完整描述 oc describe service swarm-sample 哪个输出 Name: swarm-sample
Namespace: myfear
Labels: appswarm-sample
Selector: appswarm-sample,deploymentconfigswarm-sample
Type: ClusterIP
IP: 172.30.25.44
Port: 8080-tcp 8080/TCP
Endpoints: 172.17.0.5:8080
Session Affinity: None
No events. 到目前为止我们缺少的一件事是通过路线的外部映射。 您还记得我们为Docker Registry做的事情吗 这是到目前为止的下一步也是最后一步。 oc expose service swarm-sample --hostnamewildfly-swarm.vagrant.f8 您可能已经猜到了我们还需要在主机文件中映射主机名 172.28.128.4 wildfly-swarm.vagrant.f8 我们完成了。 为什么我没有使用json文件创建路由 因为我想向您展示只要图像为端口使用正确的EXPOSE定义它就会更容易因此ocpose命令可以完成此工作而不必弄乱json。 这是相同的结果。 浏览至http//wildfly-swarm.vagrant.f8/rs/customer并查看输出 {text:WildFly Swarm Docker Application on OpenShift at http://wildfly-swarm.vagrant.f8/rs/ - Hostname: swarm-sample-1-7mmd7} 主机名是容器容器在其上运行。 翻译自: https://www.javacodegeeks.com/2015/10/deploying-java-ee-microservices-on-openshift.htmlopenshift 部署