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