当前位置: 首页 > news >正文

网站建设与服务技能实训广州华茂建设工程有限公司 网站

网站建设与服务技能实训,广州华茂建设工程有限公司 网站,手机网站预览,深圳画册设计排版【squids.cn】 全网zui低价RDS#xff0c;免费的迁移工具DBMotion、数据库备份工具DBTwin、SQL开发工具等 在本系列的第三部分中#xff0c;我们了解了如何在 Minikube 中部署基于 Quarkus/Camel 的微服务#xff0c;这是最常用的 Kubernetes 本地实现之一。虽然这样的本地…【squids.cn】 全网zui低价RDS免费的迁移工具DBMotion、数据库备份工具DBTwin、SQL开发工具等 在本系列的第三部分中我们了解了如何在 Minikube 中部署基于 Quarkus/Camel 的微服务这是最常用的 Kubernetes 本地实现之一。虽然这样的本地 Kubernetes 实现对于测试目的非常实用但其单节点功能并不能满足实际生产环境的要求。因此为了在类似生产的环境中检查我们的微服务行为我们需要多节点 Kubernetes 实现。最常见的一种是 OpenShift。 什么是 OpenShift OpenShift 是一个基于 Kubernetes 的开源企业级容器应用程序开发、部署和管理平台。它由红帽开发作为 Kubernetes 集群之上的组件层既可以作为商业产品也可以作为免费平台或者既可以作为本地基础设施也可以作为云基础设施。下图描绘了这种架构。 与任何 Kubernetes 实施一样OpenShift 也有其复杂性将其安装为独立的本地平台并非易事。将其用作 AWS、Azure 或 GCP 等专用云上的托管平台是一种更实用的方法至少在开始时是这样但它需要一定的企业组织。 例如ROSARed Hat OpenShift Service on AWS是一种商业解决方案有助于快速创建和简单管理完整的 Kubernetes 基础设施但它并不是一个真正适合开发人员的环境允许其快速开发、部署和管理。测试云原生服务。 对于后面的用例红帽提供了 OpenShift Developers Sandbox这是一个开发环境无需任何繁重的安装或订阅过程即可立即访问 OpenShift开发人员甚至可以在开始实际项目之前就开始练习他们的技能和学习周期。这项完全免费的服务不需要任何信用卡只需要一个 Red Hat 帐户在共享的多租户 Kubernetes 集群中提供私有 OpenShift 环境该集群预先配置了一组开发人员工具例如 Java、Node .js、Python、Go、C#包括 Helm 图表目录、s2i 构建工具和 OpenShift Dev Spaces。 在这篇文章中我们将使用 OpenShift Developers Sandbox 来部署 Quarkus/Camel 微服务。 在 OpenShift 上部署 为了在 OpenShift 上部署Quarkus 应用程序需要包含 OpenShift 扩展。当然这可以使用 Qurakus CLI 来完成但考虑到我们的项目是一个多模块 Maven 项目一种更实用的方法是直接在主 POM 中包含以下依赖项 dependency groupIdio.quarkus/groupId artifactIdquarkus-openshift/artifactId/dependencydependency groupIdio.quarkus/groupId artifactIdquarkus-container-image-openshift/artifactId/dependency这样所有子模块都将继承这些依赖项。 OpenShift应该与普通的Kubernetes资源一起工作因此我们先前的方案在我们将微服务部署到Minikube上时也应该在这里适用。毕竟Minikube和OpenShift都是同一个事实上的标准Kubernetes的实现。 如果我们回顾本系列的第三部分我们基于Jib的构建和部署过程生成了普通的Kubernetes清单文件kubernetes.yaml以及Minikube的文件minikube.yaml。然后我们可以选择使用普通生成的Kubernetes资源还是更具体的Minikube资源我们更喜欢后者。尽管专为Minikube定制的清单文件只能在Minikube上部署但普通的Kubernetes文件应该在Minikube上以及任何其他Kubernetes实现如OpenShift上都能以相同的方式工作。 然而实际上情况稍微复杂一些据我所知我未能成功地将由Jib生成的普通Kubernetes清单部署到OpenShift上。我需要做的是重命名大多数其名称满足quarkus.kubernetes.模式的属性为quarkus.openshift.。此外某些普通的Kubernetes属性例如quarkus.kubernetes.ingress.expose对于OpenShift有一个完全不同的名称。在这种情况下是quarkus.openshift.route.expose。 但除了这些几乎是美观的改变外一切都与我们第三部分的前一个方案保持在同一个位置。现在为了在OpenShift Developers Sandbox上部署我们的微服务请按照以下步骤操作。 登录 OpenShift 开发者沙盒 以下是登录 OpenShift Developer Sandbox 所需的步骤 启动您首选的浏览器并访问 OpenShift Developers Sandbox站点 单击Login右上角的链接您需要已经注册了 OpenShift Developer Sandbox 单击Start your sandbox for free屏幕中央标记的红色按钮 在右上角展开您的用户名并单击Copy login command按钮 在标有标签的新对话框中Log in with ...单击DevSandbox链接 将显示一个新页面其中带有标记为 的链接Display Token。单击此链接。 复制并执行显示的oc命令例如 $ oc login --token... --serverhttps://api.sandbox-m3.1530.p1.openshiftapps.com:6443 从 GitHub 克隆项目 以下是克隆项目的 GitHub 存储库所需的步骤​​​​​​​ $ git clone https://github.com/nicolasduminil/aws-camelk.git$ cd aws-camelk$ git checkout openshift 创建 OpenShift Secret 为了连接到 AWS 资源例如 S3 存储桶和 SQS 队列我们需要提供 AWS 凭证。这些凭证是访问密钥 ID 和秘密访问密钥。有多种方法可以提供这些凭据但在这里我们选择使用 Kubernetes 密钥。以下是所需的步骤 首先将您的访问密钥 ID 和秘密访问密钥编码为 Base64如下所示​​​​​​​ $ echo -n your AWS access key ID | base64$ echo -n your AWS secret access key | base64 编辑文件aws-secret.yaml并修改以下行以便替换...为 Base64 编码值​​​​​​​ AWS_ACCESS_KEY_ID: ...AWS_SECRET_ACCESS_KEY: ... 创建包含 AWS 访问密钥 ID 和秘密访问密钥的 OpenShift 密钥 $ kubectl apply -f aws-secret.yaml 启动微服务 为了启动微服务请运行以下脚本 $ ./start-ms.sh 该脚本与我们之前第三部分中的脚本相同​​​​​​​ #!/bin/sh./delete-all-buckets.sh./create-queue.shsleep 10mvn -DskipTests -Dquarkus.kubernetes.deploytrue clean installsleep 3./copy-xml-file.sh 此处用于触发 Camel 文件轮询器的 copy-xml-file.sh 脚本已稍作修改 #!/bin/sh aws_camel_file_pod$(oc get pods | grep aws-camel-file | grep -wv -e build -e deploy | awk {print $1}) cat aws-camelk-model/src/main/resources/xml/money-transfers.xml | oc exec -i $aws_camel_file_pod -- sh -c cat /tmp/input/money-transfers.xml 在这里我们kubectl用命令替换了oc命令。此外鉴于 OpenShift 具有不仅为微服务而且为构建和部署命令创建 pod 的特殊性我们需要在正在运行的 pod 列表中过滤掉出现字符串 和 的buildpod deploy。 运行此脚本可能需要一些时间。完成后确保所有必需的 OpenShift 控制器正在运行 $ oc get is NAME IMAGE REPOSITORY TAGS UPDATED aws-camel-file default-route-openshift-image-registry.apps.sandbox-m3.1530.p1.openshiftapps.com/nicolasduminil-dev/aws-camel-file 1.0.0-SNAPSHOT 17 minutes ago aws-camel-jaxrs default-route-openshift-image-registry.apps.sandbox-m3.1530.p1.openshiftapps.com/nicolasduminil-dev/aws-camel-jaxrs 1.0.0-SNAPSHOT 9 minutes ago aws-camel-s3 default-route-openshift-image-registry.apps.sandbox-m3.1530.p1.openshiftapps.com/nicolasduminil-dev/aws-camel-s3 1.0.0-SNAPSHOT 16 minutes ago aws-camel-sqs default-route-openshift-image-registry.apps.sandbox-m3.1530.p1.openshiftapps.com/nicolasduminil-dev/aws-camel-sqs 1.0.0-SNAPSHOT 13 minutes ago openjdk-11 default-route-openshift-image-registry.apps.sandbox-m3.1530.p1.openshiftapps.com/nicolasduminil-dev/openjdk-11 1.10,1.10-1,1.10-1-source,1.10-1.1634738701 46 more... 18 minutes ago $ oc get pods NAME READY STATUS RESTARTS AGE aws-camel-file-1-build 0/1 Completed 0 19m aws-camel-file-1-d72w5 1/1 Running 0 18m aws-camel-file-1-deploy 0/1 Completed 0 18m aws-camel-jaxrs-1-build 0/1 Completed 0 14m aws-camel-jaxrs-1-deploy 0/1 Completed 0 10m aws-camel-jaxrs-1-pkf6n 1/1 Running 0 10m aws-camel-s3-1-76sqz 1/1 Running 0 17m aws-camel-s3-1-build 0/1 Completed 0 18m aws-camel-s3-1-deploy 0/1 Completed 0 17m aws-camel-sqs-1-build 0/1 Completed 0 17m aws-camel-sqs-1-deploy 0/1 Completed 0 14m aws-camel-sqs-1-jlgkp 1/1 Running 0 14m oc get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE aws-camel-jaxrs ClusterIP 172.30.192.74 none 80/TCP 11m modelmesh-serving ClusterIP None none 8033/TCP,8008/TCP,8443/TCP,2112/TCP 18h 如上面的清单所示所有必需的图像流都已创建并且所有 Pod 都已完成或正在运行。已完成的 Pod 是与构建和部署操作相关的 Pod。正在运行的服务与微服务相关联。 只有一项服务正在运行aws-camel-jaxrs。该服务可以aws-camel-jaxrs通过公开路由来与运行微服务的 Pod 进行通信。这是自动完成的对财产有效quarkus.openshift.route.exposetrue。aws-camel-sqs事实上微服务需要与之通信aws-camel-sqs因此需要知道通往它的路径。要获取该路由您可以按照以下步骤操作 $ oc get routes NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD aws-camel-jaxrs aws-camel-jaxrs-nicolasduminil-dev.apps.sandbox-m3.1530.p1.openshiftapps.com aws-camel-jaxrs http None 现在打开application.properties与aws-camel-sqs微服务关联的文件并修改属性rest-uri如下所示 rest-uriaws-camel-jaxrs-nicolasduminil-dev.apps.sandbox-m3.1530.p1.openshiftapps.com/xfer 在这里您必须将命名空间替换nicolasduminil-dev为对您的情况有意义的值。现在您需要停止微服务并再次启动它们​​​​​​​ $ ./kill-ms.sh...$ ./start-ms.sh... 您的微服务现在应该按预期运行您可以使用以下命令检查日志文件 $ oc logs aws-camel-jaxrs-1-pkf6n 正如您所看到的为了获得服务的路由aws-camel-jaxrs我们需要启动、停止和再次启动我们的微服务。这个解决方案远非优雅但我没有找到任何其他解决方案我依靠建议的读者来帮助我改进它。可能可以使用 OpenShift Java 客户端在 Java 代码中执行与命令oc get routes执行的操作相同的操作但我没有找到具体方法而且文档也不太明确。 我想对无法在这里提供完整的解决方案表示歉意但尽管如此还是享受它吧 作者Nicolas Duminil 更多内容请关注公号【云原生数据库】 squids.cn云数据库RDS迁移工具DBMotion云备份DBTwin等数据库生态工具。
http://www.pierceye.com/news/301737/

相关文章:

  • 四川建设行业网站有哪些最新体育新闻头条
  • 湘潭网站优化公司wordpress会员积分邀请
  • 腾讯网静态网站建设西宁网站建设公司排行
  • pc网站优势买完网站怎么建设
  • 网站设计与制作用什么软件外包加工网官网下载安装
  • 商城网站设计企业建一个o2o网站
  • 营销型网站创建php源码资源网
  • 优秀设计师网站在上海做兼职去哪个网站搜索
  • 教育行业网站建设房屋3d立体设计软件
  • 海珠免费网站建设php网站系统
  • 建设银行网站信息补充施工企业奖惩制度范本
  • 做拍卖网站多少钱办公室装修铺哪种地板
  • 国外网站有哪些平台网站系统建设需要什么资质
  • 做网站 就上凡科网做盗版网站会坐牢吗
  • 百事通网做网站做网站公众号多少钱
  • 影视作品网站开发与设计php做网站有哪些好处
  • 寻模板网站源码《基层建设》官方网站
  • 做网站龙岗深圳市网络seo推广平台
  • 公司资质查询官方网站网站建设开题报告
  • 桐城网站开发网站制作器手机版下载
  • 校友网站 建设网站开发都是使用框架吗
  • 手机网站字体大小规范优秀网站
  • 用动物做网站名称建设个人网站的策划书
  • 深圳网站开发公司宝网建设网站需要哪些素材
  • 网页设计需要学什么学历南宁seo服务公司
  • 网站开发学习未来做那个网站能致富
  • 建设厅科技中心网站免费网站怎么做出来的
  • 做一网站东莞网站建设
  • 电商网站建设需求网站开发培训排名
  • 厦门建设局网站城市建设郑州百度分公司