学习资料来源于官方英文文档与《开源容器云OpenShift》一书,因为刚开始学习,不确定博客的正确性,以下内容仅供参考。
本部分是在openshift/origin学习记录(1)——基于二进制文件的安装(单机版)的基础上进行。
为了满足用户对复杂应用部署的需求,提供应用部署的效率,openshift引入了应用部署模板(Template)的概念。
通过Template,可以定义一个或多个需要部署的镜像,定义依赖的对象,定义可供用户输入的配置参数项。
# 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模板为例。
主要修改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
跳转到项目的概览页面。Openshif会在后台创建相应的对象,并下载相关的镜像。
由于CakePHP应用涉及一个镜像构建的过程,即Source to Image,所以构建速度较慢。
可以看出,Openshift会从GitHub仓库中下载指定的PHP源代码,然后将代码注入一个含PHP运行环境的镜像,最后生成一个包含PHP应用以及PHP运行环境的新镜像,并将新的镜像推送到前文部署的内部镜像仓库中。
如果构建过程中出现docker push镜像到内部镜像仓库的错误,需要检查内部镜像仓库是否正确部署与配置。即有没有忘记设置docker的--insecure-registry参数
。
至此demo应用部署成功。