*** ysandeep|out is now known as ysandeep | 05:21 | |
*** ysandeep is now known as ysandeep|afk | 06:44 | |
*** ysandeep|afk is now known as ysandeep | 07:31 | |
*** ysandeep is now known as ysandeep|break | 10:49 | |
*** ysandeep|break is now known as ysandeep | 11:27 | |
*** ysandeep is now known as ysandeep|afk | 13:06 | |
*** ysandeep|afk is now known as ysandeep | 14:28 | |
*** ysandeep is now known as ysandeep|out | 15:38 | |
guesswhat | Anyone is using Kolla and Octavia? I need help to setup connection for worker and healthcheck | 19:16 |
---|---|---|
johnsom | People are, but I don't know how many are around the channel right now. | 19:17 |
guesswhat | Oh, Its really hard to "transfer" the solution from other deployments method than kolla.. | 19:25 |
guesswhat | I found out that hm-0 interface is working in Kolla for OVS, but its unreliable, systemd service ( https://github.com/openstack/kolla-ansible/blob/master/ansible/roles/octavia/templates/octavia-interface.service.j2 fails often , that's why there are advising not to use it.. , but there isn't bettion solution in Kolla docs | 19:28 |
guesswhat | *they are | 19:28 |
johnsom | Hmm, interesting. if you want to debug the systemd service I will look at it with you. | 19:29 |
johnsom | One thing I see is they are using DHCP, which, isn't necessary but should work fine. | 19:29 |
guesswhat | I added Restart=on-failure, cuz its failing, cuz at the boot time, there isn't usually hm-0 interface | 19:32 |
guesswhat | But I dont feel like this is correct solution | 19:32 |
guesswhat | Sometimes balancers ended in Pending Update or Error state, so its by default unreliable | 19:33 |
guesswhat | Thans, but I will have to find another soltuion | 19:33 |
guesswhat | johnsom: From Kolla docs ... Sometimes an interface used for Neutron external networking may also be used | 20:00 |
guesswhat | for other traffic. Plugging an interface directly into a bridge would prevent | 20:00 |
guesswhat | us from having a usable IP address on the interface. One solution to this issue | 20:00 |
guesswhat | is to use an intermediate Linux bridge and virtual Ethernet pair, then assign | 20:00 |
guesswhat | IP addresses on the Linux bridge. This setup is supported by | 20:00 |
guesswhat | :kayobe-doc:`Kayobe </>`. It is out of scope here, as it is non-trivial to set | 20:00 |
guesswhat | up in a persistent manner. | 20:00 |
johnsom | Hmm, yeah, with linux bridge that can be an issue. | 20:03 |
guesswhat | johnsom: what if I create external flat network just for octavia management network, how can i add port with static IP to controller to be able to reach lb-mgmt-net network? | 20:36 |
johnsom | Just like you would for any normal network port on a host right? netplan or network manager configuration in your OS. | 20:37 |
guesswhat | but this involves virtual interface, isnt it? | 20:39 |
guesswhat | i still not fully understand to ports, but basically it will generate mac address and i would be able to use that mac address in NIC on host, correct ? | 20:40 |
johnsom | Only if your controller is inside a container or something, if it's just running on a the host, you just add a network interface for the new flat network | 20:40 |
guesswhat | so its the dummy interface, which will be represneted as port in flat external network, right? | 20:41 |
guesswhat | but the interface must be added manually with same mac address that port would generate | 20:41 |
johnsom | No, it would be a real interface. | 20:41 |
johnsom | So, let's say you are running your controller processes in a VM and your compute in another VM. | 20:42 |
johnsom | You would go to your hypervisor, create a new "network" for this flat network in neutron. | 20:42 |
johnsom | You would modify your controller VM to have a port on this new network directly. The OS will see the new device and add an eth100 or ens1000 or something. | 20:43 |
johnsom | Then do the same on the compute VMs. | 20:44 |
johnsom | Then in neutron create an lb-mgmt-net network that is bound to the phys port you just created on the compute VMs. | 20:44 |
guesswhat | I have this done, problem is that this interface can not have IP address on host, so I need to somehow be able to route to this network from host | 20:45 |
johnsom | Configure Octavia to use this lb-mgmt-net, setup netplan to enable the interface on your controllers at boot and assign an IP. | 20:45 |
johnsom | Don't forget to set neutron to do DHCP on that network, or have your hypervisor do it so the amps get an IP | 20:45 |
guesswhat | Thats the problem, Kolla does not recomment setting IP for interface which is plugged to OVS bridge | 20:46 |
guesswhat | *recommend | 20:46 |
johnsom | Why not? It's just a "virtual" network interface port like your RJ45 on the back. | 20:46 |
johnsom | But you asked about a flat network, which doesn't use OVS, it uses an outside switch, hardware or provided by your hypervisor. | 20:47 |
guesswhat | Its plugged https://pastebin.com/raw/wfkfyqjP | 20:50 |
guesswhat | https://docs.openstack.org/kolla-ansible/latest/reference/networking/neutron.html#example-multiple-interfaces | 20:50 |
johnsom | Yeah, I can't help you with the kolla issues. I have not done anything with it. | 20:52 |
johnsom | Here is a basic description of a "flat" network: https://docs.rackspace.com/blog/neutron-networking-simple-flat-network/ | 20:52 |
johnsom | The later section of that doc for "configuring" may not apply here | 20:53 |
johnsom | It's also a very old doc | 20:54 |
guesswhat | Isnt possible to create NIC from external flat network to host ? For example via port? That would solve my problem... | 20:55 |
johnsom | Yeah, that is what I described above | 20:56 |
guesswhat | I need to create NIC from Openstack and assign it a static IP, then I would be able to set bind address for worker and healthcheck and maybe it will work | 20:58 |
guesswhat | Or maybe use vlan instead of flat and create vlan NIC directly from trunk vlan and somehow map it to a port in octavia network | 20:59 |
guesswhat | I am missing a part where is additional nic assigned to a port to be able to communicate with rest of the octavia network | 20:59 |
johnsom | https://docs.openstack.org/neutron/yoga/admin/intro-os-networking.html#provider-networks | 21:01 |
johnsom | https://docs.openstack.org/install-guide/launch-instance-networks-provider.html | 21:02 |
guesswhat | "A port is a connection point for attaching a single device, such as the NIC of a virtual server, to a virtual network." So the NIC must exist, its not created by Openstack | 21:02 |
johnsom | Right, it is created by either a physical network card in the host, or via a hypervisor adding a virtual network card to the VM | 21:03 |
guesswhat | So in case of flat network I have to add another NIC to VM ( 1 for flat network and 1 with static IP which is blocklisted from octavia network and somehow map a port to this NIC ). Correct? | 21:05 |
johnsom | Yes | 21:05 |
johnsom | You got it | 21:06 |
guesswhat | I think that VLAN would be better solution as it involves only one NIC (eth1) which is mapped as vlan external with range lets 100:500 . Then I can create NIC (eth1.400 ) with vlan 400 from eth1 a set a static IP to it... Octavia network would use 400 vlan tag and its the same, only difference is there is physically plugged only one NIC to the VM | 21:09 |
guesswhat | instead of two and I can use it with other tags for another networks, correct ? | 21:09 |
johnsom | Yeah, should work fine | 21:09 |
guesswhat | Of course these are virtual interfaces in my hypervisor, but using single one would be proly better solution... | 21:10 |
guesswhat | Just one more thing, what should I use for openstack port create? Should I specify IP ( Static ), MAC of eth1.400 and what about VNIC type? Direct ? | 21:11 |
guesswhat | johnsom here https://pastebin.com/raw/3jixSa8q , will it work ? | 21:49 |
guesswhat | hmm, seems that ist not possible to change MAC address, ens20 and trunk.octavia shares same MAC, not sure how to bind port for this NIC then | 21:54 |
johnsom | I'm not sure why you need to create ports in neutron for the controllers when using a provider network for the controllers. netplan should already have an interface the controllers can use | 21:58 |
guesswhat | there will be no route | 21:59 |
guesswhat | eth1.400 can not reach octavia network even if its provider network | 22:00 |
johnsom | Why not? It's a local interface so it will have an IP directly on the network | 22:00 |
guesswhat | ping -I trunk.octavia 192.168.0.176 -> From 192.168.0.10 icmp_seq=1 Destination Host Unreachable | 22:02 |
johnsom | Your controller0 host has eth1.400 interface right? Just setup the IP on it for 192.168.0.10 and you should be all set | 22:03 |
guesswhat | I have this, its even visible in my snippt | 22:05 |
johnsom | What is 192.168.0.176? | 22:05 |
johnsom | Yeah, I expanded the snippet to see. | 22:05 |
guesswhat | IP of LB on Octavia Network ( actually LB is deployed in demo net ) | 22:05 |
johnsom | You can't ping the LBs | 22:06 |
johnsom | The security group doesn't allow ICMP ping/echo | 22:06 |
guesswhat | I disabled security just for test | 22:06 |
guesswhat | This is from octavia-worker: Could not connect to instance. Retrying.: requests.exceptions.ConnectionError: HTTPSConnectionPool(host='192.168.0.176', port=9443): Max retries exceeded with url: // (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fa21074a2e0>: Failed to establish a new connection: [Errno 113] No route | 22:06 |
guesswhat | to host')) | 22:06 |
johnsom | ok. | 22:06 |
guesswhat | Ubuntu does not know how to route to octavia network, even if ens20 is vlan, external network and trunk.octavia is interface assigned with IP from octavia network range | 22:07 |
guesswhat | Maybe I would need to "physically" add interface, maybe this setup ( NIC + VNIC(VLAN) ) is not supported | 22:08 |
johnsom | So, from controller 0, "sudo ip route" doesn't show a local route for 192.168.0.0/16 ? | 22:09 |
johnsom | What does "ifconfig eth1.400 " say? | 22:09 |
guesswhat | but there is no route for 192.168.0.0/16 , who or what should set it? there isn't any gateway | 22:14 |
johnsom | Yeah, there should be no gateway | 22:15 |
johnsom | The kernel sets the route when the interface is brought up. What does your "ifconfig eth1.400" say? | 22:15 |
guesswhat | https://pastebin.com/raw/wctV3rSJ | 22:16 |
guesswhat | eth1.400 = trunk.octavia | 22:17 |
guesswhat | https://pastebin.com/raw/fifTpPSi | 22:17 |
guesswhat | see, no route | 22:18 |
guesswhat | so how should NIC route if there is no gateway set... | 22:18 |
johnsom | It's the last line. | 22:19 |
johnsom | 192.168.0.0/24 dev trunk.octavia proto kernel scope link src 192.168.0.10 | 22:19 |
johnsom | Gateways are only needed if you have a router to get to another subnet. This network doesn't need to get outside the subnet, so has no router and no gateway address to point to the router | 22:19 |
guesswhat | oh, thats true | 22:20 |
johnsom | So, this all looks correct to me. I am thinking the neutron/compute node side is the problem. | 22:20 |
guesswhat | https://ibb.co/k2DXz5c, https://ibb.co/7z2kR6y | 22:21 |
guesswhat | Maybe I need to start from scratch... | 22:23 |
johnsom | And in neutron you configured physnet2 to point to trunk.octavia? | 22:24 |
johnsom | or I guess ens20 actually | 22:24 |
johnsom | physical_interface_mappings = physnet2:ens20 | 22:25 |
johnsom | something like that | 22:25 |
guesswhat | yes | 22:26 |
guesswhat | m | 22:26 |
guesswhat | https://pastebin.com/raw/XgMkvcvr | 22:26 |
guesswhat | bridge_mappings = physnet1:br-ex1,physnet2:br-ex2 | 22:27 |
guesswhat | :network_vlan_ranges = physnet2:100:500 | 22:27 |
johnsom | Yeah, hmm. It might be interesting to setup the port on controller 1 and see if the two controllers can ping each other | 22:28 |
johnsom | since we see traffic on that port, it seems like it should be able to | 22:28 |
guesswhat | i will start again, proly i will skip octavia and will setup external network just like in this case, but with nova only | 22:29 |
johnsom | Ok | 22:31 |
guesswhat | thanks for your help | 22:35 |
Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!