zoukankan      html  css  js  c++  java
  • 应用远程调试

    在集群中的应用出现问题是,可通过 kubectl exec 进入容器命令行终端进行问题诊断:

    Pod 远程调试

    # Pod 中只有一个容器时
    kubectl exec -it pod-name /bin/bash
    
    # Pod中有多个容器时
    kubectl exec -it pod-name -c container-name /bin/bash
    

    Servic 远程调试

    service 的远程调试其实分为两个部分:

    • 第一个部分是说我想将一个服务暴露到远程的一个集群之内,让远程集群内的一些应用来去调用本地的一个服务,这是一条反向的一个链路;
    • 还有一种方式是我想让这个本地服务能够去调远程的服务,那么这是一条正向的链路。

    在反向列入上面有这样一个开源组件,叫做 Telepresence ,它可以将本地的应用代理到远程集群中的一个 service 上面,使用它的方式如下所示:

    telepresence --swap-deployment $Deployment_Name
    

    首先将 Telepresence 的一个 Proxy 应用部署到远程的 K8s 集群里面。然后将远程单一个 deployment swap 到本地的一个 application,使用的命令就是 Telepresence-swap-deployment 然后以及远程的 DEPLOYMENT_NAME。通过这种方式就可以将本地一个 application 代理到远程的 service 之上、可以将应用在远程集群里面进行本地调试,这个有兴趣的同学可以到 GitHub 上面来看一下这个插件的使用的方式。

    第二个是如果本地应用需要调用远程集群的服务时候,可以通过 port-forward 的方式将远程的应用调用到本地的端口之上。比如说现在远程的里面有一个 API server,这个 API server 提供了一些端口,本地在调试 Code 时候,想要直接调用这个 API server,那么这时,比较简单的一个方式就是通过 port-forward 的方式,使用它的方式如下所示:

    kubectl port-forward svc/app -n app-namespace
    

    它的使用方式是 kubectl port-forward,然后 service 加上远程的 service name,再加上相应的 namespace,后面还可以加上一些额外的参数,比如说端口的一个映射,通过这种机制就可以把远程的一个应用代理到本地的端口之上,此时通过访问本地端口就可以访问远程的服务。

    具体用法可以参考这个:使用port-forward访问集群中的应用程序,以Redis 为例,地址:https://www.cnblogs.com/sanduzxcvbnm/p/12988236.html

  • 相关阅读:
    常用端口号
    linux java 和jmeter 环境变量配置文件笔记(原)
    部署个人wordpress 笔记
    locust安装及其简单使用----基于python的性能测试工具
    JMeter配置好环境变量后无法启动---翻车笔记
    Jmeter常见问题(转)
    机器学习环境配置系列三之Anaconda
    机器学习环境配置系列二之cuDNN
    机器学习环境配置系列一之CUDA
    准确率、精确轨、召回率等
  • 原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/13426716.html
Copyright © 2011-2022 走看看