Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate deployment with Istio #23

Open
1 of 2 tasks
FZambia opened this issue Nov 26, 2021 · 10 comments
Open
1 of 2 tasks

Investigate deployment with Istio #23

FZambia opened this issue Nov 26, 2021 · 10 comments
Labels
enhancement New feature or request

Comments

@FZambia
Copy link
Member

FZambia commented Nov 26, 2021

Looks like we have a problem with port names which prevent Istio to properly pass WS traffic:

https://istio.io/latest/docs/ops/configuration/traffic-management/protocol-selection/

We can:

  • Have a better port names so that app protocol will be determined by Istio
  • support setting appProtocol field (in a way to not break things for k8s < 1.18 )

Needs investigation to confirm the issue – since Istio should select protocol automatically https://istio.io/latest/docs/ops/configuration/traffic-management/protocol-selection/#automatic-protocol-selection ?

@FZambia FZambia added the enhancement New feature or request label Nov 26, 2021
@matrix-root
Copy link
Contributor

I've tried another setup and looks like it works with current chart. Maybe I'm was wrong with something...

It seems that the first time istio was not able to set up the protocol on its own, no ideas why.

@matrix-root
Copy link
Contributor

Hm, actually not at all.
Setup on production from scratch caught same problem. Looks like really will be good to hardcode protocols for Istio

@matrix-root
Copy link
Contributor

Finally it connects, but after 10 seconds. And before connection it doing some strange things...
Istio logs on second screenshot

Снимок экрана 2021-11-28 в 7 54 47 PM
Снимок экрана 2021-11-28 в 7 53 02 PM

@matrix-root
Copy link
Contributor

Yes! Strange, but... I've setup appProtocol in my custom service - and it connects without any issues.

So, maybe we can just add appProtocol/setup name fields - so, Istio will strictly use correct protocol. Latest Istio 1.12

@FZambia
Copy link
Member Author

FZambia commented Nov 28, 2021

@LvLs9 I found several issues in Istio which look very similar to this. For example this one - istio/istio#32127. An this - istio/istio#29427.

Unfortunately these issues are closed without any resolution from Istio team. So I think adding a possibility to define appProtocol for each port as first step here makes sense. I think should be empty by default and set in spec only if value provided. Thus we won't use it in older k8s. What do you think?

@matrix-root
Copy link
Contributor

@FZambia Yes, agreed 💪

I can try build MR with fix

@matrix-root
Copy link
Contributor

@FZambia Before merging PR...

I've tried to delete istiod pod (which will reconfigure network) - and it's worked correctly. But not sure it's really good solution.

@FZambia FZambia changed the title [enhancement] Support deployment with Istio Investigate deployment with Istio Nov 29, 2021
@FZambia
Copy link
Member Author

FZambia commented Nov 29, 2021

So we now have a possibility to define appProtocol for each service port (added in #24) - thus we have an explicit way to tell Istio protocols to use.

For the future I think would be awesome to investigate whether we should change current port names in some way to inherit automatic Istio deployment without customizing options.

@matrix-root
Copy link
Contributor

Should we close that?

@FZambia
Copy link
Member Author

FZambia commented Dec 1, 2021

@LvLs9 Let's leave this open for now – hope in the future we will figure out the remaining parts. I'd like Centrifugo work with Istio out-of-the-box without explicit appProtocol configuration – but requires some research and local experiments – I am not fully understand what Istio actually does.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants