Add some work on loadbalancer

This commit is contained in:
Adrien Reslinger 2019-07-19 09:06:44 +02:00
parent 507bdfca63
commit b2e96c59da
3 changed files with 47 additions and 2 deletions

View file

@ -19,7 +19,7 @@
with_items: with_items:
- { lbip: '{{ lbip_kubeapiserver }}', state: "MASTER", interface: '{{ lb_interface }}', auth_pass: '{{ lb_auth_pass }}' } - { lbip: '{{ lbip_kubeapiserver }}', state: "MASTER", interface: '{{ lb_interface }}', auth_pass: '{{ lb_auth_pass }}' }
when: when:
- groups['Kube-masters'][0] == ansible_hostname - groups['KubernetesMasters'][0] == ansible_hostname
notify: Restart keepalived notify: Restart keepalived
- name: Install keepalived config file - name: Install keepalived config file
template: template:
@ -28,5 +28,5 @@
with_items: with_items:
- { lbip: '{{ lbip_kubeapiserver }}', state: "BACKUP", interface: '{{ lb_interface }}', auth_pass: '{{ lb_auth_pass }}' } - { lbip: '{{ lbip_kubeapiserver }}', state: "BACKUP", interface: '{{ lb_interface }}', auth_pass: '{{ lb_auth_pass }}' }
when: when:
- not groups['Kube-masters'][0] == ansible_hostname - not groups['KubernetesMasters'][0] == ansible_hostname
notify: Restart keepalived notify: Restart keepalived

View file

@ -0,0 +1,12 @@
#!/bin/sh
errorExit() {
echo "*** $*" 1>&2
exit 1
}
curl --silent --max-time 2 --insecure https://localhost:6443/ -o /dev/null || errorExit "Error GET https://localhost:6443/"
if ip addr | grep -q {{ lbip_kubeapiserver }}; then
curl --silent --max-time 2 --insecure https://{{ lbip_kubeapiserver }}:6443/ -o /dev/null || errorExit "Error GET https://{{ lbip_kubeapiserver }}:6443/"
fi

View file

@ -0,0 +1,33 @@
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL
}
vrrp_script check_apiserver {
script "/etc/keepalived/check_apiserver.sh"
interval 3
weight -2
fall 10
rise 2
}
vrrp_instance VI_1 {
state {{ item.state }}
interface {{ item.interface }}
virtual_router_id 51
{% if item.state == "MASTER" %}
priority 101
{% elif item.state == "BACKUP" %}
priority 100
{% endif %}
authentication {
auth_type PASS
auth_pass {{ item.auth_pass }}
}
virtual_ipaddress {
{{ item.lbip }}
}
track_script {
check_apiserver
}
}