OpenShift Node Operations: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 89: Line 89:
Procedure to evacuate a pod:
Procedure to evacuate a pod:


{{Internal|OpenShift_Pod_Operations#Evacuate_Pod|Evacuate Pod}}
{{Internal|OpenShift_Pod_Operations#Evacuate_Pods_from_Node|Evacuate Pods from Node}}


=Adding a new Master=
=Adding a new Master=


<font color=red>TODO: https://docs.openshift.com/container-platform/3.5/install_config/adding_hosts_to_existing_cluster.html#adding-nodes-advanced</font>
<font color=red>TODO: https://docs.openshift.com/container-platform/3.5/install_config/adding_hosts_to_existing_cluster.html#adding-nodes-advanced</font>

Revision as of 04:44, 22 November 2017

External

Internal

Overview

A node is a Linux container host. More details about nodes are available here:

OpenShift Concepts - Nodes

Getting Information about a Node

oc get nodes
oc get node <node-name>

Resource Allocation (CPU, Memory) per Pod on a Node

oc describe node/<node-name>
oc describe node <node-name>

Starting/Stopping a Node

Get Labels Applied to a Node

Get Labels Applied to a Node

Update Labels on a Node

TODO: https://docs.openshift.com/container-platform/3.5/admin_guide/manage_nodes.html#updating-labels-on-nodes

Other Procedures

Adding a New Node

https://docs.openshift.com/container-platform/3.5/install_config/adding_hosts_to_existing_cluster.html#adding-nodes-advanced

New nodes can be added with the scaleup.yml playbook. The playbook generates and distributes new certificates for the new hosts, then runs the configuration playbook on the new hosts only. However, before running the playbook, the host must be prepared in the same way the other nodes were. If the nodes were created based on a template, the same template should be used to stand up the new node. For more details, see:

OpenShift 3.5 Installation Procedure - Node Configuration

Use the same Ansible inventory file that was used to install the rest of the cluster.

On the Ansible host, update to the latest version of 'atomic-openshift-utils'

yum update atomic-openshift-utils

In the Ansible inventory file, add "new_<host_type> to the [OSEv3:children] section:

[OSEv3:children]
masters
etcd
nodes
new_nodes
lb
nfs

Create a [new_<host_type>] section following the patterns already in place for the similar types of nodes:

[new_nodes]
node3.local openshift_node_labels="{'logging':'true', 'cluster':'noper430', 'env':'lab'}"

Execute the playbook:

cd /etc/ansible
ansible-playbook /usr/share/ansible/openshift-ansible/playbooks/byo/openshift-node/scaleup.yml

After the installation of the new nodes completes, move any hosts that have been defined in the [new_<host_type>] section into their appropriate section (but leave the [new_<host_type>] section definition itself in place, albeit empty) so that subsequent runs using this inventory file are aware of the nodes but do not handle them as new nodes.

[nodes]
...
node1.local openshift_node_labels="{'logging':'true', 'cluster':'noper430', 'env':'app'}"
node2.local openshift_node_labels="{'logging':'true', 'cluster':'noper430', 'env':'app'}"
node3.local openshift_node_labels="{'logging':'true', 'cluster':'noper430', 'env':'lab'}"

[new_nodes]

Removing a Node

https://docs.openshift.com/container-platform/latest/admin_guide/manage_nodes.html#deleting-nodes

A node is deleted using the master API, but before deleting it, all pods running on it must be evacuated. This is because when deleting a node with the API, the node is deleted from the cluster state, but the pods that exist on the node are to deleted. The pods not managed by replication controllers will become inaccessible. Pods backed by replication controllers will be rescheduled on other nodes, and the local manifest pods would need to be manually deleted.

Procedure to evacuate a pod:

Evacuate Pods from Node

Adding a new Master

TODO: https://docs.openshift.com/container-platform/3.5/install_config/adding_hosts_to_existing_cluster.html#adding-nodes-advanced