Skip to content

Conversation

hollinwilkins
Copy link
Contributor

This PR adds documentation on how to prevent Istio from disconnecting connections to headless TCP services every 15 minutes or so.

See conversation here for reference:
istio/istio#506

Copy link
Contributor

@andraxylia andraxylia left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor edit for accuracy.


## Headless TCP Services Losing Connection from Istiofied Containers

Envoy is reset every 15 minutes by the `istio-ca` deployment, as a part
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If istio-ca is deployed, Envoy is restarted every 15 minutes to refresh the certificates, causing the disconnection of TCP streams or long-running connections.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@andraxylia Do you want me to make these changes?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes please do

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, please rephrase, sorry if that was not clear. Envoy is not restarted by the istio-ca, but by the pilot agent.


## Headless TCP Services Losing Connection from Istiofied Containers

Envoy is reset every 15 minutes by the `istio-ca` deployment, as a part
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes please do


Envoy is reset every 15 minutes by the `istio-ca` deployment, as a part
of this process it will restart Envoy sidecars causing them to
disconnect TCP streams. In order to stop this from happening, you will
Copy link
Member

@ldemailly ldemailly Jan 12, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would insert something like:
"While your TCP services should be resilient to rare connection close events (as your pods may move for a number of reasons instance), if you really need to keep long running connections, and until we release the version of Istio that doesn't require envoy restart for certificate reload, you will have to disable mTLS [...]"
(though that's kind of a loooong sentence)

Copy link
Contributor Author

@hollinwilkins hollinwilkins Jan 12, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ldemailly 15 minutes isn't a long TCP connection. DB connections often stay open for hours by default before being recycled. Will add something about connection resilience as well.

@hollinwilkins
Copy link
Contributor Author

Hey, I made the requested changes, had to open a new PR because the old repository was deleted:

#870

@ldemailly
Copy link
Member

closing -> #870

@ldemailly ldemailly closed this Jan 12, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants