idea远程debug(物理机、docker、k8s)
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)的更多相关文章
- 利用Openvswitch实现不同物理机中的Docker容器互连
1. 测试环境 75机(10.11.150.75):Red Hat Enterprise Linux Server 7.0,无外网访问权限,已安装Docker Server 74机(10.11.150 ...
- etcd和flannel实现docker跨物理机通信
实验目标 跨物理机的容器之间能直接访问docker通过Flannel可以实现各容器间的相互通信,即宿主机和容器,容器和容器之间都能相互通信 实验环境 192.168.3.50 //etcd.flann ...
- Docker & k8s 系列二:本机k8s环境搭建
本篇将会讲解k8s是什么?本机k8s环境搭建,部署一个pod并演示几个kubectl命令,k8s dashboard安装. k8s是什么 k8s是kubernetes的简写,它是一个全新的基于容器技术 ...
- docker+k8s基础篇一
Docker+K8s基础篇(一) docker的介绍 A:为什么是docker B:k8s介绍 docker的使用 A:docker的安装 B:docker的常用命令 C:docker容器的启动和操作 ...
- docker k8s 1.3.8 + flannel
docker k8s + flannel kubernetes 是谷歌开源的 docker 集群管理解决方案. 项目地址: http://kubernetes.io/ 测试环境: node-1: 10 ...
- docker+k8s基础篇二
Docker+K8s基础篇(二) docker的资源控制 A:docker的资源限制 Kubernetes的基础篇 A:DevOps的介绍 B:Kubernetes的架构概述 C:Kubernetes ...
- [Windows/Linux]判别服务器: 虚拟机 | 物理机 ?
物理主机,一般称: [宿主机] 虚拟机信息,一般涉及如下关键词: VMware : VMware 虚拟化技术 Vistualbox KVM(Kernel-based Virtual Machine): ...
- 如何手动触发物理机panic,并产生vmcore
如何手动触发物理机panic,并产生vmcore? 1. 配置kdump 1.1 el6 如果是CentOS 6 则编辑/boot/grub/grub.conf配置在内核参数中添加 crashkern ...
- 在Linux上查询物理机信息-不用去拆机器了
目录 一.查看系统信息(包含机器型号) 1.1 查看机型和品牌 二.查看CPU 信息 2.1 查看CPU 型号 2.2 查看CPU的物理数量 2.3 查看 CPU核心数量(非逻辑CPU) 2.4 查看 ...
- 【K8S】基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持续集成交付环境(环境搭建篇)
写在前面 最近在 K8S 1.18.2 版本的集群上搭建DevOps环境,期间遇到了各种坑.目前,搭建环境的过程中出现的各种坑均已被填平,特此记录,并分享给大家! 服务器规划 IP 主机名 节点 操作 ...
随机推荐
- 将字节数组输入流拷贝成字节数组输出流,将ByteArrayInputStream转成ByteArrayOutputStream
/** 将 ByteArrayInputStream 拷贝成 ByteArrayOutputStream * 将 字节数组输入流 拷贝成 字节数组输出流 */ public static ByteAr ...
- 简说Python之函数
目录 Python的函数 函数的简单调用 函数传参 返回值 计算圆形面积 变量作用域 局部变量 全局变量 就像平时玩的积木,函数就是一个个成块的积木,可以组合你想要的任何形状. Python的函数 函 ...
- Ubuntu下MPICH的安装与配置
原创直达链接 一.MPICH的下载与安装 MPI安装文件下载地址: 博客下载地址 或 官网地址 可以下载3.4.2版本的,本文就是3.4.2版本 1.解压: sudo tar - zxvf mpich ...
- spring-boot集成Quartz-job存储方式一JDBC
1.项目jar包依赖引入 <dependency> <groupId>org.springframework.boot</groupId> <artifact ...
- kettle使用2-增量插入
1.新建转换 2.在DB连接中,新建2个数据库连接 3.在输入中,新建:表输入 4.在输入中,新建:表输入 5.在输出中,新建:表输出
- 十三、.net core(.NET 6)搭建ElasticSearch(ES)系列之dotnet操作ElasticSearch进行存取的方法
.net core操作ES进行读写数据操作 在Package包项目下,新增NEST包.注意,包版本需要和使用的ES的版本保持一致,可以避免因为不兼容所导致的一些问题.例如我本机使用的ES版本是7.13 ...
- flask-wtf和WTForms官网翻译详解
https://flask-wtf.readthedocs.io/en/stable/# https://wtforms.readthedocs.io/en/2.3.x/ 介绍: wtformflas ...
- mogodb replication set复制集
replication set复制集 简要命令 replication set复制集 replicattion set 多台服务器维护相同的数据副本,提高服务器的可用性. Replication se ...
- 关于.net Core在华为云的鲲鹏服务器上部署的细节纪要
由于鲲鹏使用的是ARM的cpu,,非x86的,我们公司买的是Centos,,由于需要在上面部署.net core 3.0/3.1的应用,,在按照官方的文章进行部署之后,会提示 FailFast: Co ...
- VSCode + JTAG调试合宙ESP32C3的经历
VSCode + JTAG调试合宙ESP32C3 环境 Windows10 VSCode + ESP-IDF 合宙ESP32C3(无串口芯片版本) 理论 想要直接使用内置JTAG,USB要求连接GPI ...