OpenShift-运维管理

Cockpit介绍

Cockpit是一个开源的系统管理项目,其目的是为用户提供一个灵活高效的Linux系统运维管理界面。目前Cockpit支持Docker、Kubernetes和OpenShift。通过Cockpit,用户可以在一个统一的系统中获取OpenShift集群节点操作系统的实时信息及配置,用户也可以在Cockpit中以管理员的身份对OpenShift集群进行管理。

项目URL:https://github.com/cockpit-project

Cockpit部署

  • 所有节点执行
yum install cockpit cockpit-docker cockpit-kubernetes -y
systemctl start cockpit && systemctl enable cockpit
vim /etc/sysconfig/iptables
A INPUT -p tcp -m state –state NEW -m tcp –dport 9090 -j ACCEPT
./media/image1.png
systemctl restart iptables
  • 登陆
登陆https://master.example.com:9090/
用户名密码即服务器用户名密码
./media/image2.png
./media/image3.png

Cockpit集群运维

在集群选项中可以添加OpenShift集群
./media/image4.png
各信息在浏览器中直观展现
节点
./media/image5.png
拓扑
./media/image6.png
持久化卷
./media/image7.png

OpenShift集群扩容

根据OpenShift项目官方资料,单个计算节点可以支持250个Pod,单一集群目前实际最大部署数量达到1000个节点,单一集群的最大Pod数量为120
000。

目前集群扩容的方式有:

  • 半自动扩容:

OpenShift默认提供了扩容的Ansible
Playbook解决自动化节点的安装和配置,之所以称为半自动,是因为Ansible扩容的时机是由用户决定的。

  • 全自动扩容:

自动扩容是在半自动扩容的基础上由系统自动判别当前集群资源是否足够,如果不足,则调用Ansible
Playbook进行扩容。自动扩容需要ManageIQ第三方云管理平台的支持,根据用户预定义的规则,在满足规则条件的情况下对集群进行扩容或缩容。

Ansible Playbook

通过Ansible
Playboko进行扩容需要编辑Ansible的Inventory,/etc/ansible/hosts文件,在相应角色下添加新节点的域名以及配置信息

# host group for masters [masters] master.example.com # host group for etcd [etcd] master.example.com # host group for nodes, includes region info [nodes] master.example.com node1.example.com openshift_node_labels=”{‘region’: ‘primary’, ‘zone’: ‘east’}” node2.example.com openshift_node_labels=”{‘region’: ‘primary’, ‘zone’: ‘west’}” infra-node1.example.com openshift_node_labels=”{‘region’: ‘infra’, ‘zone’: ‘default’}” infra-node2.example.com openshift_node_labels=”{‘region’: ‘infra’, ‘zone’: ‘default’}” #新增计算节点 node3.example.com node4.example.com

主节点扩容Playbook

ansible-playbook /root/openshift-ansible/playbooks/byo/openshift-master/scaleup.yml

计算节点扩容Playbook

ansible-playbook /root/openshift-ansible/playbooks/byo/openshift-node/scaleup.yml

OpenShift集群缩容

缩容是指减小集群的计算资源,缩容主要考虑如何将计算资源抽离集群而不影响现有的业务。在缩容的场景中,集群管理员需要保证:1.新的容器不会再创建于要缩减的计算之上;2.当前运行在计划缩减的计算节点之上的容器能迁移到其他计算节点之上。

禁止参与调度

控制一个计算节点是否参与到集群的调度运行应用
oc adm manage-node master.example.com –schedulable=false
./media/image8.png