开篇之前如果没有安装openshift环境可以参考我的博文:centos7下安装openshift
本系列博客学习笔记参考《开源容器云openshift》一书:下载连接:https://download.csdn.net/download/u012371097/10745382
添加Registry组件是部署集群内部的Docker镜像仓库。从功能上来说,它与其他诸如DockerHub没有本质上的区别,只是这个内部镜像仓库会存储由Source to Image(S2I)创建的镜像。S2I的工作是辅助将应用的源代码转换成可以部署的Docker镜像。
一个典型的S2I流程包括如下:
- 用户输入源代码仓库的地址。
- 用户选择S2I构建的基础镜像(Builder镜像)。Openshift提供了多种编程语言的Builder镜像,用户也可以定制自己的Builder镜像,并发布到服务目录中。
- 系统或用户触发S2I构建。Openshift将实例化S2I构建执行器。
- S2I构建执行器将从用户指定的代码仓库下载源代码。
- S2I构建执行器实例化Builder镜像,并将代码注入Builder镜像中。
- Builder镜像将根据预定义的逻辑执行源代码的编译、构建并完成部署。
- S2I构建执行器将完成操作的Builder镜像并生成新的Docker镜像。
- S2I构建执行器将新的镜像推送到Openshift内部的镜像仓库中。
- S2I构建执行器更新该次构建相关的Image Stream信息。
- S2I还可以接受Dockerfile以及二进制文件作为构建的输入。用户甚至可以完全自定义构建逻辑。
具体操作:
以管理员登录,并切换到default工程。
oc login -u system:admin
oc project default
部署Docker Registry。
oc adm registry config=/home/openshift/openshift-origin/openshift.local.config/master/admin.kubeconfig --service-account=registry
执行
oc get pod -n default
查看registry的创建状态
这里部署的Registry没有启用Https,所以需要修改主机上Docker的配置,让Docker能以非Https的方式连接到Registry。
vim /etc/sysconfig/docker
添加以下内容:
--registry-mirror=https://docker.mirrors.ustc.edu.cn --insecure-registry=172.30.0.0/16
重启Docker服务
systemctl restart docker