Skip to content

Commit

Permalink
kube-vip shoud fail if kube_proxy_strict_arp is false in arp mod (kub…
Browse files Browse the repository at this point in the history
…ernetes-sigs#9223)

* fix-kube-vip-strict-arp

* fix-kube-vip-strict-arp
  • Loading branch information
yankay authored and rptaylor committed Aug 30, 2022
1 parent 3a2fcee commit 7ca642a
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 2 deletions.
8 changes: 8 additions & 0 deletions docs/kube-vip.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@

kube-vip provides Kubernetes clusters with a virtual IP and load balancer for both the control plane (for building a highly-available cluster) and Kubernetes Services of type LoadBalancer without relying on any external hardware or software.

## Prerequisites

You have to configure `kube_proxy_strict_arp` when the kube_proxy_mode is `ipvs` and kube-vip ARP is enabled.

```yaml
kube_proxy_strict_arp: true
```
## Install
You have to explicitly enable the kube-vip extension:
Expand Down
2 changes: 1 addition & 1 deletion inventory/sample/group_vars/k8s_cluster/k8s-cluster.yml
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ kube_apiserver_port: 6443 # (https)
kube_proxy_mode: ipvs

# configure arp_ignore and arp_announce to avoid answering ARP queries from kube-ipvs0 interface
# must be set to true for MetalLB to work
# must be set to true for MetalLB, kube-vip(ARP enabled) to work
kube_proxy_strict_arp: false

# A string slice of values which specify the addresses to use for NodePorts.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ kube_proxy_exclude_cidrs: []
kube_proxy_scheduler: rr

# configure arp_ignore and arp_announce to avoid answering ARP queries from kube-ipvs0 interface
# must be set to true for MetalLB to work
# must be set to true for MetalLB, kube-vip(ARP enabled) to work
kube_proxy_strict_arp: false

# kube_proxy_tcp_timeout is the timeout value used for idle IPVS TCP sessions.
Expand Down
7 changes: 7 additions & 0 deletions roles/kubernetes/node/tasks/loadbalancer/kube-vip.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
---
- name: kube-vip | Check cluster settings for kube-vip
fail:
msg: "kube-vip require kube_proxy_strict_arp = true, see https://github.com/kube-vip/kube-vip/blob/main/docs/kubernetes/arp/index.md"
when:
- kube_proxy_mode == 'ipvs' and not kube_proxy_strict_arp
- kube_vip_arp_enabled

- name: kube-vip | Write static pod
template:
src: manifests/kube-vip.manifest.j2
Expand Down

0 comments on commit 7ca642a

Please sign in to comment.