Merge pull request #2948 from qeqar/remove-node-limit
move node selection from --limit to --extra-vars=node<nodename>"
This commit is contained in:
commit
32a6ca4fd6
4 changed files with 22 additions and 7 deletions
|
@ -51,11 +51,26 @@ Remove nodes
|
||||||
|
|
||||||
You may want to remove **worker** nodes to your existing cluster. This can be done by re-running the `remove-node.yml` playbook. First, all nodes will be drained, then stop some kubernetes services and delete some certificates, and finally execute the kubectl command to delete these nodes. This can be combined with the add node function, This is generally helpful when doing something like autoscaling your clusters. Of course if a node is not working, you can remove the node and install it again.
|
You may want to remove **worker** nodes to your existing cluster. This can be done by re-running the `remove-node.yml` playbook. First, all nodes will be drained, then stop some kubernetes services and delete some certificates, and finally execute the kubectl command to delete these nodes. This can be combined with the add node function, This is generally helpful when doing something like autoscaling your clusters. Of course if a node is not working, you can remove the node and install it again.
|
||||||
|
|
||||||
- Add worker nodes to the list under kube-node if you want to delete them (or utilize a [dynamic inventory](https://docs.ansible.com/ansible/intro_dynamic_inventory.html)).
|
Add worker nodes to the list under kube-node if you want to delete them (or utilize a [dynamic inventory](https://docs.ansible.com/ansible/intro_dynamic_inventory.html)).
|
||||||
- Run the ansible-playbook command, substituting `remove-node.yml`:
|
|
||||||
|
ansible-playbook -i inventory/mycluster/hosts.ini remove-node.yml -b -v \
|
||||||
|
--private-key=~/.ssh/private_key
|
||||||
|
|
||||||
|
|
||||||
|
We support two ways to select the nodes:
|
||||||
|
|
||||||
|
- Use `--extra-vars "node=<nodename>,<nodename2>"` to select the node you want to delete.
|
||||||
```
|
```
|
||||||
ansible-playbook -i inventory/mycluster/hosts.ini remove-node.yml -b -v \
|
ansible-playbook -i inventory/mycluster/hosts.ini remove-node.yml -b -v \
|
||||||
--private-key=~/.ssh/private_key
|
--private-key=~/.ssh/private_key \
|
||||||
|
--extra-vars "node=nodename,nodename2"
|
||||||
|
```
|
||||||
|
or
|
||||||
|
- Use `--limit nodename,nodename2` to select the node
|
||||||
|
```
|
||||||
|
ansible-playbook -i inventory/mycluster/hosts.ini remove-node.yml -b -v \
|
||||||
|
--private-key=~/.ssh/private_key \
|
||||||
|
--limit nodename,nodename2"
|
||||||
```
|
```
|
||||||
|
|
||||||
Connecting to Kubernetes
|
Connecting to Kubernetes
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
ansible_ssh_pipelining: true
|
ansible_ssh_pipelining: true
|
||||||
gather_facts: true
|
gather_facts: true
|
||||||
|
|
||||||
- hosts: etcd:k8s-cluster:vault:calico-rr
|
- hosts: "{{ node | default('etcd:k8s-cluster:vault:calico-rr') }}"
|
||||||
vars_prompt:
|
vars_prompt:
|
||||||
name: "delete_nodes_confirmation"
|
name: "delete_nodes_confirmation"
|
||||||
prompt: "Are you sure you want to delete nodes state? Type 'yes' to delete nodes."
|
prompt: "Are you sure you want to delete nodes state? Type 'yes' to delete nodes."
|
||||||
|
@ -22,7 +22,7 @@
|
||||||
roles:
|
roles:
|
||||||
- { role: remove-node/pre-remove, tags: pre-remove }
|
- { role: remove-node/pre-remove, tags: pre-remove }
|
||||||
|
|
||||||
- hosts: kube-node
|
- hosts: "{{ node | default('kube-node') }}"
|
||||||
roles:
|
roles:
|
||||||
- { role: kubespray-defaults }
|
- { role: kubespray-defaults }
|
||||||
- { role: reset, tags: reset }
|
- { role: reset, tags: reset }
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
- name: Delete node
|
- name: Delete node
|
||||||
command: kubectl delete node {{ item }}
|
command: kubectl delete node {{ item }}
|
||||||
with_items:
|
with_items:
|
||||||
- "{{ groups['kube-node'] }}"
|
- "{{ node.split(',') | default(groups['kube-node']) }}"
|
||||||
delegate_to: "{{ groups['kube-master']|first }}"
|
delegate_to: "{{ groups['kube-master']|first }}"
|
||||||
run_once: true
|
run_once: true
|
||||||
ignore_errors: yes
|
ignore_errors: yes
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
--timeout {{ drain_timeout }}
|
--timeout {{ drain_timeout }}
|
||||||
--delete-local-data {{ item }}
|
--delete-local-data {{ item }}
|
||||||
with_items:
|
with_items:
|
||||||
- "{{ groups['kube-node'] }}"
|
- "{{ node.split(',') | default(groups['kube-node']) }}"
|
||||||
failed_when: false
|
failed_when: false
|
||||||
delegate_to: "{{ groups['kube-master']|first }}"
|
delegate_to: "{{ groups['kube-master']|first }}"
|
||||||
run_once: true
|
run_once: true
|
||||||
|
|
Loading…
Reference in a new issue