mirror of
https://github.com/kubernetes-sigs/kubespray.git
synced 2026-02-01 01:28:11 -03:30
Add support for kube-vip (#8669)
Signed-off-by: Mathieu Parent <math.parent@gmail.com>
This commit is contained in:
@@ -18,6 +18,7 @@
|
||||
* [Weave](docs/weave.md)
|
||||
* [Multus](docs/multus.md)
|
||||
* Ingress
|
||||
* [kube-vip](docs/kube-vip.md)
|
||||
* [ALB Ingress](docs/ingress_controller/alb_ingress_controller.md)
|
||||
* [MetalLB](docs/metallb.md)
|
||||
* [Nginx Ingress](docs/ingress_controller/ingress_nginx.md)
|
||||
|
||||
@@ -156,6 +156,7 @@ The following tags are defined in playbooks:
|
||||
| kubeadm | Roles linked to kubeadm tasks
|
||||
| kube-apiserver | Configuring static pod kube-apiserver
|
||||
| kube-controller-manager | Configuring static pod kube-controller-manager
|
||||
| kube-vip | Installing and configuring kube-vip
|
||||
| kubectl | Installing kubectl and bash completion
|
||||
| kubelet | Configuring kubelet service
|
||||
| kube-ovn | Network plugin kube-ovn
|
||||
|
||||
@@ -29,9 +29,7 @@ configure kubelet and kube-proxy on non-master nodes to use the local internal
|
||||
loadbalancer.
|
||||
|
||||
If you choose to NOT use the local internal loadbalancer, you will need to
|
||||
configure your own loadbalancer to achieve HA. Note that deploying a
|
||||
loadbalancer is up to a user and is not covered by ansible roles in Kubespray.
|
||||
By default, it only configures a non-HA endpoint, which points to the
|
||||
use the [kube-vip](kube-vip.md) ansible role or configure your own loadbalancer to achieve HA. By default, it only configures a non-HA endpoint, which points to the
|
||||
`access_ip` or IP address of the first server node in the `kube_control_plane` group.
|
||||
It can also configure clients to use endpoints for a given loadbalancer type.
|
||||
The following diagram shows how traffic to the apiserver is directed.
|
||||
|
||||
52
docs/kube-vip.md
Normal file
52
docs/kube-vip.md
Normal file
@@ -0,0 +1,52 @@
|
||||
# kube-vip
|
||||
|
||||
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.
|
||||
|
||||
## Install
|
||||
|
||||
You have to explicitly enable the kube-vip extension:
|
||||
|
||||
```yaml
|
||||
kube_vip_enabled: true
|
||||
```
|
||||
|
||||
You also need to enable
|
||||
[kube-vip as HA, Load Balancer, or both](https://kube-vip.chipzoller.dev/docs/installation/static/#kube-vip-as-ha-load-balancer-or-both):
|
||||
|
||||
```yaml
|
||||
# HA for control-plane, requires a VIP
|
||||
kube_vip_controlplane_enabled: true
|
||||
kube_vip_address: 10.42.42.42
|
||||
loadbalancer_apiserver:
|
||||
address: "{{ kube_vip_address }}"
|
||||
port: 6443
|
||||
# kube_vip_interface: ens160
|
||||
|
||||
# LoadBalancer for services
|
||||
kube_vip_services_enabled: false
|
||||
# kube_vip_services_interface: ens320
|
||||
```
|
||||
|
||||
> Note: When using `kube-vip` as LoadBalancer for services,
|
||||
[additionnal manual steps](https://kube-vip.chipzoller.dev/docs/usage/cloud-provider/)
|
||||
are needed.
|
||||
|
||||
If using [ARP mode](https://kube-vip.chipzoller.dev/docs/installation/static/#arp) :
|
||||
|
||||
```yaml
|
||||
kube_vip_arp_enabled: true
|
||||
```
|
||||
|
||||
If using [BGP mode](https://kube-vip.chipzoller.dev/docs/installation/static/#bgp) :
|
||||
|
||||
```yaml
|
||||
kube_vip_bgp_enabled: true
|
||||
kube_vip_local_as: 65000
|
||||
kube_vip_bgp_routerid: 192.168.0.2
|
||||
kube_vip_bgppeers:
|
||||
- 192.168.0.10:65000::false
|
||||
- 192.168.0.11:65000::false
|
||||
# kube_vip_bgp_peeraddress:
|
||||
# kube_vip_bgp_peerpass:
|
||||
# kube_vip_bgp_peeras:
|
||||
```
|
||||
Reference in New Issue
Block a user