openshift/origin学习记录(5)——添加Template(模板)并基于模板部署应用

学习资料来源于官方英文文档与《开源容器云OpenShift》一书,因为刚开始学习,不确定博客的正确性,以下内容仅供参考。

本部分是在openshift/origin学习记录(1)——基于二进制文件的安装(单机版)的基础上进行。

添加模板

为了满足用户对复杂应用部署的需求,提供应用部署的效率,openshift引入了应用部署模板(Template)的概念。

通过Template,可以定义一个或多个需要部署的镜像,定义依赖的对象,定义可供用户输入的配置参数项。

  • 以管理员登录,并切换到openshift工程。
# oc login -u system:admin
# oc project openshift

openshift是一个特殊的项目,在这个项目下创建的所有Image Stream及Template对集群内所有的用户和项目可见。

如果Image Stream及Template在其他项目下创建,则只能在创建这些对象的项目中可见。

https://github.com/openshift/origin/tree/release-3.6/examples/quickstarts下有官方提供的一系列模板可供下载使用。

以cakephp-mysql.json为例。

# oc create -f https://raw.githubusercontent.com/openshift/origin/release-3.6/examples/quickstarts/cakephp-mysql.json -n openshift
# oc get template -n openshift

部署应用

以上文导入的cakephp-mysql模板为例。

  • 登录openshift web控制台。新建工程。名为hello-world-php,项目显示名为Hello World Php。
  • 在服务目录过滤器里输入cake,找到cakephp-mysql-example模板。
  • 选择cakephp-mysql-example模板,跳转至Template的参数输入页面。

主要修改Application Hostname(暴露的主机名,将路由到CakePHP的服务)。这里我填写的是master.example.com。

需要注意,master.example.com只是测试域名,并不能被互联网域名解析器解析。 需要修改浏览器所在机器的hosts文件,手动添加解析将master.example.com指向openshift集群master所在的IP地址。(多节点集群需要指向Router所在的ip) Windows系统: C:\windows\system32\drivers\etc\hosts Linux系统:/etc/hosts

  • 点击Template参数输入页面底部的Create按钮,执行部署。跳转至部署完成界面。
  • 点击Continue to overview链接。

跳转到项目的概览页面。Openshif会在后台创建相应的对象,并下载相关的镜像。

由于CakePHP应用涉及一个镜像构建的过程,即Source to Image,所以构建速度较慢。

  • 展开cakephp-mysql-example。
  • 点击view full log可以查看实时日志输出。

可以看出,Openshift会从GitHub仓库中下载指定的PHP源代码,然后将代码注入一个含PHP运行环境的镜像,最后生成一个包含PHP应用以及PHP运行环境的新镜像,并将新的镜像推送到前文部署的内部镜像仓库中。

如果构建过程中出现docker push镜像到内部镜像仓库的错误,需要检查内部镜像仓库是否正确部署与配置。即有没有忘记设置docker的--insecure-registry参数

  • 构建完成后,单击左侧菜单栏的Overview按钮,回到项目主页。

至此demo应用部署成功。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏深度学习自然语言处理

【linux】常用命令之scp命令

今天需要在两个服务器之间进行数据copy,但是居然忘了linux命令,于是这里记录下,加深记忆!

692
来自专栏Crossin的编程教室

把你开发的网站免费发布到互联网上(1)

0. 前言 之前我们写过很多代码,但几乎都是在自己的电脑上运行的。如果别人要看,也只能在电脑上演示,或者把代码发给他运行。 而在学习 web 开发,比如 Dja...

3086
来自专栏应兆康的专栏

每天一个Linux命令(4)——mkdir

mkdir命令用来创建目录。该命令创建由dirname命名的目录。如果在目录名的前面没有加任何路径名,则在当前目录下创建dirname指定的目录,如果给出了一个...

2678
来自专栏技术博文

Nginx 日志文件 access_log 详解

Module ngx_http_log_module nginx 日志相关指令主要有两条, 一条是log_format,用来设置日志格式, 另外一条是acces...

2665
来自专栏开源优测

[接口测试 -基础篇] 20 用flask写一个简单server用于接口测试

概述 近期在写接口测试系列时,总感觉很不对劲,主要是缺乏一个比较完整的用于API测试的环境,四处找公开的API真心不靠谱,尝试了不少公开的,总觉得少了些什么,所...

3298
来自专栏上善若水

S005SELinux(SEAndroid)的实际文件组成无标题文章

SEAndroid 是将SELinux 移植到Android 上的产物,可以看成SELinux 辅以一套适用于Android 的策略。

1185
来自专栏北京马哥教育

Python爬虫代理池

2708
来自专栏编程坑太多

Maven学习笔记四(坐标和依赖)

1234
来自专栏用户2442861的专栏

linux之ldconfig工具的使用

ldconfig是一个动态链接库管理命令 为了让动态链接库为系统所共享,还需运行动态链接库的管理命令--ldconfig ldconfig  命令的用途...

471
来自专栏前端侠2.0

Angular中,模块加载的几种方法 原

好处:这种方式有利于初始减少加载体积 , 不需要在app.module.ts中,主动去引入相应的模块(它们自然不会打包到AppModule中去)。

802

扫码关注云+社区