Skip to content
Snippets Groups Projects
Unverified Commit 32a6ca4f authored by Rong Zhang's avatar Rong Zhang Committed by GitHub
Browse files

Merge pull request #2948 from qeqar/remove-node-limit

move node selection from --limit to --extra-vars=node<nodename>"
parents 62df6ac7 af635ff3
Branches
Tags
No related merge requests found
...@@ -51,11 +51,26 @@ Remove nodes ...@@ -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 \ ansible-playbook -i inventory/mycluster/hosts.ini remove-node.yml -b -v \
--private-key=~/.ssh/private_key --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 \
--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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment