IDEA远程DEBUG

1:物理机部署的Springboot项目远程DEBUG

1.1:idea配置

点击"Edit Configurations",再点击+,选择Remote,

接下来是idea的连接远程主机的jvm配置,远程主机项目启动的时候需要加上启动参数,启动参数在填写完Host和Port和选择JDK版本之后会自动生成,不同的JDK版本的参数是不一样的。

1.2启动项目

1.3测试

至此,物理机远程debug已经完成。

2:Docker远程部署debug

idea的配置和物理机是一样的,主要区别就是docker启动的时候需要暴露出JVM远程debug监听的端口

首先,正常把Springboot项目打成jar包,然后使用Docker命令把jar包打成docker镜像

Dockerfile文件内容如下:和以往不同的主要是暴露出远程debug的端口

start.sh启动脚本的内容如下:

然后把jar包打成docker镜像

查看镜像是否创建成功:

启动容器:启动的时候记得要加上远程debug的端口映射

查看容器是否启动成功:

测试:和物理机的测试一样。

3:kuberneters远程debug

kubernetes的远程debug是建立的第二步docker镜像remote_debug的基础上,主要区别就是正常创建pod之后需要在pod上暴露出远程debug的端口,然后在新建一个NotePort类型的Service,暴露出对应的端口供远程debug使用。

3.1使用pod控制器Deployment创建pod

注意:使用pod控制器Deployment创建pod之前要确保k8s集群中的每台机器都打包了remote_debug这个镜像,不会创建pod的时候会找不到对应的镜像的。

使用Deployment创建pod的yaml内容,test_debug.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
name: remote-debug
namespace: dev
spec:
replicas: 3
selector:
  matchLabels:
    app: debug
template:
  metadata:
    labels:
      app: debug
  spec:
    containers:
    - name: test
      image: remote_debug
      imagePullPolicy: Never
      ports:
      - containerPort: 8001
      - containerPort: 30435

查看控制器和pod是否创建成功

创建访问APP的service,app-svc.yaml

apiVersion: v1
kind: Service
metadata:
name: app-service
namespace: dev
spec:
selector:
  app: debug
type: NodePort # service类型
ports:
- port: 8001
  # nodePort: 5006 # 指定绑定的node的端口(默认的取值范围是:30000-32767), 如果不指定,会默认分配
  targetPort: 8001

查看访问APP的service是否创建成功

创建暴露debug端口的service,remote-svc.yaml

apiVersion: v1
kind: Service
metadata:
name: remote-service
namespace: dev
spec:
selector:
  app: debug
type: NodePort # service类型
ports:
- port: 30435   # service端口
  nodePort: 30435 # 主机端口 指定绑定的node的端口(默认的取值范围是:30000-32767), 如果不指定,会默认分配
  targetPort: 30435 # pod端口

查看暴露debug端口的service是否创建成功

测试(和物理机部署测试一样)

只不过这里浏览器访问的时候要访问app-service暴露的端口

http://master:32341/test

然后idea启动debug就可以愉快的debug了。

至此,本文已经结束,相信会对大家使用idea进行远程debug有一定的帮助!

idea远程debug(物理机、docker、k8s)的更多相关文章

  1. 利用Openvswitch实现不同物理机中的Docker容器互连

    1. 测试环境 75机(10.11.150.75):Red Hat Enterprise Linux Server 7.0,无外网访问权限,已安装Docker Server 74机(10.11.150 ...

  2. etcd和flannel实现docker跨物理机通信

    实验目标 跨物理机的容器之间能直接访问docker通过Flannel可以实现各容器间的相互通信,即宿主机和容器,容器和容器之间都能相互通信 实验环境 192.168.3.50 //etcd.flann ...

  3. Docker & k8s 系列二:本机k8s环境搭建

    本篇将会讲解k8s是什么?本机k8s环境搭建,部署一个pod并演示几个kubectl命令,k8s dashboard安装. k8s是什么 k8s是kubernetes的简写,它是一个全新的基于容器技术 ...

  4. docker+k8s基础篇一

    Docker+K8s基础篇(一) docker的介绍 A:为什么是docker B:k8s介绍 docker的使用 A:docker的安装 B:docker的常用命令 C:docker容器的启动和操作 ...

  5. docker k8s 1.3.8 + flannel

    docker k8s + flannel kubernetes 是谷歌开源的 docker 集群管理解决方案. 项目地址: http://kubernetes.io/ 测试环境: node-1: 10 ...

  6. docker+k8s基础篇二

    Docker+K8s基础篇(二) docker的资源控制 A:docker的资源限制 Kubernetes的基础篇 A:DevOps的介绍 B:Kubernetes的架构概述 C:Kubernetes ...

  7. [Windows/Linux]判别服务器: 虚拟机 | 物理机 ?

    物理主机,一般称: [宿主机] 虚拟机信息,一般涉及如下关键词: VMware : VMware 虚拟化技术 Vistualbox KVM(Kernel-based Virtual Machine): ...

  8. 如何手动触发物理机panic,并产生vmcore

    如何手动触发物理机panic,并产生vmcore? 1. 配置kdump 1.1 el6 如果是CentOS 6 则编辑/boot/grub/grub.conf配置在内核参数中添加 crashkern ...

  9. 在Linux上查询物理机信息-不用去拆机器了

    目录 一.查看系统信息(包含机器型号) 1.1 查看机型和品牌 二.查看CPU 信息 2.1 查看CPU 型号 2.2 查看CPU的物理数量 2.3 查看 CPU核心数量(非逻辑CPU) 2.4 查看 ...

  10. 【K8S】基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持续集成交付环境(环境搭建篇)

    写在前面 最近在 K8S 1.18.2 版本的集群上搭建DevOps环境,期间遇到了各种坑.目前,搭建环境的过程中出现的各种坑均已被填平,特此记录,并分享给大家! 服务器规划 IP 主机名 节点 操作 ...

随机推荐

  1. 前端之JavaScript基础学习

    一.JS代码引入以及基本代码规范 # 1.js代码书写格式 <script> ....js的代码 </script> #2.script标签写在页面那个位置 1)页面的head ...

  2. HarmonyOS 鸿蒙隔离层设计

    在软件开发中,底层库的更换或升级是常见的需求,这可能由性能提升.新功能需求或安全性考虑等因素驱动.为了降低迁移成本,良好的设计模式至关重要. 在版本迭代过程中,网络请求库可能会经历从A到B再到C的演进 ...

  3. Kimi:文本解析利器,你相信光么?

    缘起 第一次接触 kimi 是在微信群,开始以为是推广薅羊毛产品,后来在其他渠道也了解到 kimi,据说是"国产之光".我知道很多同学苦不能使用魔法久矣,索性就先踩踩这个" ...

  4. Docker 必知必会----初识

    什么是Docker?Docker 是一个开源的容器管理引擎.开发者可以通过Docker直接管理应用程序所需要的容器.它的logo如下: 为什么需要Docker使用Docker主要有两个原因,1.屏蔽不 ...

  5. 安装conda搭建python环境(保姆级教程)

    参考文档: 安装conda搭建python环境(保姆级教程)

  6. 瑞亚时间管理大师,基于 .NET 6 和 Angular 构建的在线任务管理协作平台

    瑞亚时间管理大师 瑞亚时间管理大师, 是一个在线的任务管理.项目管理. 团队协作平台.瑞亚 拥有现代化的页面风格,高效.简便,同时适合个人和团队使用. 瑞亚对个人免费,提供了无限制的任务,列表,和空间 ...

  7. 用 C 语言开发一门编程语言 — 跨平台的可移植性

    目录 文章目录 目录 前文列表 实现跨平台的可移植性 使用预处理器指令 前文列表 <用 C 语言开发一门编程语言 - 交互式解析器l> 实现跨平台的可移植性 理想情况下,我希望我的代码可以 ...

  8. 基于Ubuntu-22.04安装K8s-v1.28.2实验(四)使用域名访问网站应用

    安装负载均衡metalb 安装metalb kubectl create namespace metallb-system 配置metalb #kubectl create secret generi ...

  9. AIRIOT物联网低代码平台如何配置OPC DA驱动?

    AIRIOT物联网低代码平台提供了丰富的驱动,兼容了市面上95%以上的传感器.控制器及数据采集设备等,并且在持续增加中,能够快速.便捷地实现数据采集与控制功能. AIRIOT物联网低代码平台如何配置O ...

  10. Vue 3指令与事件处理

    title: Vue 3指令与事件处理 date: 2024/5/25 18:53:37 updated: 2024/5/25 18:53:37 categories: 前端开发 tags: Vue3 ...