Openshfit上用ConfigMap来自定义Nginx配置
Nginx是最常用的代理软件,也是最常用的WebServer,怎样很方便地在openshift上部署呢?同时又能很方便地对它自定义进行配置?直接使用docker的nginx会有以下问题: 启动时权限问题。默认openshift的应用会使用类似10000100的user_id启用docker,但是官方nginx镜像会使用root启用;还有nginx默认会启用80端口这个也是需要root权限的。 无法动态更新nginx配置。nginx配置在镜像中设置,如果需要更新配置的话,需要重新编译镜像。 应用代码更新。如果用户的代码,如静态代码,版本更新,是否可以不更新镜像,而完成版本的升级? 在Openshift上部署一个nginx应用如何解决以上3个问题。 权限问题 解决办法: 制作专用nginx镜像,1. 更改特殊文件夹的权限为777;2.将默认端口设置为8080default.conf 123456789101112server{ listen 8080; server_name _; location /{ root ...
OpenShift部署时如何延长组件证书的有效期
延长集群核心证书的有效期OpenShift集群正常运行中涉及到非常多的证书,有各节点通信的证书,有数据库的证书,有私有镜像仓库的证书,还有各种组件的证书(EFK、ClusterMonitor、Metrics等)。对于集群的相关证书可以通过在inventory文件中添加如下配置就可以非常方便地更改相关证书的默认有效期。 1234openshift_hosted_registry_cert_expire_days=3650openshift_ca_cert_expire_days=3650openshift_master_cert_expire_days=3650etcd_ca_default_days=3650 但是以上的几个配置对于一些组件并不起作用,如EFK等。 延长一些特殊组件证书的有效期openshift自签应用证书的有效期为2 or 5年。其中crt证书默认为两年,ca证书为5年。例如es中的证书中,admin-ca有效期为5年,admin-crt有效期为2年。 也就是说按照当前OpenShift安装的默认步骤安装的EFK组件,证书最短有效期为两年,两年后需要执行证书更...
Openshift+Jenkins+zalenium+HtmlReporter实现自动化测试
上篇介绍了如果在openshift上部署zalenium及python对应用功能进行测试的方法。该篇介绍如何通过Jenkins的Slave容器配合上篇中的zalenium实现自动化功能测试,并生成测试报告。虽然只是一个小例子,但是麻雀虽小,五脏俱全。同时所有的操作及工具都建立在Openshift上。下图为各工具之间的关系: ###具体操作: 启动Jenkins需要添加环境变量JENKINS_JAVA_OVERRIDES => -Dhudson.model.DirectoryBrowserSupport.CSP=该环境变量使得HtmlReporter页面展示正常 Jenkins系统管理->系统设置中创建新的Kubernetes Pod Template基础镜像jenkins-slave-python-centos7:3.10,Dockerfile安装需要的python依赖包 123# DockerfileFROM informaticsmatters/jenkins-slave-python-centos7RUN pip install se...
Openshift-Build构建详解
Build是什么Build是Openshift容器平台上将输入转化为输出的过程,通常情况下是将代码转化为镜像的过程。 Build的配置叫BuildConfig,它将定义构建策略及构建参数。设置的构建策略和参数确定了Build的构建过程。 Openshift构建有四种主要策略 Docker 构建 源代码构建(S2i) 自定义构建 Pipeline构建可以实现复杂的工作流 Docker构建、S2i构建、Pipeline构建是默认支持的。 不同的构建有六种源 Git Dockerfile Binary Image Input secrets External artifacts 其中Binary和Git不能同时使用。 Dockerfile和Image可以单独使用,也可以与Git或Binary一起使用。 如果使用Binary作为BuildConfig.spec.source.type,只能通过命令行工具oc start-build来构建。 BuildConfig实例 123456789101112131415161718192021222324252627282930kind: ...
Openshift-3scale简单介绍
API经济3scale做了什么?关注指标 支持应用数据 完整用例的数量 用户数量 资金价值 开发速度 部署速度 迁移工作量 已有问题 完整的API管理不仅仅只是创建与发布,还需要配套全方位的运维 创建与发布API 度量和计费 安全 & 认证 API文档Portal 扩展性 & 集中策略 API监控 版本控制 生命周期 配置 & 告警 API测试 3scale架构(可容器化部署) 实验内容github.com/hgueere
Openshift-All-In-One一键部署工具上线
Openshift All In One工具制作的初衷: 工作中为了测试各种情况,比如备份恢复等,经常需要部署一套全新的Openshift环境,虽然镜像与安装包都是现成,但是部署过程中还是很容易出错,毕竟还是有些复杂的。竟然部署过程是一致的,那就干脆用脚本化,一键到位得了。 Openshift3.9部署手册,这是我之前整理的一篇单机部署Openshift 3.9的手册,有一些朋友看了后,按照上面的操作还是会遇到一些问题,毕竟步骤有那么多,差了一步,就很容易就会失败。有了这个脚本工具后,想要部署测试Openshift的朋友就很容易去部署测试了,而不是在部署这一步就放弃了。 有些厂商提供了Openshift的解决方案,但是做支持的厂商朋友并不太熟悉容器平台环境,也想在自己的环境下部署一套Openshift来测试,最后往往困难重重,从展望到放弃。 做个自动化工具,让所有关心Openshift/K8s的朋友就可以跳过部署的步骤,快速进入到Paas这个神奇的世界,去了解到自己真正关心的内容。 进入正题 什么是正题?直接上工具git地址OpenshiftOneClick:http...
Openshift-F5集成(南北流量走F5)
使用F5与Openshift集成目的外部流量访问应用时,通过F5 BIG-IP硬件设备直接代理到集群中的Pod。这样做的好处,很明显。 使用硬件负载均衡器替换掉软件负载均衡器,提高性能。 F5有更灵活的配置,可以实现更复杂的流量控制 Openshift操作Openshift通过BIG-IP Controller来控制BIG-IP设备。由于Openshift是基于Kubernetes的,所以它们使用同一个Controller(k8s-bigip-ctlr)。BIG-IP Controller为集群中的应用配置BIG-IP对象,提供南北流量的服务。 BIG-IP Controller有两种方式来使用F5 BIG-IP设备 为Openshift中的Service提供代理流量 为Openshift中的Route提供代理流量 为Openshift中的Service提供代理流量_(不介绍具体部署操作)_这种方式,我们测试下来发现,需要为对外提供服务的Service绑定到F5的不同端口,同时外部访问应用时需要指定端口号。如:app1.openshift.example.com:8000...
Openshift-F5集成(总结)——与Router方案对比
这篇文章来自9月份自己在F5年度会议上分享的PPT,感谢过程中帮忙一起联调的小伙伴。PPT也分享出来,地址如下:openshift与F5的联合解决方案Openshift-F5集成(南北流量走F5)Openshift-F5集成(续)——实现灰度发布 Openshift的基础概念Openshift简介红帽® OpenShift 是一款性能强大的开源企业级PaaS产品。不仅是企业级的Kubernetes,可以构建、部署与管理容器应用,还提供从开发到投入生产的整个应用生命周期内使用的完整解决方案,帮助客户享受快速创新带来的收益,同时保持企业级平台的稳定性、可靠性和安全性。Openshift支持多种环境下部署,无论是在企业内部,公共云,或是托管环境中。 Openshift Pod Pod是Openshift调度的最小单元 一个Pod包含一个或多个容器 Pod内的容器共享网络,IP不固定 实例: 12345678910111213apiVersion: v1kind: Podmetadata: name: MyApp labels: app: MyApp spec...
Openshift-F5集成(续)——实现灰度发布
上篇:Openshift-F5集成(南北流量走F5)中介绍了如何实现使用F5替换掉Openshift中的Route,但是它的可控性是弱的。本篇则通过手动创建VS及iRule来实现更强的流量控制,实现识别客户端IP来访问相应的服务。 为什么要使用灰度发布 什么是灰度发布灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。ABtest就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。 灰度发布的价值使用灰度发布可以在产品正式上线前针对特定一些目标用户进行开放,获得这些目标用户的反馈,及早发现问题,修复问题,完善产品的不足。如果发现新的版本价值不大,能够及早更换思路,避免产品直接上线后产生不好的影响。 Openshift Route自带的灰度发布功能 Openshift Route自带的灰度发布,是通过Route下“挂载”两个或两个以上Service,并调整各个Service的权值进行控制流量的分布。 例如...
Openshift-HPA(Horizontal-Pod-Autoscaler)自动伸缩过程及算法
1、HPA介绍HPA(Horizontal Pod Autoscaler)是Openshift中的一个非常重要的对象,它定义了系统如何根据收集对应的Pod的状态(CPU/Memory)对DeploymentConfig、ReplicationController对象进行扩容与缩容。 HPA依赖于收集到的Pod资源的使用状态,所以要使HPA生效,Openshift必须安装好cluster metrics应用。 被监控的pod必须设置好了spec.containers.resources.requests属性,HPA才能正常工作。 仅支持CPU/Memory使用率的判断,如果自定义监控项,只能使用经验值,不能使用使用率。 支持对象:DeploymentConfig、ReplicationController、Deployment、Replica Set。 2. HPA伸缩过程及算法 HPA进行伸缩过程 收集该HPA控制下所有Pod最近的cpu使用情况(CPU utilization) 对比在扩容条件里记录的cpu限额(CPUUtilization) 调整实...

