问题描述
我尝试使用主机192.168.99.100
和端口5005
在附加模式下远程调试应用程序,但它告诉我它是unable to open the debugger port
. IP为192.268.99.100
(群集通过minikube在本地托管).
I try to remote debug the application in attached mode with host: 192.168.99.100
and port 5005
, but it tells me that it is unable to open the debugger port
. The IP is 192.268.99.100
(the cluster is hosted locally via minikube).
kubectl describe service catalogservice
Name: catalogservice
Namespace: default
Labels: <none>
Annotations: <none>
Selector: app=catalogservice
Type: NodePort
IP: 10.98.238.198
Port: web 31003/TCP
TargetPort: 8080/TCP
NodePort: web 31003/TCP
Endpoints: 172.17.0.6:8080
Port: debug 5005/TCP
TargetPort: 5005/TCP
NodePort: debug 32003/TCP
Endpoints: 172.17.0.6:5005
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>
这是pods service.yml:
This is the pods service.yml:
apiVersion: v1
kind: Service
metadata:
name: catalogservice
spec:
type: NodePort
selector:
app: catalogservice
ports:
- name: web
protocol: TCP
port: 31003
nodePort: 31003
targetPort: 8080
- name: debug
protocol: TCP
port: 5005
nodePort: 32003
targetPort: 5005
在这里,我暴露了容器端口
And in here I expose the containers port
spec:
containers:
- name: catalogservice
image: elps/myimage
ports:
- containerPort: 8080
name: app
- containerPort: 5005
name: debug
我构建图像的方式:
FROM openjdk:11
VOLUME /tmp
EXPOSE 8082
ADD /target/catalogservice-0.0.1-SNAPSHOT.jar catalogservice-0.0.1-SNAPSHOT.jar
ENTRYPOINT ["java", "-agentlib:jdwp=transport=dt_socket,address=5005,server=y,suspend=n", "-jar", "catalogservice-0.0.1-SNAPSHOT.jar"]
当我执行nmap -p 5005 192.168.99.100
时我会收到
PORT STATE SERVICE
5005/tcp closed avt-profile-2
当我执行nmap -p 32003 192.168.99.100
时,我会收到
PORT STATE SERVICE
32003/tcp closed unknown
当我执行nmap -p 31003 192.168.99.100
时,我会收到
PORT STATE SERVICE
31003/tcp open unknown
当我执行kubectl get services
时,我会收到
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
catalogservice NodePort 10.108.195.102 <none> 31003:31003/TCP,5005:32003/TCP 14m
minikube service customerservice --url
返回
http://192.168.99.100:32004
推荐答案
作为在Service
中使用NodePort
的替代方法,您还可以使用 kubectl port-forward
访问Pod
中的调试端口.
As an alternative to using a NodePort
in a Service
you could also use kubectl port-forward
to access the debug port in your Pod
.
您需要在Pod的Deployment Yaml中公开调试端口
You need to expose the debug port in the Deployment yaml for the Pod
spec:
containers:
...
ports:
...
- containerPort: 5005
然后通过获取您的Pod的名称
Then get the name of your Pod via
kubectl get pods
,然后向该Pod添加端口转发
and then add a port-forwarding to that Pod
kubectl port-forward podname 5005:5005
在IntelliJ中,您将可以连接到
In IntelliJ you will be able to connect to
主持人:localhost
端口:5005
这篇关于使用intellij的kubernetes中的远程调试容器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!