This message was deleted.
# harvester
a
This message was deleted.
b
Are you on the same VLAN/network as the mgmnt nic?
p
Hi. I use the LB to then point to an ingress in Kubernetes on those servers. So, in my hosts file, I would have 10.0.1.70 - app.my.org If I replace the IP by the IP or any of the 3 VMs, then it works fine
I guess something between the LB and the VMs isn't working
Maybe something else that's relevant - I recently had to delete and re-add my second node, using the same name and ip address and all that
And accessing the LB for the Harvester UI works fine
Ah, you gave a good hint. The VMs cannot ping the harvester nodes (.60,.61,.62)
The VMs can ping each other though
b
Yeah from what I recall, the LB pod/object gets attached to the mgmt NIC so traffic has to get routed through there, even if you have other VLANs/networks that are available as a VMNetwork.
so basically you have to have a host network and VLAN that's fully addressable from the mgmt network.
p
Copy code
6: mgmt-br: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether d4:f5:ef:63:58:2c brd ff:ff:ff:ff:ff:ff
    inet 10.0.1.61/16 brd 10.0.255.255 scope global mgmt-br
       valid_lft forever preferred_lft forever
    inet 10.0.1.69/32 scope global mgmt-br
       valid_lft forever preferred_lft forever
    inet 10.0.1.60/32 scope global mgmt-br
       valid_lft forever preferred_lft forever
    inet 10.0.1.70/32 scope global mgmt-br
The harvester hosts can reach the VMs though, and the LB IPs (.60,69,70) are also attached to the mgmt
b
Not just reach teh VMs, but reach them through
mgmt-br
Are you running the VMs off the mgmt network or some other network?
p
The VMs are on a separate vm/cluster network. Though what puzzles me the most is that it worked absolutely fine until recently
If I turn off all NICs on the server except the "mgmt" one (10.0.1.61/62) then the ping from host to VM still works
Copy code
traceroute to 10.5.106.77 (10.5.106.77), 30 hops max, 60 byte packets
 1  10.0.1.32 (10.0.1.32)  0.689 ms  0.622 ms  0.590 ms
 2  10.5.106.77 (10.5.106.77)  0.565 ms  0.539 ms  0.513 ms
This is from a host to a VM - passes through the gateway
Copy code
opensuse@test:~> ip route show
default via 10.5.106.254 dev eth0 
10.5.106.0/24 dev eth0 proto kernel scope link src 10.5.106.77
That's the correct gateway for the VM to reach the servers too But a traceroute to a host doesn't even pass through there
Copy code
opensuse@test:~> sudo traceroute 10.0.1.61  
traceroute to 10.0.1.61 (10.0.1.61), 30 hops max, 60 byte packets
 1  * * *
 2  * * *
Created a test VM - for network it's only on mgmt in bridge. That one works to ping a host. So I guess I have to add the other VMs to the mgmt network as well, with that network in bridge
Well my VMs won't take IPs for both mgmt and my own vlan. Either way, this has only recently become a case. My LB has been load balancing for months so far and now they just don't.
Harvester UI says that there are 2 IPs on the VM. Good. In the VM, I have 2 interfaces, eth0 and eth1. Good. eth0 is down by default. Bad. eth1 has the VLAN IP. VM still cannot reach hosts. Host cannot ping the mgmt IP. Loadbalancer still times out.
Worth mentioning! Harvester 1 has the following routes:
Harvester 2, which got deleted and subsequently re-added, has only the following:
This is the svc for my lb.
Copy code
harvester-1:/home/rancher # kubectl describe svc rancher-lb -n rancher-mgmt
Name:                     rancher-lb
Namespace:                rancher-mgmt
Labels:                   <http://loadbalancer.harvesterhci.io/servicelb=true|loadbalancer.harvesterhci.io/servicelb=true>
Annotations:              <http://kube-vip.io/ignore-service-security|kube-vip.io/ignore-service-security>: true
                          <http://kube-vip.io/loadbalancerIPs|kube-vip.io/loadbalancerIPs>: 10.0.1.70
                          <http://kube-vip.io/vipHost|kube-vip.io/vipHost>: harvester-1
Selector:                 <none>
Type:                     LoadBalancer
IP Family Policy:         SingleStack
IP Families:              IPv4
IP:                       10.53.1.100
IPs:                      10.53.1.100
IP:                       10.0.1.70
LoadBalancer Ingress:     10.0.1.70
Port:                     http  80/TCP
TargetPort:               80/TCP
NodePort:                 http  32390/TCP
Endpoints:                <none>
Port:                     https  443/TCP
TargetPort:               443/TCP
NodePort:                 https  32047/TCP
Endpoints:                <none>
Port:                     kubeapi  6443/TCP
TargetPort:               6443/TCP
NodePort:                 kubeapi  32108/TCP
Endpoints:                <none>
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>
Things here which are missing from, say, the ingress-expose svc: • selector is none • there are two values for IP? • No endpoint values. For the ingress-expose, the service's endpoints are the pod IPs for the nginx ingress