openshift pipline

原创 2017年11月15日 11:19:59

1、环境规范

builder image 标签
为了保证builder 镜像更新版本后,template用最新的image,我们最好在template中指定image标签为latest。,修改is标签的方法为:
在docker 中执行一下命令:

#更改docker标签,并推送到仓库
[root@registry-node1 ~]# docker tag cabef4ead344 registry.example.com/golang-builder
[root@registry-node1 ~]# docker push registry.example.com/golang-builder

#更改is
vito@caas:~$ oc edit is golang-builder
imagestream "golang-builder" edited

#修改内容如下:增加 annotations 即可
  - annotations:
      description: Build and run golang 1.8 applications on linux,when you build project,you
        must set environment variable,PROJECT_NAME=you_project_name
      tags: builder
    from:
      kind: DockerImage
      name: registry.example.com/golang-builder:latest
    generation: 4
    importPolicy:
      insecure: true
    name: latest
    referencePolicy:
      type: Source

持久化存储
postgres 数据库设置持久化存储。为了了解创建持久化的过程,首先我用Postresql Ephemeral模板,创建非持久化的数据库,然后创建pvc,最后把pvc挂载到postgres 数据库中,完成数据持久化过程。

# 查询创建好的pvc名称
vito@caas:~$ oc get pvc
NAME            STATUS    VOLUME                                     CAPACITY   ACCESSMODES   STORAGECLASS             AGE
peony-storage   Bound     pvc-a03d1825-c9cb-11e7-b8ec-0050568cc9dc   1Gi        RWO           ceph-storageclass-slow   19h

# 查询postgres-svc服务volume的设置情况,其中empty directory表示该容器使用的是empty directory卷,数据保存在计算节点上。
vito@caas:~$ oc volumes dc/postgres-svc
deploymentconfigs/postgres-svc
  empty directory as postgres-svc-data
    mounted at /var/lib/pgsql/data
# 我们执行volume 挂载更新操作:
vito@caas:~$ oc volume dc/postgres-svc --add --name=postgres-svc-data -t pvc --claim-name=peony-storage --overwrite
deploymentconfig "postgres-svc" updated
# 再次查询volume
vito@caas:~/docker$ oc volumes dc/postgres-svc
deploymentconfigs/postgres-svc
  pvc/peony-storage (allocated 1GiB) as postgres-svc-data
    mounted at /var/lib/pgsql/data
# 我们发现volume 类型变成了pvc/peony-storage,完成持久化操作。
# 重启容器,测试数据是否持久化,重启过程中,提示pvc 挂载失败,需要执行以下脚本,赋予权限。

apiVersion: v1
data:
  key: QVFDTWljQlpGN1htS0JBQWluZ2RsQzdKUmJMVm82YVljMkhXbkE9PQ==
kind: Secret
metadata:
  name: ceph-secret-openshift
  namespace: ecloudcaas-dev
type: kubernetes.io/rbd

#执行创建
oc create -f pvc-sercret.yaml 
# 重启容器,成功,测试持久化存储,成功!!

定义SERVICE NAME
服务之间访问,用service name 来传递ip地址和端口,每个服务首先创建service,然后deploy 容器,系统会自动把service的ip和port注入到pod的环境变量中,注意先后顺序,先service,然后创建pod。

增加健康检查
为每个服务创建健康检查,过程不再赘述

导出模板
oc export bc,dc,svc,is,route,pvc -o json –as-template=’dev-template’ >dev-template.json

创建jenkins项目

创建三个项目:
1、ecloudcaas-release
2、ecloudcaas-release
3、ecloudcaas-release

赋权:
jenkins需要权限来操作openshift,赋权给他

vito@caas:~$ oc policy add-role-to-user edit system:serviceaccount:ci:default -n ecloudcaas-dev
role "edit" added: "system:serviceaccount:ci:default"
vito@caas:~$ oc policy add-role-to-user edit system:serviceaccount:ci:default -n ecloudcaas-sit
role "edit" added: "system:serviceaccount:ci:default"
vito@caas:~$ oc policy add-role-to-user edit system:serviceaccount:ci:default -n ecloudcaas-release
role "edit" added: "system:serviceaccount:ci:default"

docker register 赋权:
SIT环境和RELEASE环境需要拉取DEV环境的镜像,下面的命令赋权

vito@caas:~$ oc policy add-role-to-user edit system:image-pullersystem:serviceaccount:ecloudcaas-sit:default -n ecloudcaas-dev
role "edit" added: "system:image-pullersystem:serviceaccount:ecloudcaas-sit:default"
vito@caas:~$ oc policy add-role-to-user edit system:image-pullersystem:serviceaccount:ecloudcaas-release:default -n ecloudcaas-dev
role "edit" added: "system:image-pullersystem:serviceaccount:ecloudcaas-release:default"
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

CS231N-Lecture2 Image Classification Pipline

图片分类概述一、概述这一课标题是Image Classification Pip-line,大概就是讲了图片分类的整个框架流程。看完之后确实对于卷积网络底层是如何对图片进行分类的有了再进一步的认识,感...

Codis部署与pipline写入出错的解决

一、准备工作    软件    zookeeper-3.4.6.tar.gz    go1.6.3.linux-amd64.tar.gz    创建目录    mkdir -pv /usr/local...

sklearn学习——SVM例程总结(PCA+Pipline+cv+GridSearch)

Introduction 其实对于SVM调节超参数不需要这么复杂,因为gamma可能更重要一点,固定C=1,手动调节gamma即可。此外,sklearn的网格搜索极其的慢,下面的代码出来结果至少要半个...
  • sqiu_11
  • sqiu_11
  • 2017年07月26日 22:19
  • 273

redis利用pipline实现发布订阅机制

redis相关内容介绍top:这里忽略了redis基本数据结构的介绍,不熟悉的小伙伴可参考教程 redis:具有k-v特性的服务器,主要用于缓存。 pipline:用于提高redis通信效率的管道技术...
  • cywtd
  • cywtd
  • 2017年03月24日 14:43
  • 290

openshift/origin学习记录(8)——基于镜像安装多节点集群(Containerized Installer)

本节内容是Docker镜像以及Ansible实现多节点集群Containerized Installer。大体流程和基于RPM的安装过程类似。 本部分openshift集群的部署分为以下几个阶段: 主...

PaaS 及 OpenShift架构简介

PaaS 及OpenShift架构简介 对PaaS的简单介绍 问题描述。 一般我们传统开发,折腾服务器在所难免。选择时得考虑CPU大小, 内存多少,带宽如何,以及有什么操作系统; 然后还得在上面...

openshift/origin学习记录(6)——集群节点管理

采用Cockpit实现集群节点管理。Cockpit是一个开源的系统管理项目。支持Docker、Kubernetes、Openshift。 安装Cockpit 在集群所有的节点上安装Cockpit以及D...

OpenShift的注册及rhc安装

rhc

Django+OpenShift微信公众号开发(一)

本文主要介绍开发公众号前的准备工作即Openshift免费空间的申请、管理与使用...

Day 3: Flask —— 使用Python和OpenShift进行即时Web开发

最近Packtpub找到了我,让我给他们新出版的关于Flask的书写书评。Flask是一个很流行的Python框架。那本书是Ron DuPlain写的《Flask 即时Web开发》。我决定把“30...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:openshift pipline
举报原因:
原因补充:

(最多只允许输入30个字)