简介
k8s将docker做了管理。可以保证服务的实例个数总是符合预期的。但是在测试阶段比较麻烦,需要将本地代码进行打包、发布才行。如果能在IDE中进行测试就好了。Telepresence就是解决本地和k8s集群之间测试的。
下载
测试工程
更新配置: java-demo.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: java-demo
spec:
selector:
matchLabels:
app: java-demo
replicas: 2
template:
metadata:
labels:
app: java-demo
spec:
containers:
- image: fstab/java-demo
name: java-demo
ports:
- containerPort: 8080
---
kind: Service
apiVersion: v1
metadata:
name: java-demo
spec:
type: NodePort # 增加type
selector:
app: java-demo
ports:
- port: 8080
nodePort: 30001 # 本地通过30001访问容器内的服务
teleprecense操作
官方quick start
操作步骤
-
安装traffic manager
telepresence helm install
-
连接到Kubernetes API server
telepresence connect
-
查看服务
telepresence listkubectl get service java-demo --output yaml
-
增加过滤条件
telepresence intercept java-demo --port 8080:8080 --env-file ./example-service-intercept.env
-
启动本地服务
- 访问http://localhost:30001/ 就可以被路由到本地的IDE服务中
-
删除拦截器:执行后,会删除注入工作负载的sidecar。
telepresence leave java-demo
-
删除telepresence agents and manager,执行后清除所有sidecar,以及traffic-manager控制器,并关闭本地telepresence的后台进程。
telepresence uninstall --everything --all-agents