openshift使用

OpenShift是Red Hat的开源PaaS平台。 OpenShift v3 (将于今年发布)将提供使用Docker和Kubernetes运行微服务的整体体验。 以经典的Red Hat方式,所有工作都在OpenShift Origin的开源中完成。 这也将推动OpenShift Online和OpenShift Enterprise的下一个主要版本。

OpenShift v3使用了一个新的平台堆栈,该平台使用了Red Hat贡献的大量社区项目,例如Fedora,Centos,Docker,Project Atomic,Kubernetes和OpenStack。 结合了Docker,Kubernetes,Atomic和更多内容的OpenShift v3平台详细解释了该平台堆栈。

该技术提示将说明如何开始使用OpenShift v3,让我们开始吧!

OpenShift v3入门

可以从GitHub的Origin下载用于OpenShift v3的预构建二进制文件。 但是,最简单的入门方法是将OpenShift Origin作为Docker容器运行。

OpenShift Application Lifecycle提供了从头开始运行示例应用程序所需的完整详细信息。 该博客将使用这些步骤,并使它们适应于在Mac上使用boot2docker VM运行。 在此过程中,我们还将在WildFly上部署Java EE 7应用程序,该应用程序将访问单独MySQL容器上的数据库。

这是我们的部署图:

  • WildFly和MySQL在不同的Pod上运行。
  • 它们每个都包装在Replication Controller中,以简化扩展。
  • 每个复制控制器均作为服务发布。
  • WildFly与MySQL服务对话,而不是直接与pod对话。 这一点很重要,因为Pod和分配给它们的IP地址都是短暂的。

让我们开始吧!

配置Docker守护程序

  1. 在主机上配置Docker守护程序以信任将要启动的Docker注册表服务。 该注册表将用于推送映像以进行构建/测试/部署。

    • 以以下方式登录到boot2docker VM:

      boot2docker ssh
    • 编辑档案
      sudo vi /var/lib/boot2docker/profile

      这将是一个空文件。

    • 添加以下名称/值对:
      EXTRA_ARGS="--insecure-registry 172.30.17.0/24"

      保存文件,然后退出编辑器。

    这将指示Docker守护程序信任172.30.17.0/24子网中的任何Docker注册表。

查看OpenShift v3和Java EE 7示例

  1. 下载并安装Go并设置GOPATH和PATH环境变量 。 签出OpenShift原始目录:

    openshift> git clone https://github.com/openshift/origin.git
    Cloning into 'origin'...
    remote: Counting objects: 21451, done.
    remote: Compressing objects: 100% (76/76), done.
    remote: Total 21451 (delta 26), reused 15 (delta 1)
    Receiving objects: 100% (21451/21451), 35.11 MiB | 1.24 MiB/s, done.
    Resolving deltas: 100% (11392/11392), done.
    Checking connectivity... done.

    请注意其检出的目录。 在这种情况下,它的〜 /workspaces/openshift

    构建工作空间:

    make release
    origin> make release
    rm -rf _output Godeps/_workspace/pkg
    hack/build-release.sh
    Unable to find image 'openshift/origin-release' locally
    Pulling repository openshift/origin-release
    c59f040a4054: Download complete
    511136ea3c5a: Download complete
    5b12ef8fd570: Download complete
    dade6cb4530a: Download complete
    bd195712b86c: Download complete
    4aae29c1c846: Download complete
    d8738da3ed4c: Download complete
    7f7491063665: Download complete
    b5cfa9eebdb5: Download complete
    2f6297477756: Download complete
    dc98bd93df2f: Download complete
    1be2a7550a3d: Download complete
    42fd088f8c55: Download complete
    b6f6ad4012df: Download complete
    Status: Downloaded newer image for openshift/origin-release:latest
  2. 检出已转换为Kubernetes应用程序的javaee7-hol工作区 :
    origin> git clone https://github.com/bparees/javaee7-hol
    Cloning into 'javaee7-hol'...
    remote: Counting objects: 1159, done.
    remote: Compressing objects: 100% (49/49), done.
    remote: Total 1159 (delta 35), reused 37 (delta 21)
    Receiving objects: 100% (1159/1159), 20.35 MiB | 1.78 MiB/s, done.
    Resolving deltas: 100% (605/605), done.
    Checking connectivity... done.

    这也可以在~/workspaces/openshift目录中完成。

启动OpenShift v3容器

  1. 将OpenShift Origin作为Docker容器启动:

    ~> docker run -d --name "openshift-origin" --net=host --privileged \-v /var/run/docker.sock:/var/run/docker.sock  \-v /Users/arungupta/workspaces/openshift:/workspaces/openshift \-v /usr/local/bin/docker:/usr/bin/docker \openshift/origin start --public-master=$(boot2docker ip)The VM's Host only interface IP address is: 0ae85091e7ad7e85697575369f008273a6673d112b49860f5557a61d9e82d908

    注意~/workspaces/openshift目录在容器中作为/workspaces/openshift卷挂载。 还安装了一些其他卷。

    检查容器是否正在运行:

    ~> docker ps
    CONTAINER ID        IMAGE                    COMMAND                CREATED             STATUS              PORTS               NAMES
    0ae85091e7ad        openshift/origin:beta1   "/usr/bin/openshift    2 minutes ago       Up 2 minutes                            openshift-origin
  2. 以以下方式登录到容器:
    openshift> docker exec -it `docker ps | grep origin:beta1 | awk '{ print $1 }'` bash
    [root@boot2docker openshift]#
  3. 通过提供以下命令在容器中安装Docker注册表:
    export CERT_DIR=/var/lib/openshift/openshift.local.certificates/openshift-client && \
    export KUBECONFIG=/var/lib/openshift/openshift.local.certificates/admin/.kubeconfig && \
    cd /workspaces/openshift/origin && hack/install-registry.sh
  4. 通过获取Pod列表来确认注册表正在运行:
    [root@boot2docker origin]# osc get pods
    POD                       IP                  CONTAINER(S)         IMAGE(S)                    HOST                    LABELS                                                                                                             STATUS
    docker-registry-1-gfkbz   172.17.0.14         registry-container   openshift/docker-registry   boot2docker/127.0.0.1   deployment=docker-registry-1,deploymentconfig=docker-registry,name=registrypod,template=docker-registry-template   Running

    osc是OpenShift Client CLI ,可用于创建和管理OpenShift项目。 一些kubectl命令也可以使用此脚本。

  5. 确认注册表服务正在运行。 请注意,实际IP地址可能会有所不同:
    [root@boot2docker origin]# osc get services
    NAME                LABELS                                    SELECTOR            IP                  PORT
    docker-registry     template=docker-registry-template         name=registrypod    172.30.17.142       5001
    kubernetes          component=apiserver,provider=kubernetes   <none>              172.30.17.2         443
    kubernetes-ro       component=apiserver,provider=kubernetes   <none>              172.30.17.1         80
  6. 确认注册表服务可访问:
    curl `osc get services docker-registry -o template --template="{{ .portalIP}}:{{ .port }}"`

    并寻找输出:

    "docker-registry server (dev) (v0.9.0)"

访问OpenShift v3 Web控制台

  1. OpenShift Origin服务器现在已启动并正在运行。 使用boot2docker ip查找主机的IP地址,然后打开http:// <boot2docker主机的IP地址>:8444以在浏览器中查看OpenShift Web控制台。例如,可从https://192.168.59.103:8444访问该控制台/在这台机器上。

    您需要让浏览器在https://<host>:8444接受证书,然后控制台才能查询OpenShift API。 当然,使用合法证书就不需要这样做。

  2. 出现OpenShift Origin登录屏幕。 输入用户名/密码作为admin / admin:

    然后点击“登录”按钮。 默认的Web控制台如下所示:

创建OpenShift v3项目

  1. 在OpenShift v3容器中使用github.com/openshift/origin/blob/master/examples/sample-app/project.json中的project.json并创建一个测试项目,如下所示:

    [root@boot2docker origin]# osc create -f /workspaces/openshift/origin/examples/sample-app/project.json
    test

    现在刷新Web控制台将显示:

    单击“ OpenShift 3 Sample”将显示一个空的项目描述:

  2. 请求创建应用程序模板:
    [root@boot2docker openshift]# cd javaee7-hol/
    [root@boot2docker javaee7-hol]# osc process -n test -f application-template-jeebuild.json | osc create -n test -f -
    frontend
    origin-jee-sample
    wildfly-8-centos
    jee-sample-build
    frontend
    mysql
    database
  3. Web控制台自动刷新并显示:

    正在运行的服务列表可以看成是:

建立项目

  1. 触发项目的初始构建:

    [root@boot2docker javaee7-hol]# osc start-build -n test jee-sample-build
    cee73fbc-b32d-11e4-a0f2-5282784576db
  2. 监视构建并等待状态变为“完成”(这可能需要几分钟):
    [root@boot2docker javaee7-hol]#  osc get -n test builds
    NAME                                   TYPE                STATUS              POD
    cee73fbc-b32d-11e4-a0f2-5282784576db   STI                 Running             build-cee73fbc-b32d-11e4-a0f2-5282784576db

    您可以添加–watch标志以等待更新,直到构建完成:

    [root@boot2docker javaee7-hol]#  osc get -n test builds --watch
    NAME                                   TYPE                STATUS              POD
    cee73fbc-b32d-11e4-a0f2-5282784576db   STI                 Running             build-cee73fbc-b32d-11e4-a0f2-5282784576db
    NAME                                   TYPE                STATUS              POD
    cee73fbc-b32d-11e4-a0f2-5282784576db   STI                 Complete            build-cee73fbc-b32d-11e4-a0f2-5282784576db

    等待STATUS栏显示Complete 。 设置所有组件(WIldFly,MySQL,Java EE 7应用程序)将花费几分钟。 实际上,将创建它们的新Docker映像并将其推送到之前启动的本地注册表中。

    状态更改为Complete后, Ctrl+C停止监视构建。

  3. 构建的完整日志可以看成是:
    [root@boot2docker javaee7-hol]# osc build-logs -n test cee73fbc-b32d-11e4-a0f2-5282784576db
    2015-02-13T03:10:07.065718606Z Cloning into '/tmp/sti552730161/upload/src'...
    2015-02-13T03:11:03.184576532Z I0213 03:11:03.184326       1 build.go:160] Successfully built 172.30.17.142:5001/test/origin-jee-sample
    2015-02-13T03:11:07.261489310Z The push refers to a repository [172.30.17.142:5001/test/origin-jee-sample] (len: 1)
    2015-02-13T03:11:07.261489310Z Sending image list
    2015-02-13T03:11:07.275256699Z Pushing repository 172.30.17.142:5001/test/origin-jee-sample (1 tags)
    2015-02-13T03:11:07.307836081Z Pushing
    Buffering to disk07.314345045Z Buffering to disk 1.024 kB
    2015-02-13T03:11:07.315452728Z Buffering to disk
    Pushing-13T03:11:07.323973430Z Pushing [=========================>                         ]    512 B/1.024 kB 0. . .Pushing-13T03:13:05.932725921Z Pushing [================================================>  ]  6.56 MB/6.704 MB 0
    Pushing-13T03:13:05.942989165Z Pushing [=================================================> ] 6.635 MB/6.704 MB 0
    Pushing-13T03:13:05.943025109Z Pushing [=================================================> ] 6.702 MB/6.704 MB 0
    Pushing-13T03:13:05.947665528Z Pushing [==================================================>] 6.704 MB/6.704 MB
    2015-02-13T03:13:05.953476634Z Image successfully pushed
    2015-02-13T03:13:05.953476634Z Pushing tag for rev [b0a7868377c1] on {http://172.30.17.142:5001/v1/repositories/test/origin-jee-sample/tags/latest}
  4. 检查要启动的应用程序容器:
    [root@boot2docker javaee7-hol]# osc get -n test pods
    POD                                          IP                  CONTAINER(S)        IMAGE(S)                                                                                                     HOST                    LABELS                                                                              STATUS
    build-cee73fbc-b32d-11e4-a0f2-5282784576db   172.17.0.17         sti-build           openshift/origin-sti-builder:v0.3                                                                            boot2docker/127.0.0.1   <none>                                                                              Succeeded
    database-1-axe6d                             172.17.0.16         jee-database        mysql                                                                                                        boot2docker/127.0.0.1   deployment=database-1,deploymentconfig=database,name=database,template=jee-sample   Running
    frontend-1-pkcia                             172.17.0.20         jee-sample          172.30.17.142:5001/test/origin-jee-sample:b0a7868377c10a50b40019be70e22d040b9a2bb2d87fa3932b700494e50a4de6   boot2docker/127.0.0.1   deployment=frontend-1,deploymentconfig=frontend,name=frontend,template=jee-sample   Running

    请注意,“前端”和“数据库”窗格现在正在运行。

  5. 确定“前端”服务的IP:
    [root@boot2docker javaee7-hol]# osc get -n test services
    NAME                LABELS                SELECTOR            IP                  PORT
    frontend            template=jee-sample   name=frontend       172.30.17.115       8080
    mysql               template=jee-sample   name=database       172.30.17.75        3306
  6. 通过http:// <“前端”的IP地址>:8080 / movieplex7-1.0-SNAPSHOT可以访问应用程序。 请注意,IP地址可能(很可能会)有所不同。 在这种情况下,它将是http://172.30.17.115:8080/moviexplex7-1.0-SNAPSHOT。由于将OpenShift v3用作Docker容器时,在Mac上配置防火墙需要进行一些进一步的调试才能配置该应用程序。 在弄清楚这一点之前,您可以在boot2docker VM中执行docker docker ps以查看所有容器的列表:
    origin> docker ps
    CONTAINER ID        IMAGE                                                                                                       COMMAND                CREATED             STATUS              PORTS               NAMES
    c776cabb72f8        172.30.17.17:5001/test/origin-jee-sample:91d1b5a5ed58e1642aafbd652eba0b7eae3a0ac08c17729d205ae88204f64449   "/tmp/scripts/run"     2 hours ago         Up 2 hours                              k8s_jee-sample.7af25557_frontend-2-9ciae.test.api_12a0d77e-b3b5-11e4-81f6-5282784576db_53f91f55
    e7f87112c473        openshift/origin-pod:beta1                                                                                  "/pod"                 2 hours ago         Up 2 hours                              k8s_POD.9cbfdefa_frontend-2-9ciae.test.api_12a0d77e-b3b5-11e4-81f6-5282784576db_64263b61
    7e7579db5f82        openshift/origin-pod:beta1                                                                                  "/pod"                 2 hours ago         Up 2 hours                              k8s_POD.123cbdd6_build-e075047d-b3b4-11e4-81f6-5282784576db.test.api_e07bcdb2-b3b4-11e4-81f6-5282784576db_376c0e63
    74082d7791ec        openshift/origin-pod:beta1                                                                                  "/pod"                 2 hours ago         Up 2 hours                              k8s_POD.123cbdd6_build-76364bb6-b3b2-11e4-81f6-5282784576db.test.api_7639e3a5-b3b2-11e4-81f6-5282784576db_f653c7fd
    3e42dacb0da7        mysql:latest                                                                                                "/entrypoint.sh mysq   3 hours ago         Up 3 hours                              k8s_jee-database.f12628ae_database-1-bqg8v.test.api_56093bac-b3b2-11e4-81f6-5282784576db_193dddf7
    cb551c8cf7bf        openshift/origin-pod:beta1                                                                                  "/pod"                 3 hours ago         Up 3 hours                              k8s_POD.95f2def6_database-1-bqg8v.test.api_56093bac-b3b2-11e4-81f6-5282784576db_295fc320
    e8719152df42        openshift/docker-registry:latest                                                                            "\"sh -c 'echo \"$OP   3 hours ago         Up 3 hours                              k8s_registry-container.4e338487_docker-registry-1-bt49s.default.api_177a691c-b3b0-11e4-81f6-5282784576db_a6f4f83b
    d3ecc5841c3b        openshift/origin-pod:beta1                                                                                  "/pod"                 3 hours ago         Up 3 hours                              k8s_POD.8a29deef_docker-registry-1-bt49s.default.api_177a691c-b3b0-11e4-81f6-5282784576db_ba53d62b
    a506222fae91        openshift/origin:beta1                                                                                      "/usr/bin/openshift    3 hours ago         Up 3 hours                              openshift-origin

    然后以以下方式登录到与前端关联的容器:

    docker exec -it `docker ps | grep origin-jee-sample | awk '{ print $1 }'` bash

    这将登录到Docker容器,您可以通过提供以下命令来检查应用程序是否已成功部署:

    bash-4.2$ curl http://localhost:8080/movieplex7-1.0-SNAPSHOT/

    这将从应用程序中打印index.html页面,该应用程序的顶部和顶部都有许可证。

    现在,一旦防火墙问题解决,该页面也将在主机Mac上也可以访问。

让我们总结一下:

  • 克隆了OpenShift Origin和Java EE 7示例存储库
  • 将OpenShift v3作为Docker容器启动
  • 加载了OpenShift v3 Web控制台
  • 创建一个OpenShift v3项目
  • 加载的Java EE 7应用程序模板
  • 触发了构建,从而部署了应用程序
  • 如果遇到问题,这里有一些故障排除提示 。

请享用!

翻译自: https://www.javacodegeeks.com/2015/02/openshift-v3-getting-started-java-ee-7-using-wildfly-mysql.html

openshift使用

openshift使用_OpenShift v3:使用WildFly和MySQL的Java EE 7入门相关推荐

  1. OpenShift v3:使用WildFly和MySQL的Java EE 7入门

    OpenShift是Red Hat的开源PaaS平台. OpenShift v3 (将于今年发布)将提供使用Docker和Kubernetes运行微服务的整体体验. 以经典的Red Hat方式,所有工 ...

  2. WildFly Swarm:使用Java EE构建微服务

    "完美无缺,不是在没有其他可添加的东西时,而是在没有其他东西要带走时实现的" Antoine de Saint-Exupery 法国作家安托万·德·圣艾修伯里 ( Antoine ...

  3. docker 部署java_使用Docker堆栈部署的微服务-WildFly,Java EE和Couchbase

    docker 部署java 关于微服务的资料很多,只是用谷歌搜索就可以了 ! 几年前,我在比利时的Devoxx上发表了有关将单片重构为微服务的演讲,它获得了很好的评价: 该博客将展示Docker如何简 ...

  4. 使用Docker堆栈部署的微服务-WildFly,Java EE和Couchbase

    关于微服务的资料很多,只是用谷歌搜索就可以了 ! 几年前,我在比利时的Devoxx上发表了有关将单片重构为微服务的演讲,它得到了很好的评价: 该博客将展示Docker如何简化微服务的创建和关闭. 该博 ...

  5. WildFly和Docker上的Java EE 7动手实验室

    Java EE 7动手实验室已在全球范围内交付,它是一个非常标准的应用程序,显示了典型Java EE 7应用程序的设计模式和反模式. 它显示了如何在接近现实的应用程序中使用以下技术: WebSocke ...

  6. jenkins java_具有WildFly,Arquillian,Jenkins和OpenShift的Java EE 7部署管道

    jenkins java 技术提示#54展示了如何Arquillianate(Arquillianize?)一个现有的Java EE项目并在WildFly在已知主机和端口上运行的远程模式下运行这些测试 ...

  7. openshift 部署_OpenShift Express:部署Java EE应用程序(支持AS7)

    openshift 部署 在过去的几年中,我越来越多地听说过"云"服务. 最初,我并不是很想尝试一下. 但是几个月后(一年?),我决定看看这是怎么回事. 我从事Java EE开发已 ...

  8. 在NetBeans,Eclipse,IntelliJ,OpenShift和Maven上使用WildFly 9

    WildFly 9 CR1是最近发布的. 包括许多很酷的功能: 智能负载均衡 HTTP / 2和SPDY支持 新的离线CLI模式 正常关闭单节点 新的仅Servlet发行版 而且这超出了通常的Java ...

  9. 具有WildFly,Arquillian,Jenkins和OpenShift的Java EE 7部署管道

    技术提示#54展示了如何Arquillianate(Arquillianize?)一个现有的Java EE项目并在WildFly在已知主机和端口上运行的远程模式下运行这些测试. 技术提示#55展示了当 ...

最新文章

  1. 利用「接口」做产品时我们该如何思考?
  2. vue-cli搭建的项目打包之后报“资源路径错误资源文件找不到“
  3. MapReduce 2 中一些基础数据类型
  4. Neo4j:收集多个值
  5. IIFE(立即执行函数表达式)
  6. python中split啥意思_python中split的用法详解_后端开发
  7. 每个前端开发者都要理解页面的渲染
  8. 初识编码 gbk unicode utf-8
  9. LeetCode解题思路—双指针模式
  10. xxl-job使用笔记
  11. layDate——初步使用
  12. 从键盘输入3个整数,输出其中最大数
  13. Spring Batch系列总括(转载)
  14. plt文件怎么转化为txt文件
  15. 最佳和最快的游戏 DNS 服务器
  16. excel表格如何转换成word表格_Excel表格转换为Word表格?99%的人想不到这样做最简单!...
  17. PIE Engine系列2 数据的上传、调用及下载(附源码超详细)
  18. TI-RTOS---Semaphores
  19. 包含tsx的react项目创建
  20. 小结一篇-(秀我工作一年)

热门文章

  1. P2839-[国家集训队]middle【主席树,二分】
  2. jzoj3236-矮人排队【权值线段树】
  3. 2021牛客暑期多校训练营4 D-Rebuild Tree(prufer序列+树形dp)
  4. MATLAB灰色预测
  5. 2018 ACM-ICPC World Finals - Beijing
  6. 动态规划训练15 [Monkey and Banana HDU - 1069 ]
  7. 数学题 贪心+二分答案
  8. K8S Learning(2)——集群环境搭建
  9. JavaFX官方教程(四)之Hello World,JavaFX样式
  10. String.format()方法的使用