网站首页 > 文章精选 正文
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 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://: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-03-20 Activemq 常见问题解决办法(activemq 启动报错)
- 2025-03-20 一文实战K8S中的服务发现和负载均衡
- 2025-03-20 这样构建 K8s 中间件运维平台,运维真的能少遭很多罪……
- 2025-03-20 K8S工作原理详解(图文全面总结)(k8s基本操作)
- 2025-03-20 k8s面试题汇总(k8s面试题目详解)
- 2025-03-20 Java基础教程:k8s快速入门(k8s jvm参数)
- 2025-03-20 线上 K8s 集群性能评估、基础服务部署调优
- 2025-03-20 K8s入门教程:10分钟带你速览全程(k8s实战教程)
- 2025-03-20 微服务之——K8S基本概念+组件(基于k8s的微服务实例)
- 2025-03-20 K8S笔记-服务访问之 IP&Port&Endpoint辨析
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 稳压管的稳压区是工作在什么区 (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)