Docker 无法在Kubernetes中调用我的Loadbalanced服务
我有一个应用程序,运行在Jetty服务器上,监听端口8080。我已经将它部署为一个容器。应用程序正在正确运行,如果我在pod中执行curl-v,我会得到正确的响应 我的播客也有地址。我们称之为10.1.2.3(假设)。如果我尝试做curl-v,我会得到一个闭合的连接 我尝试将应用程序的起始地址更改为10.1.2.3,然后curl开始工作。然而,我觉得这违背了集装箱化的目的,因为我之前无法访问此IP 我还有一个负载平衡服务,我将端口33000映射到我的服务端口8080。为该服务分配了34000个节点端口。因为这是在我本地的docker上运行的,所以我的目标是做一个curl-v并到达我的应用程序,但这显然没有发生 我做错了什么,能不能请人帮忙?我对容器和服务的定义如下: 资源.yamlDocker 无法在Kubernetes中调用我的Loadbalanced服务,docker,kubernetes,jetty,kubernetes-ingress,Docker,Kubernetes,Jetty,Kubernetes Ingress,我有一个应用程序,运行在Jetty服务器上,监听端口8080。我已经将它部署为一个容器。应用程序正在正确运行,如果我在pod中执行curl-v,我会得到正确的响应 我的播客也有地址。我们称之为10.1.2.3(假设)。如果我尝试做curl-v,我会得到一个闭合的连接 我尝试将应用程序的起始地址更改为10.1.2.3,然后curl开始工作。然而,我觉得这违背了集装箱化的目的,因为我之前无法访问此IP 我还有一个负载平衡服务,我将端口33000映射到我的服务端口8080。为该服务分配了34000个节
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-service-dev-pod1
labels:
app: myapp-service-dev
component: myapp-service-dev
spec:
selector:
matchLabels:
app: myapp-service-dev-pod1
replicas: 2
template:
metadata:
labels:
app: myapp-service-dev-pod1
component: myapp-service-dev
spec:
volumes:
- name: shared-dev-data
emptyDir: {}
containers:
- name: myapp-service-dev-pod1
image: docker/my-apps/mybuild_service:9
ports:
- containerPort: 8080
volumeMounts:
- name: shared-dev-data
mountPath: /opt/myapp/jetty/logs
服务中心
apiVersion: v1
kind: Service
metadata:
name: myapp-service-dev-lb
labels:
app: myapp-service-dev
spec:
ports:
- port: 33000
protocol: TCP
name: http
targetPort: 8080
selector:
component: myapp-service-dev
type: LoadBalancer
让jetty收听
0.0.0.0
而不是127.0.0.1
检查如何执行此操作。当您通过http://PODIP:8080
根据您的配置,该链接应位于:
http://localhost:33000/
或者您需要更改端口
- port: 33000 # external port
到港口:
- port: 8080 # external port
然后地址将更改为:
http://localhost:8080/
根据您的“负载平衡器”平衡类型,所有请求都将发送到负载平衡器类型的服务端口,而负载平衡器类型将向pod的targetPort发送请求
您可以找到有关您的平衡类型的更多信息。谢谢。这与Arghya Sadhu建议的改变一起起作用。我希望我的服务在节点端口可用于外部服务。但端口配置起了作用。再次谢谢,谢谢。这绝对是丢失的那块。一旦我在0.0.0.0上启动Jetty,整个网络就在V Mokrecov的建议下建立起来了