Tuesday, 2019-07-02

*** hongbin has joined #openstack-kuryr01:16
*** ccamposr__ has joined #openstack-kuryr02:27
*** ccamposr has quit IRC02:29
*** hongbin has quit IRC04:21
openstackgerritNayan Deshmukh proposed openstack/kuryr-kubernetes master: Count cni DEL failure as well to mark it unhealthy  https://review.opendev.org/66859404:42
*** gcheresh_ has joined #openstack-kuryr04:45
*** gcheresh_ has quit IRC04:54
openstackgerritLuis Tomas Bolivar proposed openstack/kuryr-kubernetes stable/stein: Fix adding pods with host networking to svc in L2 mode  https://review.opendev.org/66860806:28
openstackgerritLuis Tomas Bolivar proposed openstack/kuryr-kubernetes stable/rocky: Fix adding pods with host networking to svc in L2 mode  https://review.opendev.org/66860906:29
openstackgerritLuis Tomas Bolivar proposed openstack/kuryr-kubernetes stable/stein: Support None from Octavia get_api_major_version()  https://review.opendev.org/66861406:44
*** gcheresh_ has joined #openstack-kuryr06:57
*** ccamposr has joined #openstack-kuryr07:02
*** ccamposr__ has quit IRC07:04
aperevalovhi, has anybody encountered with a problem when k8s watch api was too slow? I found that time since kuryr-controller annotates VIF after port status became ACTIVE, till cni-daemon receives this VIF, sometimes up to 16 seconds. But average range is 4-15 seconds for this operation. There wasn't overload of k8s at this time.07:33
ltomasboaperevalov, nested or neutron vif driver?07:39
aperevalovneutron_vif, but I think it doesn't matter07:39
aperevalovit's about RPC through k8s (etcd) watch API07:40
ltomasboaperevalov, ahh, you mean after the controller actually sets the port to active, right?07:40
ltomasbountil the kuryr-cni reads it, and finishes07:40
aperevalovright, looks like watch API in k8s is not working immediately. Or I can't tweak it correctly.07:41
aperevalovI understand that the main advantage of using k8s as RPC was keeping state, for example, after CNI-Daemon or controller restart, we can continue to work. But it feels like too slow RPC.07:43
aperevalovor RPC is not right term here, just interconnection.07:43
dulekaperevalov: The point is we're polling Neutron until port becomes ACTIVE.07:55
dulekaperevalov: And that's probably the longest wait.07:55
dulekaperevalov: It's like this: pod created->notification to kuryr-controller->VIF creation->annotation->kuryr-daemon notices annotation->kuryr-daemon binds port->kuryr-controller polls Neutron API until port becomes ACTIVE->kuryr-controller annotates pod marking that port is active->kuryr-daemon returns to CNI->kubelet marks pod as having an IP.07:57
*** pcaruana has joined #openstack-kuryr08:01
*** maysams has joined #openstack-kuryr08:02
ltomasboaperevalov, dulek: I understood that aperevalov was refering to the last part, from when kuryr-controller annotates the port as active (not when it annotates it the first time with status down)08:08
ltomasbotill the kuryr-cni realises is active and exits08:08
ltomasboif your at considering from t he first annotation, then the waiting is normal and it will be related to the time it takes neutron to actaully set the port to active08:09
dulekltomasbo: The last part shouldn't differ too much from other parts, e.g. waiting for kuryr-controller to notice the pod.08:13
ltomasboyep08:13
dulekMaybe CNI (like K8s CNI) screws this up and it takes it longer to return to kubelet?08:13
aperevalovwhat is the usual time in your installation between annotation of active state till CNI-Daemon reads it from k8s?08:38
ltomasboaperevalov, I guess dulek's question is if you are measuring since the pod gets annotated with the port, or since the annorations gets updated to reflect the new (ACTIVE) status of the pod08:49
ltomasboport08:49
aperevalovI told about interval since point of time when annotation of ACTIVE state in kuryr-controller happend, till CNI-Daemon was notified (and yes returned output to cni-plugin -> kubelet).08:52
dulekaperevalov: I never observed a longer delay there.08:53
openstackgerritLuis Tomas Bolivar proposed openstack/kuryr-tempest-plugin master: Ensure empty/fail replies are not counted  https://review.opendev.org/66852808:53
aperevalovok, I'll do a synthetic test, by curl ;) to make sure the root cause in k8s.08:54
dulekaperevalov: Maybe you have something strange in this config option: CONF.cni_daemon.vif_annotation_timeout ?08:54
dulekaperevalov: Ah no, sorry, it seems like the polling time is one second there, hardcoded.08:55
*** danil has joined #openstack-kuryr08:59
dulekaperevalov, danil: You're aware of this issue: https://bugs.launchpad.net/kuryr-kubernetes/+bug/1835039 ?10:25
openstackLaunchpad bug 1835039 in kuryr-kubernetes "CNI returns just one interface when actually setting multiple up" [Medium,Confirmed]10:25
*** aperevalov has quit IRC10:37
*** aperevalov1 has joined #openstack-kuryr10:48
aperevalov1dulek: no I didn't see this issue, k8s support chain of cni plugins, and get IP from the latest in chain. Also need to clarify what kind of CNI spec version ;)10:49
dulekEh, korzen isn't even hereā€¦10:55
dulekaperevalov1: It's one of the latest, 0.4 probably. My colleague has issues with that + virtlet.10:56
aperevalov1Also, I introduced bug there in  607a249e10f59aebc64fcada1d4e9da693624acc or it was later. The bug is following when cniplugin prints nonempty sandbox it means the name of the interface inside container, if empty it means name of interface on the host. Last time I saw CNI output it seems it was vice versa... hmm, I'll check it now.11:02
*** korzen has joined #openstack-kuryr11:04
aperevalov1oops, Interfaces:[{Name:tap70d0746d-ac ... Sandbox:d4438f1937254d789d8ba1952297d34fd0786daa7bb93b313252514002b86e58}], ...11:04
aperevalov1Name of the interface as on the host, need put empty sandbox in this case or eth0 as container's interface name11:04
aperevalov1It wasn't affected k8s, until I removed nsenter approach from there.11:05
korzenI see that multiple interfaces are working with kubelet, but I am integrating kuryr with Virtlet, and there are drogons ;)11:07
korzenI have made some changes to return multiple ifs but then I have spotted that tapXX is returned, instead of ethX11:09
aperevalov1yes, tapXX when sandbox is empty11:09
korzenvirtlet is smart enough not to trust CNI info and is reworking the CNI output11:13
korzenso I ended up with 4 interfaces: tapX, tapY, eth0, eth1 instead of 2 ;)11:13
korzeninstead of two interfaces11:14
aperevalov1ok, I asked Dan Williams about such case, he said it's not a problem for k8s to work with such result.11:17
korzenmy understanding is that kuryr should return ethX interfaces with sandbox fill with id11:21
aperevalov1yes, it's correct11:21
*** rh-jelabarre has joined #openstack-kuryr11:39
openstackgerritLuis Tomas Bolivar proposed openstack/kuryr-kubernetes master: Speed up pools prepopulation on namespace creation  https://review.opendev.org/66866112:05
*** korzen has quit IRC12:47
*** maysams has quit IRC13:27
*** ndesh has quit IRC13:55
*** danil has quit IRC14:06
*** maysams has joined #openstack-kuryr14:26
*** gcheresh_ has quit IRC14:55
*** aperevalov1 has quit IRC14:59
openstackgerritLuis Tomas Bolivar proposed openstack/kuryr-tempest-plugin master: Ensure empty/fail replies are not counted  https://review.opendev.org/66852815:25
openstackgerritLuis Tomas Bolivar proposed openstack/kuryr-tempest-plugin master: Ensure empty/fail replies are not counted  https://review.opendev.org/66852815:32
*** gcheresh_ has joined #openstack-kuryr17:11
*** gcheresh_ has quit IRC17:51
openstackgerritMaysa de Macedo Souza proposed openstack/kuryr-tempest-plugin master: Test recreate namespace and pod  https://review.opendev.org/66873718:41
openstackgerritMaysa de Macedo Souza proposed openstack/kuryr-kubernetes master: Fix fail to recreate namespace when previous KuryrNet CRD is not deleted  https://review.opendev.org/66685018:57
*** gcheresh_ has joined #openstack-kuryr18:59
openstackgerritMaysa de Macedo Souza proposed openstack/kuryr-kubernetes master: Fix fail to recreate namespace when previous KuryrNet CRD is not deleted  https://review.opendev.org/66685019:04
*** gcheresh_ has quit IRC19:30
*** maysams has quit IRC20:31
*** pcaruana has quit IRC20:58

Generated by irclog2html.py 2.15.3 by Marius Gedminas - find it at mg.pov.lt!