In this tutorial you'll see how Telepresence allows you to get transparent access to a remote cluster from a local process.
This allows you to use your local tools on your laptop to communicate with processes inside the cluster.
You should start by running a service in the cluster:
$ kubectl run myservice --image=datawire/hello-world --port=8000 --expose
$ kubectl get service myservice
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
myservice 10.0.0.12 <none> 8000/TCP 1m
It may take a minute or two for the pod running the server to be up and running, depending on how fast your cluster is.
You can now run a local process using Telepresence that can access that service, even though the process is local but the service is running in the Kubernetes cluster:
$ telepresence --run curl http://myservice:8000/
Hello, world!
(This will not work if the hello world pod hasn't started yet... if so, try again.)
What's going on:
- Telepresence creates a new
Deployment
, which runs a proxy. - Telepresence runs
curl
locally in a way that proxies networking through thatDeployment
. - The DNS lookup and HTTP request done by
curl
get routed through the proxy and transparently access the cluster... even thoughcurl
is running locally. - When
curl
exits the newDeployment
will be cleaned up.
To learn more about what Telepresence proxies you can read the relevant reference documentation.
Additional Resources
If you're interested in trying Telepresence on your own, you can install locally with Homebrew, apt, or dnf.
Or check out these other tutorials
- Debugging services on Kubernetes
- Using Telepresence with Google Container Engine
- Getting started with OpenShift and Telepresence
- Telepresence and Minikube
Have questions? Ask in the Telepresence Gitter chatroom or file an issue on GitHub.
Top comments (0)