Telepresence demo

81 阅读1分钟

简介

k8s将docker做了管理。可以保证服务的实例个数总是符合预期的。但是在测试阶段比较麻烦,需要将本地代码进行打包、发布才行。如果能在IDE中进行测试就好了。Telepresence就是解决本地和k8s集群之间测试的。

下载

测试工程

java-demo

更新配置: 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访问容器内的服务

访问地址:http://localhost:30001/

teleprecense操作

官方quick start

操作步骤

  • 安装traffic manager

    • telepresence helm install
  • 连接到Kubernetes API server

    • telepresence connect image.png image.png
  • 查看服务

    • telepresence list
    • kubectl get service java-demo --output yaml image.png
  • 增加过滤条件

    • telepresence intercept java-demo --port 8080:8080 --env-file ./example-service-intercept.env image.png image.png
  • 启动本地服务

  • 删除拦截器:执行后,会删除注入工作负载的sidecar。

    • telepresence leave java-demo
  • 删除telepresence agents and manager,执行后清除所有sidecar,以及traffic-manager控制器,并关闭本地telepresence的后台进程。

    • telepresence uninstall --everything --all-agents image.png

参考

-使用 Telepresence 轻松在本地调试和开发 Kubernetes 应用程序