【openshift教程-部署】【集群扩容、缩容及版本升级】
一、集群扩容
通过Ansible进行扩容需要编辑Ansible的Inventory,即/etc/ansible/hosts文件。在相应的角色下添加新节点的域名及配置信息。然后执行Ansible的Playbook实施具体的扩容动作。

执行node扩容命令:
ansible-playbook openshift-ansible/playbooks/byo/openshift-node/scaleup.yml
主控节点扩容通过执行openshift-master/scaleup.yml Playbook实现:
ansible-playbook openshift-ansible/playbooks/byo/openshift-master/scaleup.yml
二、集群缩容
缩容是指减少集群的计算资源。缩容主要考虑如何将计算资源抽离集群而不影响现有的业务。
在实际部署中,大量的容器应用都运行在计算节点之上。所幸的是,OpenShift是一个多节点的集群云平台,集群内存在多个计算节点,提供了冗余。
在缩容的场景中,集群管理员需要保证:新的容器不会再创建于要缩减的计算节点之上;当前运行在计划缩减的计算节点之上的容器能迁移到其他计算节点之上。
OpenShift提供了相关的机制帮助集群管理员控制一个计算节点是否可用于容器的编排调度。
例如,主控节点Master默认情况下是不运行容器的。查看节点的状态,可以看到Master节点的状态是SchedulingDisabled,即不可调度的。

停止调度:
要注意的是,将节点设置成不可调度之后,OpenShift的调度器将停止往该节点上分配新的容器,但是原先在该节点上运行的容器,仍然在该节点上运行。
当一个计算节点因故希望退出集群时,集群管理员应该先将其上运行的容器调度到其他的计算节点之上,避免计算节点下线导致应用服务中断。
可以通过oc adm manage-node --evacuate命令将指定的Pod迁移到其他的计算节点上。例如,下面的例子将node1节点上所有带有app=httpd标签的Pod都迁移出该计算节点。
三、版本升级
从3.7升级到3.9
tar -zxf openshift-ansible-3.10.0-0.7.0.tar.gz
ansible-playbook -i ~/ansible-inventory openshift-ansible/playbooks/byo/openshift-cluster/upgrades/v3_9/upgrade.yml