gpt4 book ai didi

kubernetes - 无法达到LoadBalancer服务

转载 作者:行者123 更新时间:2023-12-02 12:15:40 25 4
gpt4 key购买 nike

我有一个非常简单的基于HTML,javascript和一点点jquery,angularjs的网络应用程序。它在eclipse Jee和Tomcat上进行了本地测试,并且工作正常。而且它的镜像在本地docker上运行良好。

我可以使用localhost:8080/xxxx127.0.0.1:8080/xxxx0.0.0.0:8080在浏览器上进行访问。但是,当我部署到Google Kubernetes时,如果使用浏览器上的外部IP,则会收到“无法访问此站点”的消息。我可以ping通我的外部IP,但是curl无法正常工作。这不是防火墙问题,因为dockerhub的示例投票应用程序在我的Kubernetes上运行良好。

我的Dockerfile:

FROM tomcat:9.0
ADD GeoWebv3.war /usr/local/tomcat/webapps/GeoWeb.war
expose 8080

我的 pod Yaml
apiVersion: v1
kind: Pod
metadata:
name: front-app-pod
labels:
name: front-app-pod
app: demo-geo-app
spec:
containers:
- name: front-app
image: myrepo/mywebapp:v2
ports:
- containerPort: 80

我的服务yaml
apiVersion: v1
kind: Service
metadata:
name: front-service
labels:
name: front-service
app: demo-geo-app
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 80
selector:
name: front-app-pod
app: demo-geo-app

最佳答案

像这样更改您的Yaml

apiVersion: v1
kind: Service
metadata:
name: front-service
labels:
name: front-service
app: demo-geo-app
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 8080
selector:
name: front-app-pod
app: demo-geo-app
apiVersion: v1
kind: Pod
metadata:
name: front-app-pod
labels:
name: front-app-pod
app: demo-geo-app
spec:
containers:
- name: front-app
image: myrepo/mywebapp:v2
ports:
- containerPort: 8080

您在Docker镜像中公开了端口8080。因此,在服务中,您必须说 targetPort: 8080将来自端口80的负载均衡器的流量重定向到容器的端口8080

关于kubernetes - 无法达到LoadBalancer服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56997861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com