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

add "how it works" and "tools" sections #2548

Open
wants to merge 1 commit into
base: release/v2
Choose a base branch
from

Conversation

raphaelreyna
Copy link
Contributor

Description

A few sentences describing the overall goals of the pull request's commits.

Checklist

  • I made sure to update ./CHANGELOG.md.
  • I made sure to add any docs changes required for my change (including release notes).
  • My change is adequately tested.
  • I updated DEVELOPING.md with any any special dev tricks I had to use to work on this code efficiently.
  • I updated TELEMETRY.md if I added, changed, or removed a metric name.
  • Once my PR is ready to have integration tests ran, I posted the PR in #telepresence-dev in the datawire-oss slack so that the "ok to test" label can be applied.

Signed-off-by: Raphael Reyna <raphaelreyna@protonmail.com>

1. Ensures Traffic Manager is installed in the cluster.
2. Looks for the relevant subnets in the kubernetes cluster.
3. Creates a virtual network device called a _TUN device_ and names it `tel0`.
Copy link
Contributor

Choose a reason for hiding this comment

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

The device is named tun0 on macOS (or tun1, tun2, etc. whichever is available) so using "tel0" in the text can be confusing for a Mac user.


When a locally running application makes a network request to a service in the cluster, Telepresence will resolve the name to an address within the cluster.
The operating system then sees that the TUN device has an address in the same subnet as the address of the outgoing packets and sends them to `tel0`.
Telepresence is on the other side of `tel0` and picks up the packets, injecting them into the cluster through a gRPC connection with Traffic Manager.
Copy link
Contributor

Choose a reason for hiding this comment

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

The packets aren't really "injected". The data of the packages are tunneled over a stream (in packets that are much larger than the TCP packets). I suggest you use different wording here unless you want to go into detail on how that works. How about "The operating system then sees that the address is covered by one of the TUN device's subnets, which means that telepresence will route the traffic to the cluster through a gRPC connection with the Traffic Manager"?

@thallgren
Copy link
Contributor

@raphaelreyna can you please rebase and update this one so that we can merge it?

@DanielYWoo
Copy link

DanielYWoo commented Aug 25, 2022

could you also put some explanation about the DNS? How the domain names are resolved by coreDNS outside of the cluster?

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.

None yet

3 participants