从0开始构建CI-CD持续集成流水线[Openshift]
发表于|更新于
|浏览量:
开始前的话
- 完成一只大象装进冰箱需要几步?
三步: 1. 有一个冰箱;2. 有一只大象;3. 把大象装进冰箱 - 构建CI/CD流水线[Openshift]需要几步?
三步: 1. 有Openshift平台;2. 部署CI/CD流水线应用;3. 启动流水线
文章作者: Michael Pan
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Michael Blog!
相关推荐

2020-05-20
Openshift上使用shell-operator创建自己的operator
shell operator是由Falnt公司开发并开源的。Flant公司是一家致力于提供解决所有基础设施问题的解决方案的公司。他们自称是提供DevOps-as-a-Service的服务。 需求 一个简单的任务:监听项目创建与删除事件,并发出告警。 一种简单的解决方法:定时脚本cron,每隔一段时间(如1min)获取对Openshift集群的所有项目,并将它与上次获取的结果值进行比较,得到新创建的项目及删除的项目该方法的缺点: 不及时 性能差,很多时候并没有操作项目,但仍然需要不断执行脚本 如果1min内即创建了新项目,又把这个项目删除了,则无法监测到 另一种解决方法:事件驱动,即订阅来自Kubernetes对象的事件,如果有对Project操作就触发告警。很明显这种方法解决了定时任务的所有问题。 该很么做呢?会不会非常复杂。不会。使用shell-operator项目就可以非常简单地实现。shell-operator项目地址:https://github.com/flant/shell-operator 实现部骤 创建shell-operator项目 1$ oc n...
2020-05-20
企业生产系统迁移至容器云平台的众多难题
该篇是twt论坛交流活动《企业生产系统迁移至容器云平台的网络及安全方案探讨—暨红帽容器化混合云解决方案在线发布活动》的总结。原文:http://www.talkwithtrend.com/Article/245665活动地址:http://www.talkwithtrend.com/activity/?id=1459 自从2013年Docker应用开源以来,容器技术飞速发展,它彻底改变了PaaS原先的发展轨迹。2014年Google发布的容器编排应用Kubernetes,经过5年的发展,更是已经成为了现代容器平台的事实标准,容器平台应用于生产环境也已经现实可落地。 与之前的虚拟技术相比,容器技术具有更快、更轻、更强的优势。 更快,体现在容器可以实现秒级启动。 更轻,体现在容器更加轻量,往往一个容器镜像只有几十兆,可以快速在主机之间迁移,而虚拟机镜像往往是几个G。 更强,体现在容器的性能更好。容器是直接调用硬件资源,不存在虚拟化层,所以它的性能接近于原生应用。 容器以应用为中心,能够快速地在各个平台下部署运行,可以很好地满足应用的快速部署。 但是容器运行时使用的是宿主机的内核,在...
2020-05-20
OpenShift容器中读取Project信息
背景在日常运维管理中,经常需要获取OpenShift集群资源的信息,甚至创建、编辑或删除资源。我们都很清楚,使用oc命令就能够非常方便地完成这些操作。但是有时,我们希望通过调用接口来实现,以便于与其它组件或者应用进行集成。那么我们该如何做呢?本篇就以读取Project信息为例,展示如何通过HTTP请求操作OpenShift的资源。 操作 首先需要创建具有读取Project信息权限的clusterrole project_view 12345678910111213$ cat <<EOF | oc create -f -apiVersion: authorization.openshift.io/v1kind: ClusterRolemetadata: name: project_viewrules:- apiGroups: - project.openshift.io resources: - projects verbs: - getEOF 为需要调用的应用POD添加获取Project信息的权限 1$ oc adm policy add-clus...
2020-05-20
Openshift-Nginx-Router替换默认Haproxy-Router
什么是Router Router在Openshift集群的一个不可非常重要的组件,它作为外部请求访问集群内部资源的入口,为Openshift上的应用提供边缘负载均衡。 Router可以为应用提供HTTP和websocket流量的负载均衡,同时支持HTTPS连接。Openshift上有一个特殊的资源叫Route,通过它可以方便地配置Router。 Openshift集群默认使用Haproxy应用作为Router的实现,它通过容器的形式运行在相应的Node上,同时Router Pod网络使用的宿主机的网络,即hostNetwork=true。 除了Haproxy,我们还可以使用Nginx来实现Router,这也是本文的重点。 不管是Haproxy还是Nginx方案都是使用了软件负载均衡器,还可以使用F5等硬件负载均衡器来替换Router,达到性能的提升。 Nginx Router与默认Router比较 如何替换Openshift默认Router卸载当前Router 用system:admin登录集群 1$ oc login -u system:admin 选择default...
2020-05-20
OpenShift使用MetalLB,打开了Service通向外界的大门
#背景在K8S/OpenShift中,如果要向集群外部暴露应用的服务,目前使用的方法有:NodePort、HostPort、Route、LoadBalancer、HostNetwork。 Route:为最常用的方法,但是一般只支持7层负载(默认),使用一个外部LB来负载多个Route实例,对外的访问的IP为该LB的IP。 NodePort:在私有集群中也常用来暴露服务,但是它必须使用30000以上的端口,数量有限,不便于管理,而且对于一些特殊的服务,如DNS,必须使用小端口号,那么使用NodePort则无法满足。 HostNetwork:对于集群中的一些特殊服务使用该方式,它将容器与宿主机的网络绑定,如OpenShift中的Router服务就是使用HostNetwork与Router节点绑定。它的缺点是pod必须与主机绑定,同时每个Node上只能运行一个Pod实例,因为端口无法被复用。 HostPort:与HostNetwork类似,将Pod指定的端口与Node对应的端口绑定。 LoadBalancer:一般只在公有云平台使用,可以使Service获得与主机同一平面...
2020-05-20
Calico-BGP集群外部与集群网络打通
把这几个路由规则加入到路由器或者客户端机器上 123route add -net 10.233.55.64 netmask 255.255.255.192 gw 10.21.21.76route add -net 10.233.119.0 netmask 255.255.255.192 gw 10.21.21.74route add -net 10.233.183.64 netmask 255.255.255.192 gw 10.21.21.75 Win10客户端机器 12345678route add -p 10.233.97.128 mask 255.255.255.192 192.168.1.225route add -p 10.233.75.0 mask 255.255.255.192 192.168.1.226route add -p 10.233.100.128 mask 255.255.255.192 192.168.1.227route add -p 10.233.90.0 mask 255.255.255.192 192.168.1.228route ad...
目录
