VIP Reservation¶
In some scenarios we want to dynamically reserve part of the IP but not assign it to Pods but to other infrastructure e.g:
- Kubernetes nested Kubernetes scenarios where the upper Kubernetes uses the Underlay network take up the available addresses of the underlying Subnet.
- LB or other network infrastructure requires the use of an IP within a Subnet.
Create Random Address VIP¶
If you just want to set aside a number of IPs and have no requirement for the IP addresses themselves, you can use the following yaml to create them:
apiVersion: kubeovn.io/v1
kind: Vip
metadata:
name: vip-dynamic-01
spec:
subnet: ovn-default
type: ""
subnet
: reserve the IP from this Subnet.type
: Currently, two types are supported. If the value is empty, it indicates that it is only used for occupying ip addresses of ipam.switch_lb_vip
The front-end vip address and back-end ip address of the switch lb must be on the same subnet.
Query the VIP after creation.
# kubectl get vip
NAME V4IP PV4IP MAC PMAC V6IP PV6IP SUBNET READY
vip-dynamic-01 10.16.0.12 00:00:00:F0:DB:25 ovn-default true
It can be seen that the VIP is assigned the IP address 10.16.0.12
, which can later be used by other network infrastructures.
Create a fixed address VIP¶
The IP address of the reserved VIP can be fixed using the following yaml:
apiVersion: kubeovn.io/v1
kind: Vip
metadata:
name: static-vip01
spec:
subnet: ovn-default
V4ip: "10.16.0.121"
subnet
: reserve the IP from this Subnet.V4ip
: A fixed-assigned IP address that should within the CIDR range ofsubnet
.
Query the VIP after creation:
# kubectl get vip
NAME V4IP PV4IP MAC PMAC V6IP PV6IP SUBNET READY
static-vip01 10.16.0.121 00:00:00:F0:DB:26 ovn-default true
It can be seen that the VIP has been assigned the expected IP address.
StatefulSet & Kubevirt VM keep VIP¶
Specify for StatefulSet
and VM
resources, these Pods their owned will reuse the VIP when these Pods recreating.
VM keep VIP must be enable the keep-vm-ip
param in kube-ovn-controller
. Refer Kubevirt VM Fixed Address Settings
微信群 Slack Twitter Support Meeting