- Openshift是一个云平台,它是以集群的方式提供服务。前面已经介绍了,业务都跑在Openshift的Node节点上。随着业务的不断变化,扩展或者消亡,我们的Node提供的服务需求也会不断变化。这时就需要对Node节点进行增删管理。
- 本篇只介绍CentOS7下管理Node节点。
- Openshift使用Ansible playbook来实现扩容与缩容
1. oc命令查看当前Node节点的状态
oc 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
hostnamectl --static set-hostname infra1.example.com
集群中的DNS中添加新加主机的域名与ip的解析
#/etc/dnsmasq.d/more.conf
address=/infra1.example.com/192.168.0.8
systemctl restart dnsmasq
设置新增加主机的默认DNS
# /etc/resolv.conf
nameserver 192.168.0.2
补充
,如果是使用/etc/hosts的方式来设置域名与IP的,需要为每台主机添加hosts条目,同时重启dnsmasq。
配置ansible Hosts文件,添加新增的主机
#/etc/ansible/hosts
[OSEv3:children]
masters
nodes
new_nodes
...
[new_nodes]
infra1.example.com openshift_node_labels="{'region': 'primary', 'zone': 'default', 'node-role.kubernetes.io/infra': 'true'}"
执行扩容脚本
ansible-playbook playbooks/openshift-node/scaleup.yml
将new_nodes中的主机移到nodes组中移除
#/etc/ansible/hosts
[OSEv3:children]
masters
nodes
new_nodes
...
[nodes]
infra1.example.com openshift_node_labels="{'region': 'primary', 'zone': 'default', 'node-role.kubernetes.io/infra': 'true'}"
[new_nodes]
给新增的节点配置/etc/origin/node/node-config.yaml
kubeletArguments:
system-reserved:
- cpu=200m
- memory=1G
kube-reserved:
- cpu=200m
- memory=1G
重启origin-node服务
systemctl restart origin-node
查看集群中的主机情况进行确认
oc get node --show-labels
3.从集群中移除Node节点
设置需要移除的Node为不可调度
oadm manage-node <node1> --schedulable=false
迁移node上已有的容器
oadm manage-node <node1> --evacuate
在集群中删除指定的node节点
oc delete node infra1.example.com
删除在Ansible hosts文件中的主机配置
...
[nodes]
查看集群中的主机情况进行确认
oc get node --show-labels
[可选]新建一个hosts文件,作为ansible-playbook的inventory,只需要写需要删除的node节点
[OSEv3:children]
nodes
[OSEv3:vars]
ansible_ssh_user=root
openshift_deployment_type=origin
[nodes]
infra1.example.com
[可选]执行清理脚本uninstall.yml
ansible-playbook -i hosts openshift-ansible/playbooks/adhoc/uninstall.yml