Openshift私有仓库爆了,怎么办??!!
背景像大家担心的那样,Openshift私有仓库磁盘爆了,使用率100%!!!使用oc adm prune来作对openshift集群的清理,你敢吗?会不会把需要的镜像也一并删了呢,要是如此,就只能像DBA一样走人了。今天就来探讨下oc adm prune的用法。
先给出答案如你所料,我们最终的清理镜像的办法是oc adm prune images
12oc login -u admin -p adminoc adm prune images --keep-younger-than=400m --confirm
注意以上oc adm prune images命令只能在普通用户下执行,无法在system:admin用户下执行,所以必须先登录普通用户,同时用户拥有system:image-pruner权限。
精减镜像命令oc adm prune images的用法为了让镜像不占用过多的磁盘空间,需要对它全精减。很多时候,比如重复地构建镜像,会留下很多不必要的镜像层,而这些镜像层会占用非常多的空间。
1oc adm prune images [<options>]
option ...
Openshift网络插件动态切换
Openshift 3.11版本Openshift SDN网络插件ovs-subnet 与 ovs-multitenant切换
更改节点上的networkPluginName的配置
master节点:/etc/origin/master/master-config.yaml
node节点:/etc/origin/node/node-config.yaml
将networkPluginName中的redhat/openshift-ovs-subnet换成redhat/openshift-ovs-multitenant,或者反过来。12$ ansible all -m shell -a 'sed -i "s/openshift-ovs-subnet/openshift-ovs-multitenant/g" /etc/origin/node/node-config.yaml'$ ansible masters -m shell -a 'sed -i "s/openshift-ovs-subnet/openshift-ovs ...
Openshift结合IaaS的LB与Nginx实现高可用可伸缩外部负载均衡器
背景
Openshift在集群部署时需要额外提供一个负载均衡器,该负载均衡器对master api及router haproxy中的80与443服务进行负载,实现高可用。
如果在IaaS上部署Openshift集群的话,我们很自然地会使用IaaS的LB服务,直接对LB作TCP端口负载就解决问题了,既实现了需要的负载均衡,而且还有健康检查,负载高可用,非常方便。
但是我们的Openshift集群并不是部署在IaaS上,而是额外部署。IaaS上的LB无法直接将集群中的服务器作为监听器的后端进行负载,这时我们就需要在Openshift集群下额外独立部署负载均衡器。考虑到保证负载均衡器的高可用性,及监控等,这会是一个比较复杂的过程。
那么我们是否可以结合IaaS上的LB现有的机制,制定一套既方便部署,又高可用的方案呢?答案是肯定的。
该篇就是介绍如何结合IaaS的LB与代理应用Nginx实现Openshift高可用的外部负载均衡
原理
负载均衡器应用,首先大家想到的最多的两款应用是:Nginx与Haproxy,我们选用了Nginx。
将IaaS的LB与Nginx结合的思路也很简单。在IaaS ...
Openshift自定义Router成倍提升集群性能
为什么要自定义Router
Openshift的Router节点其实就是一个Haproxy容器应用,这个已经不是什么秘密了。我们平常使用时,不需要关心Haproxy的配置,因为它的默认配置完全满足绝大多数情况的需求。
但是它的默认配置并没有把最大的性能发挥出来,这时就需要我们对Haproxy的配置进行自定义了。
如果你需要实现一些新的功能,比如说将Mysql通过Router对外提供服务等
怎样自定义Router
Router Pod根据haproxy-config模板创建haproxy.conf配置文件,默认文件为/var/lib/haproxy/conf/haproxy-config.template
Router Haproxy镜像启动时会根据环境变量TEMPLATE_FILE来选择最终使用的模板文件
向Router Pod中放入自定义的模板文件,并将它的路径传给环境变量TEMPLATE_FILE
模板文件中的相关函数
函数
说明
processEndpointsForAlias(alias ServiceAliasConfig, svc ServiceUnit, ...
Openshift部署zalenium(容器化的selenium)及Python自动测试
什么是zaleniumzalenium是一个Selenium Grid扩展,用Docker容器动态扩展你的本地网格。它使用docker-selenium在本地运行Firefox和Chrome中的测试。官网地址 zalenium
Openshift上部署zalenium
创建zalenium项目
1oc new-project zalenium --display-name="自动测试Selenium Grid"
创建Service Account
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455# 创建ClusterRole# oc create -f zalenium-role.json{ "kind": "ClusterRole", "apiVersion": "v1", "metadat ...
Openshift部署测试环境oc-cluster-up
1oc cluster up --base-dir=/root/openshift --public-hostname=master.douhua.com
Openshift集群3-9升级到3-10
更新方法与策略:自动升级方法
下载openshift-ansible的脚本代码 12git clone https://github.com/openshift/openshift-ansible.git git checkout release-3.10将master上的/etc/origin/master/htpasswd备份到/root/htpasswd
1scp master1:/etc/origin/master/htpasswd /root/htpasswd
openshift_master_identity_providers中的filename去掉
123# /etc/ansible/hostsopenshift_master_identity_providers=[{'name': 'htpasswd_auth', 'login':'true','challenge': 'tru ...
Openshift集群全环境备份
创建集群全环境备份非常有必要,特别是在生产过程中。当集群发生异常崩溃,数据丢失时,备份的数据就派上了用场,利用备份数据可以将之前的环境重新构建出来。
在Openshift平台,我们可以对集群的完整状态备份到外部存储。集群全环境包括:
集群数据文件
etcd数据库
Openshift对象配置
私有镜像仓库存储
持久化卷
我们要定期对集群作备份,以防止数据的丢失。
集群全环境备份并不是万能的,应用自己的数据我们应该保证有单独的备份。
创建Master节点备份在系统基础架构进行更改,都需要对节点做备份。比如说,系统升级,集群升级或者任何重大更新。通过定期备份数据,当集群出现故障时,我们就能使用备份恢复集群。
Master主机上运行着非常重要的服务:API、Controllers。/etc/origin/master目录下存放着许多重要的文件。
API、Controllers服务等的配置文件
安装生成的证书
云提供商提供的配置文件
密钥和其它身份认证文件
另外如果有额外自定义的配置,比如更改日志级别,使用代理等。这些配置文件在/ ...
Openshift集群升级3-6至3-7
更新方法与策略:自动升级方法
更新openshift-ansible的脚本代码 12git pull git checkout -b release-3.7安装需要的包
1ansible all -m yum -a 'name=pyOpenSSL state=present'
关闭Service Catalog和Template Service Broker。3.7 以上版本默认会启用 Service Catalog 和 Template Service Broker
123456# /etc/ansible/hosts...openshift_enable_service_catalog=falsetemplate_service_broker_install=falseansible_service_broker_install=false...
关闭etcd目录的selinux检查关闭任务Check selinux label of ‘‘与Make sure the ‘‘ has the proper label
1234567891011121 ...
Openshif对集群的扩容与缩容
Openshift是一个云平台,它是以集群的方式提供服务。前面已经介绍了,业务都跑在Openshift的Node节点上。随着业务的不断变化,扩展或者消亡,我们的Node提供的服务需求也会不断变化。这时就需要对Node节点进行增删管理。
本篇只介绍CentOS7下管理Node节点。
Openshift使用Ansible playbook来实现扩容与缩容
1. oc命令查看当前Node节点的状态1oc get node --show-labels
2. 添加Node节点到已存在的集群
准备好需要添加的主机
节点类型
说明
Nodes
物理主机或者虚拟机 系统:Fedora 21, CentOS 7.3, 7.4或者7.5 NetworkManager版本1.0以上最少1vCPU最少8GB内存/var/最少15GB空间 /usr/local/bin最少1GB空间容器临时目录最少1GB空间
设置主机的hostname
1hostnamectl --static set-hostname infra ...