• 开发
  • kubesphere 二次开发后端调试环境搭建

TinaSprunt telepresence的swap-deployment 不是你理解的那样,swap-deployment是把目标deployment scale 到0,并没有删除deployment,新起了一个deployment来充当目标service的后端,本地telepresence退出后,原来的deployment会被scale回去的,如果你发现没有scale回去,很可能是你的telepresence意外退出了,手动scale就好了

    就像Jeff说的那样 你ctrl c以后 telepresence会自动清理pod并且把原来的deploy调整到应有的副本数 你应该是意外退出了那个进程 导致没有被还原 如果这样 可以通过ps -ef把不要的进程kill掉 然后手动调整副本数
    另外如果你不需要别的组件跟你沟通的话 可以直接 telepresence 然后在里面go run apiserver.go 这样你的这个进程也能连接到集群内的其他服务 你可以通过curl localhost:9090进行调试
    centos安装telepresence的话 可以看看这个脚本

      Jeff
      哦(⊙o⊙)~感谢大佬,刚才按照你说的实践了一下,确实是因为我异常退出了,才造成这种状况
      异常退出时网真没有将deployment Swapping回去
      当我正常退出时

      非常感谢,我先把帖子修改下

      TinaSprunt hello, 我在使用telepresence时,通过kubectl logs 查看新创建的代理pod总是报下面的错误,你知道是什么原因吗?
      84.4 TEL | 2020-11-07T18:13:07+0800 [twisted.scripts._twistd_unix.UnixAppLogger#info] twistd 20.3.0 (/usr/bin/python3.6 3.6.8) starting up.
      84.4 TEL | 2020-11-07T18:13:07+0800 [twisted.scripts._twistd_unix.UnixAppLogger#info] reactor class: twisted.internet.epollreactor.EPollReactor.
      **84.4 TEL | 2020-11-07T18:13:38+0800 [Poll#error] Failed to contact Telepresence client:
      84.4 TEL | 2020-11-07T18:13:38+0800 [Poll#error] An error occurred while connecting: 99: Address not available.
      84.4 TEL | 2020-11-07T18:13:38+0800 [Poll#warn] Perhaps it's time to exit?
      84.4 TEL | 2020-11-07T18:14:08+0800 [Poll#error] Failed to contact Telepresence client:
      84.4 TEL | 2020-11-07T18:14:08+0800 [Poll#error] An error occurred while connecting: 99: Address not available.
      84.4 TEL | 2020-11-07T18:14:08+0800 [Poll#warn] Perhaps it's time to exit?**
      84.4 TEL | (Cleanup) Re-scale original deployment

        qd19zzx 把执行命令过程再描述一下吧 有没有更多的日志

        qd19zzx
        和yuswift说的一样,希望能提供更详细一点的信息,因为Failed to contact的可能原因太多了
        我出现这个问题的时候是kubesphere.yaml写错了,这个你不用网真直接本地运行一下go run ./cmd/ks-apiserver/apiserver.go看报不报错就知道了,如果本地运行直接报了error先检查各项配置文件

        9 天 后

        这个方法感觉有点麻烦啊,我是直接通过docker跑kubesphere/ks-console:v3.0.0,将配置文件中的apiserver地址改成本地代码地址,然后就可以直接调试了

          joey_chen 这个思路不错啊!不过还要解决连接集群内服务的问题,比如Ldap和redis。 我个人使用kubectl forward port, 不知 @joey_chen 有没有其他高招。是否可以写个教程分享一下啊?

            joey_chen
            是的呢,console代码只要改一下local_config.yaml指定后端ip:port,无论放哪里都可以,后端的kubesphere的代码比较麻烦,理想情况是console —>本地goland运行后端kubesphere —>远程k8s环境,这样不用搭网真代理,但是正版goland要钱啊……好悲伤

            joey_chen
            老铁,你用的本地运行kubesphere的IDE是goland吗,还是别的可以远程调试不要钱的,求安利

              RolandMa1986 我是在本地docker-desktop跑了个容器版K8S,然后部署了一套ks,在ks部署完以后,将redis、ldap等服务的svc改为nodeport,将配置文件复制一份放在/etc/kubesphere目录下,并修改redis等的地址,这样本地代码就可以跑起来了

              14 天 后

              本地测试必须用telepresence吗,我是写个接口,本地启动就报错redis host找不到

                9 个月 后

                写的太好了,困扰我好几年的问题终于解决了

                1 年 后

                lgy 前辈 你解决redis host找不到的问题了吗 :