Skip to content

Instantly share code, notes, and snippets.

@picar
Created October 6, 2024 23:06
Show Gist options
  • Save picar/fe3aee9361d7a0b18d05d4d026705905 to your computer and use it in GitHub Desktop.
Save picar/fe3aee9361d7a0b18d05d4d026705905 to your computer and use it in GitHub Desktop.
Kube-vip test
export INTERFACE=ens33
export VIP=192.168.1.6
KVVERSION=$(curl -sL https://api.github.com/repos/kube-vip/kube-vip/releases | jq -r ".[0].name")
echo $KVVERSION
alias kube-vip="ctr run --rm --net-host ghcr.io/kube-vip/kube-vip:$KVVERSION vip /kube-vip"
ctr images pull ghcr.io/kube-vip/kube-vip:$KVVERSION
kube-vip manifest pod --interface $INTERFACE --vip $VIP --controlplane --arp --leaderElection | tee /etc/kubernetes/manifests/kube-vip.yaml
root@k8s02:~# cat /etc/kubernetes/manifests/kube-vip.yaml
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
name: kube-vip
namespace: kube-system
spec:
containers:
- args:
- manager
env:
- name: vip_arp
value: "true"
- name: port
value: "6443"
- name: vip_nodename
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: vip_interface
value: ens33
- name: dns_mode
value: first
- name: cp_enable
value: "true"
- name: cp_namespace
value: kube-system
- name: vip_leaderelection
value: "true"
- name: vip_leasename
value: plndr-cp-lock
- name: vip_leaseduration
value: "5"
- name: vip_renewdeadline
value: "3"
- name: vip_retryperiod
value: "1"
- name: vip_address
value: 192.168.1.6
- name: prometheus_server
value: :2112
image: ghcr.io/kube-vip/kube-vip:v0.8.3
imagePullPolicy: IfNotPresent
name: kube-vip
resources: {}
securityContext:
capabilities:
add:
- NET_ADMIN
- NET_RAW
volumeMounts:
- mountPath: /etc/kubernetes/admin.conf
name: kubeconfig
hostAliases:
- hostnames:
- kubernetes
ip: 127.0.0.1
hostNetwork: true
volumes:
- hostPath:
path: /etc/kubernetes/admin.conf
name: kubeconfig
status: {}
root@k8s02:~# kubectl get po -n kube-system
NAME READY STATUS RESTARTS AGE
cilium-envoy-tqdts 1/1 Running 0 3d1h
cilium-operator-5874db7569-nh4s2 1/1 Running 0 3d1h
cilium-w9nz4 1/1 Running 0 3d1h
coredns-7c65d6cfc9-tc58g 1/1 Running 0 3d1h
coredns-7c65d6cfc9-v4gdb 1/1 Running 0 3d1h
etcd-k8s02 1/1 Running 0 3d1h
kube-apiserver-k8s02 1/1 Running 0 3d1h
kube-controller-manager-k8s02 1/1 Running 0 3d1h
kube-proxy-2r6gb 1/1 Running 0 3d1h
kube-scheduler-k8s02 1/1 Running 0 3d1h
kube-vip-k8s02 1/1 Running 0 3m56s
root@k8s02:~# kubectl logs -n kube-system kube-vip-k8s02
time="2024-10-06T22:54:36Z" level=info msg="Starting kube-vip.io [v0.8.3]"
time="2024-10-06T22:54:36Z" level=info msg="namespace [kube-system], Mode: [ARP], Features(s): Control Plane:[true], Services:[false]"
time="2024-10-06T22:54:36Z" level=info msg="prometheus HTTP server started"
time="2024-10-06T22:54:36Z" level=info msg="Using node name [k8s02]"
time="2024-10-06T22:54:36Z" level=info msg="Starting Kube-vip Manager with the ARP engine"
time="2024-10-06T22:54:36Z" level=info msg="Beginning cluster membership, namespace [kube-system], lock name [plndr-cp-lock], id [k8s02]"
I1006 22:54:36.634758 1 leaderelection.go:250] attempting to acquire leader lease kube-system/plndr-cp-lock...
I1006 22:54:36.641957 1 leaderelection.go:260] successfully acquired lease kube-system/plndr-cp-lock
time="2024-10-06T22:54:36Z" level=info msg="Node [k8s02] is assuming leadership of the cluster"
time="2024-10-06T22:54:36Z" level=info msg="Gratuitous Arp broadcast will repeat every 3 seconds for [192.168.1.6/ens33]
root@k8s02:~# curl -isecure https://192.168.1.6:6443
root@k8s02:~#
root@k8s02:~# ping 192.168.1.6
PING 192.168.1.6 (192.168.1.6) 56(84) bytes of data.
64 bytes from 192.168.1.6: icmp_seq=1 ttl=64 time=0.096 ms
64 bytes from 192.168.1.6: icmp_seq=2 ttl=64 time=0.075 ms
^C
--- 192.168.1.6 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1009ms
rtt min/avg/max/mdev = 0.075/0.085/0.096/0.010 ms
root@k8s02:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:77:6d:1c brd ff:ff:ff:ff:ff:ff
altname enp2s1
inet 192.168.1.5/24 brd 192.168.1.255 scope global ens33
valid_lft forever preferred_lft forever
inet 192.168.1.6/32 scope global ens33
valid_lft forever preferred_lft forever
inet6 2001:569:7d39:a200:20c:29ff:fe77:6d1c/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 7500sec preferred_lft 7200sec
inet6 fe80::20c:29ff:fe77:6d1c/64 scope link
valid_lft forever preferred_lft forever
3: cilium_net@cilium_host: <BROADCAST,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 76:56:cf:16:53:2d brd ff:ff:ff:ff:ff:ff
inet6 fe80::7456:cfff:fe16:532d/64 scope link
valid_lft forever preferred_lft forever
4: cilium_host@cilium_net: <BROADCAST,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 12:be:8e:cb:88:48 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.25/32 scope global cilium_host
valid_lft forever preferred_lft forever
inet6 fe80::10be:8eff:fecb:8848/64 scope link
valid_lft forever preferred_lft forever
5: cilium_vxlan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default
link/ether 2e:1c:20:4a:6e:59 brd ff:ff:ff:ff:ff:ff
inet6 fe80::2c1c:20ff:fe4a:6e59/64 scope link
valid_lft forever preferred_lft forever
7: lxc_health@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether d6:db:07:65:f2:36 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet6 fe80::d4db:7ff:fe65:f236/64 scope link
valid_lft forever preferred_lft forever
9: lxcdf1b1c7dc36e@if8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether fe:a9:d8:d2:41:85 brd ff:ff:ff:ff:ff:ff link-netns cni-b6d59f41-2984-a8eb-53ea-24f2b034736c
inet6 fe80::fca9:d8ff:fed2:4185/64 scope link
valid_lft forever preferred_lft forever
11: lxcea8e8c273bb9@if10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 22:ed:39:9a:64:aa brd ff:ff:ff:ff:ff:ff link-netns cni-a029f450-ab9b-c509-d8e8-4b9ad5808b0a
inet6 fe80::20ed:39ff:fe9a:64aa/64 scope link
valid_lft forever preferred_lft forever
13: lxcb7b7a24746ae@if12: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 2e:72:99:d8:d0:bb brd ff:ff:ff:ff:ff:ff link-netns cni-af29fa3b-1712-a06d-a6fc-e042d0d84f51
inet6 fe80::2c72:99ff:fed8:d0bb/64 scope link
valid_lft forever preferred_lft forever
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment