
背景介绍
OpenShift是一个开源产品,自2015年3.0版本开始,它使用Kubernetes作为底层的编排引擎,已经有将近5年了。同时它也有企业级版本,服务了众多大中小企业。经过这些年生产上的实践,OpenShift 3不断完善,已经非常稳定了,但是它依赖组件多,不断增加新的功能,使用量不断增多,一些漏洞和问题会被发现。在生产环境中,运行着大量的生产级应用,我们该如何升级Docker等组件,把业务影响降到最小,这是每个企业都无法绕过的问题。
Docker作为OpenShift 3默认的容器运行,它的可靠性也尤为重要。本篇就以Docker升级为例介绍如何对OpenShift组件进行升级。
升级不同OpenShift组件的思路是一样,主要是如下两条。
- 逐个节点升级
- 升级前将业务应用迁走
升级Docker实操
- 更新yum源中的docker包
$ cp docker-rpm/* ./extras/Packages/d/
$ createrepo --update extras
- 迁移节点上的POD并将它设置为不可调度
$ oc adm drain <node_name> --force --delete-local-data --ignore-daemonsets
- 排除不需要升级的软件
$ atomic-openshift-docker-excluder exclude
$ atomic-openshift-excluder exclude
- 升级docker
$ yum clean all
$ yum update docker
- 重启服务或者重启主机
Master节点
$ systemctl restart docker
$ master-restart api
$ master-restart controllers
$ systemctl restart origin-node
Node节点
$ systemctl restart docker
$ systemctl restart origin-node
或者
$ reboot
- 将节点设置为可调度
$ oc adm uncordon <node_name>
网友评论