| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2019-10-30 | |||
| 21:16:24 | mriedem | dansmith: i think it might be, we've had to dig into the ksa code a few times to answer that | |
| 21:16:44 | dansmith | I'd kindof doubt it.. figure it'd fail the client, mark the server, next request doesn't include the bad server | |
| 21:16:56 | dansmith | which means if we don't retry we propagate the failure up | |
| 21:17:18 | dansmith | which is fine in the trivial case, but not so much when we're making multiple calls as part of a complex operation, like against cinder or neutron | |
| 21:17:39 | dansmith | mriedem: might be what, arbitrary? | |
| 21:17:45 | dansmith | or might be constrained? | |
| 21:18:32 | dansmith | based on the description in that spec, though, it tries them in order, so you'd hammer internal1 until it fails, and then try internal2, it sounds like | |
| 21:18:37 | dansmith | which wouldn't be what you'd want really | |
| 21:21:26 | openstackgerrit | Eric Fried proposed openstack/nova master: Deprecate [glance]api_servers https://review.opendev.org/692227 | |
| 21:21:28 | efried | dansmith: ^ | |
| 21:21:28 | mriedem | dansmith: i think valid_interfaces is arbitrary but i've had to look this up multiple times in the ksa code | |
| 21:21:38 | dansmith | efried: thanks | |
| 21:21:50 | efried | dansmith: no, valid_interfaces is public/private/internal only | |
| 21:21:59 | efried | I think they can have 'URL' suffixes for legacy reasons | |
| 21:22:01 | mriedem | also, on that note in the spec for api_servers, i want to say the godaddy or smorrison made a point that they still really needed that when the spec was being reviewed | |
| 21:22:48 | dansmith | mriedem: yeah, I *think* people are going to be quite unhappy about it, but we'll see | |
| 21:22:56 | mriedem | might have been in the ML, i don't see it in review comments | |
| 21:22:59 | efried | "really needed" meaning it was easier for us to continue to support it than it was for them to stop relying on our shoddy load balancing hack | |
| 21:24:27 | efried | I'm having trouble finding sympathy for "wah, I don't want to set up a load balancer in my cloud" from someone who has enough resources to have multiple glance API endpoints in the first place. | |
| 21:24:35 | efried | Isn't there an openstack project that does load balancing for you? | |
| 21:24:50 | dansmith | efried: a six-node mini cloud would still have three controllers in our setups | |
| 21:25:01 | mriedem | efried: are you thinking of octavia? | |
| 21:25:10 | dansmith | efried: we don't deploy less than three controllers (and thus glance apis) no matter how big or small your cloud is, which means it's *always* an issue | |
| 21:25:25 | efried | ...yes, it looks like I may be thinking of octavia | |
| 21:25:39 | mriedem | i don't know much about octavia, but doesn't that spawn VMs to run the load balancer? | |
| 21:25:46 | mriedem | and thus kind of a chicken and egg issue? | |
| 21:25:49 | efried | I dunno how it works | |
| 21:25:50 | dansmith | yeah, octavia is not a solution to this problem | |
| 21:26:02 | mriedem | johnsom would know | |
| 21:26:04 | dansmith | it's a thing you use on top of a functioning cloud to LB an application | |
| 21:26:07 | mriedem | right | |
| 21:26:08 | dansmith | (afaik) | |
| 21:27:14 | efried | it's not a chicken/egg when you're using it as a *load balancer*. It would be chicken/egg if you were using it for HA. | |
| 21:27:15 | mriedem | e.g. we don't use trove instances to run the nova db... | |
| 21:27:21 | efried | which, again, this is not and never has been. | |
| 21:28:03 | dansmith | efried: it's totally chicken and egg for nova to use it between it and glance, for whatever reason :D | |
| 21:28:20 | efried | but at this point I need to stfu and get back to unwedging osc. I'll look for discussion on that patch I guess. | |
| 21:28:33 | dansmith | yep, thanks pointing people at that soonly | |
| 21:28:36 | efried | and probably expect dansmith to start a ML thread for his people | |
| 21:28:37 | efried | yeah | |
| 21:29:01 | dansmith | yeah, octavia requires a functioning nova to work against | |
| 21:29:09 | dansmith | so nova using octavia to talk to glance is not a thing :) | |
| 21:29:26 | mriedem | here is the thread btw http://lists.openstack.org/pipermail/openstack-dev/2017-April/116028.html | |
| 21:29:45 | mriedem | which also bled into may | |
| 21:30:00 | mriedem | http://lists.openstack.org/pipermail/openstack-dev/2017-May/116574.html is godaddy | |
| 21:32:10 | dansmith | yeah | |
| 21:32:59 | dansmith | I know tripleo and similar things HA certain endpoints, but AFAIK, glance and rabbit have always been multiple servers | |
| 21:33:38 | dansmith | especially for fundamental things like that, it's far easier to set that kind of thing in config vs. something you need an api to do, | |
| 21:33:45 | dansmith | for the same reason that cells in the database is problematic | |
| 21:33:50 | dansmith | anyway | |
| 21:34:05 | johnsom | o/ Not all of the Octavia drivers use nova, but I still would not recommend using Octavia load balancers for internal API traffic. There are many chickens and eggs to fight with for that. I.e. keystone, neutron, potentially glance/nova, etc. | |
| 21:34:35 | mriedem | note that a lot of that ML thread is about removing the endpoint_override options, which we haven't done i don't think | |
| 21:34:40 | mriedem | ksa has an override option | |
| 21:35:12 | mriedem | http://lists.openstack.org/pipermail/openstack-dev/2017-May/116149.html sums up what dan was saying | |
| 21:35:17 | dansmith | well, if I'm understanding this right, once it's down in ksa then we lose the ability to retry smartly right? | |
| 21:35:33 | mriedem | i'm just saying the thread diverged a bit, | |
| 21:35:34 | dansmith | yup | |
| 21:35:47 | mriedem | between overrding the endpoint (don't use the catalog) and multiple api servers for load balancing | |
| 21:37:12 | mriedem | something something openstack ironic > k8s ingress > nova|glance > profit!!! | |
| 21:37:13 | dansmith | and godaddy and blair there actually mention failover more than load-balancing | |
| 21:37:35 | dansmith | heh, well, k8s actually handles this as part of the infra, AFAIK, so ... yeah ;) | |
| 21:38:05 | mriedem | yeah, that's blair's "I think it'd be useful if all OpenStack APIs and their clients actively handled this poor-man's HA without having to resort to haproxy" | |
| 21:38:20 | mriedem | i.e. would be nice if openstack just handled this natively | |
| 21:40:01 | dansmith | right | |
| 21:40:17 | sean-k-mooney | honestly k8s with the nginx ingress control + cert manger + lets encrypt is a nice way to get free tls and do load balancing or at least revers proxying | |
| 21:40:24 | dansmith | because it's kinda dumb for us to reject all kinds of pet features and then not be elastic and failure-handly ourselves | |
| 21:41:22 | sean-k-mooney | johnsom: does octavia have any support for metallb? | |
| 21:42:06 | johnsom | sean-k-mooney: not at the moment | |
| 21:42:28 | johnsom | You can use Octavia for you ingress in k8s though | |
| 21:42:52 | sean-k-mooney | yes | |
| 21:43:10 | sean-k-mooney | but that does seam well like more effort | |
| 21:43:45 | johnsom | The other thing to think about when replacing an LB tier is rate limiting, WAF, and TLS offload | |
| 21:44:18 | sean-k-mooney | you do not nessisarly want your load balancer to have to do those things | |
| 21:44:23 | mriedem | https://docs.openstack.org/nova/latest/configuration/config.html#glance.api_servers isn't an LB tier :) | |
| 21:44:25 | sean-k-mooney | but yes | |
| 21:45:45 | johnsom | I guess that is the context I missed. That seems duplicate to keystone, why not just deprecate it? | |
| 21:45:59 | mriedem | keystone doesn't have a round robin concept like what this thing is | |
| 21:46:06 | mriedem | it's just a very dumb, oh endpoint 1 failed, try endpoint 2 | |
| 21:46:11 | johnsom | DNS provides round robin | |
| 21:47:25 | dansmith | DNS doesn't provide smart round robin unless you resolve the name to all the addresses and then try them yourself | |
| 21:47:39 | dansmith | smart meaning "know when to stop retrying" | |
| 21:47:56 | dansmith | dumb use of DNS RR gets you poor-man's LB, which is not what we're talking about | |
| 21:48:26 | dansmith | since we're off on a tangent, I'm gonna drop off | |
| 21:52:48 | sean-k-mooney | dansmith: so i have scolled back to the point where you have strong opions on how this should work. what was the orginial question? | |
| 21:53:12 | openstackgerrit | Merged openstack/nova master: Mark "block_migration" arg deprecation on pre_live_migration method https://review.opendev.org/682963 | |
| 21:53:18 | openstackgerrit | Merged openstack/nova master: Move Destination object tests to their own test class https://review.opendev.org/683017 | |
| 21:53:25 | openstackgerrit | Merged openstack/nova master: Remove 'test_cold_migrate_with_physnet_fails' test https://review.opendev.org/683961 | |
| 21:54:45 | sean-k-mooney | dansmith: was it solely how to support glance active active | |
| 21:56:24 | sean-k-mooney | and then the load balancer converstation was a tangent form [glance]/api_servers not being a loadblancing teir or even really a ha solution | |
| 21:56:49 | eandersson | Is there a way to make nginx retry when uwsgi (nova-metadata-api) gets overwhelmed? | |
| 21:57:22 | eandersson | Seeing nova-metadata-api falling behind and causing nginx to throw 502s | |
| 21:58:10 | sean-k-mooney | am can you just increase the process count on the uwsgi config | |
| 21:58:17 | eandersson | We have 5x 24 nova-metadata-plus processes and feels like it should be high enough | |
| 21:58:35 | sean-k-mooney | ah ok | |
| 21:58:36 | eandersson | Kinda feel like 120 should be enough. | |
| 21:58:58 | sean-k-mooney | have you truned on memcache caching for those too | |
| 21:59:00 | eandersson | I'll probably end up bumping it, but feel like I am missing something | |
| 21:59:25 | eandersson | [cache] has memcached enabled, and keystone auth too | |
| 21:59:43 | donnyd | melwitt: thank you :) | |
| 22:00:04 | sean-k-mooney | ok because if you have lots of worker but use the normal in memeory caceh you end up rebuilding stuff in each worker over and over again | |