网站首页 > 教程文章 正文
telepresence2主要解决的问题
- 帮助开发人员对kubernetes进行调试以及问题分析;
- 开发人员无需再将本地开发运行到Kubernetes内部;
- 可以提高团队间的实时协作,以及对环境创建进行预览;
telepresence能够将本地的开发程序插入到kubernetes集群内部,使得程序的环境看起来像在pod内部;并且在本地开发过程中,可以使用k8s内部所有的网络服务以及DNS名称;
工作原理
在使用telepresence后,其会在集群内部创建一个小型代理,路由流量会在一个安全网络隧道之间来回;
在kubernetes内部可以使用命令查看到代理名称;
[root@k8s-master-0 ~]# kubectl get ns
NAME STATUS AGE
ambassador Active 30d
[root@k8s-master-0 ~]# kubectl get all -n ambassador
NAME READY STATUS RESTARTS AGE
pod/traffic-manager-85cb46d955-nhlfr 1/1 Running 0 26h
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/traffic-manager ClusterIP None <none> 8022/TCP,8081/TCP 26h
1
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/traffic-manager 1/1 1 1 26h
NAME DESIRED CURRENT READY AGE
replicaset.apps/traffic-manager-85cb46d955 1 1 1 26h
快速入门
PS:可以自行查看官方文档
安装
从github上可以下载最新版,目前使用的最新版为:2.2.2
# 解压
tar -zxvf telepresence-2.2.2.tar.gz
cd telepresence-2.2.2
# 设置环境变量
export TELEPRESENCE_VERSION=v2.2.2
make build
mv ./telepresence $GOBIN/telepresence
安装kubectl
telepresence需要往集群内部安装代理,所以在开发及其上需要安装kubectl;
安装完成后,从kubenetes集群内拷贝配置文件;
scp -r root@10.222.222.11:/root/.kube/config /root/.kube/config
# 执行kubectl
kubectl get pod
实战
在集群内部创建测试pod:
# 创建deploy
kubectl create deploy hello --image=luksa/kubia
# 暴露服务
kubectl expose deploy hello --port 80 --target-port 8080
telepresence2的命令包括:
Available Commands:
Session Commands:
connect 连接集群
login 登录Ambassador Cloud #无需用到
logout 退出Ambassador Cloud #无需用到
license 获取版本信息Ambassador Cloud#无需用到
status 查看连接状态
quit 退出
Traffic Commands:
list 列举当前可以拦截的服务
intercept 拦截一个服务
leave 退出拦截服务
preview
Other Commands:
version 查看版本
uninstall 卸载集群中的代理插件
dashboard 打开一个dashboard(需要联网)
current-cluster-id
连接集群
telepresence connect
Launching Telepresence Daemon v2.3.2 (api v3)
Connecting to traffic manager...
Connected to context kubernetes-admin@kubernetes (https://<clusterip>:6443)
查看连接状态
# telepresence status
Root Daemon: Running
Version : v2.3.2 (api 3)
DNS : ""
User Daemon: Running
Version : v2.3.2 (api 3)
Ambassador Cloud : Logged out
Status : Connected
Kubernetes server : https://cluster-ip:6443
Kubernetes context: kubernetes-admin@kubernetes
Telepresence proxy: ON (networking to the cluster is enabled)
Intercepts : 0 total
查看当前可以拦截服务
# telepresence list --namespace default
nginx-demo: ready to intercept (traffic-agent not yet installed)
tips: --namespace可以指定k8s的命名空间;
其默认是根据kubectl的配置进行展示的;
访问集群内部的服务
[root@localhost bin]# curl hello.platform/
You've hit hello-66cff46dc-khm9q
在本机拦截服务
【存在问题,后续更新】
FAQ
- 在安装过程中,可能存在某些操作超时的情况,如:
telepresence: error: connector.Connect: the traffic manager gRPC API timed out. The current timeout 15s can be configured as "timeouts.trafficManagerAPI" in "/root/.config/telepresence/config.yml"
rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial unix /tmp/telepresence-connector.socket: connect: connection refused"
通过查看消息可知,请求代理的API超时,可以通过提示修改超时时间;
- 访问应用过程中,出现如下错误:
[root@localhost telepresence-2.2.2]# curl http://hello.platform
curl: (56) Recv failure: Connection reset by peer
可查看svc资源是否运行正确;
作者:TangLyan
链接:
https://juejin.cn/post/6976246800566976549
来源:掘金
猜你喜欢
- 2025-06-09 Kubernetes(k8s)pod详解(k8s pod completed)
- 2025-06-09 超详细!基于k8s+docker+jenkins的一站式 DevOps 环境搭建教程-下
- 2025-06-09 一键部署k8s多、单集群命令(波哥亲测有效)
- 2025-06-09 k8s平台:手动部署Grafana(k8s部署consul)
- 2025-06-09 K8s 应用的网络可观测性: Cilium VS DeepFlow
- 2025-06-09 k8s安全相关特性汇总(k8s的主要组件有哪些?)
- 2025-06-09 K8S集群下的GPU调度(k8s pod调度过程详解)
- 2025-06-09 别被云原生忽悠了:接地气的 K8s 生产落地长这样
- 2025-06-09 不努力提高效率,小姐姐都被人追走了:K8S一键部署了解一下?
- 2025-06-09 硬核资源!阿里内部强推IntelliJ IDEA 中的常用配置,还不赶紧收藏
- 最近发表
-
- 第十三章:Python在Web开发中的应用
- python mysql 连接池(django mysql连接池)
- Python | SQL库:MySQL(python连接mysql数据库环境搭建)
- 使用Python来实现MySQL与PostgerSQL之间的数据实时同步?
- 申请免费域名SSL,为NAS和个人网站加密
- Cloudflare配置CDN+SSL+代理(cloudflare国内代理)
- Halo博客搭建(halo博客搭建失败怎么办)
- 我用三年踩坑才摸懂建站这事儿独立站新手别闭眼冲
- 30 分钟搞定 Docker 安装与 Nginx 部署,轻松搭建高效 Web 服务
- 免费通配符ssl证书的申请指南——从申请到启动https
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- mybatis plus page (35)
- vue @scroll (38)
- 堆栈区别 (33)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)
- redis aof rdb 区别 (33)
- 302跳转 (33)
- http method (35)
- js array splice (33)