我正在尝试使用 Kubernetes 将我的应用程序部署到 Digital Ocean,并且我完成了他们的教程,但它无法正常工作。这是我的清单:
---
kind: Service
apiVersion: v1
metadata:
name: my-app-load-balancer
spec:
type: LoadBalancer
ports:
- protocol: TCP
port: 80
targetPort: 80
selector:
app: my-app
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 1
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: addamsson/my-app:v6
ports:
- containerPort: 80
发生的情况是,它不是路由到80
droplet 的端口,而是转发到一个随机端口:
my-app-load-balancer LoadBalancer 10.245.109.64 206.189.247.38 80:32225/TCP 4m1s
我究竟做错了什么?
我在本地使用 Docker 尝试了我的应用程序,它可以工作,如果我检查我的 pod 的日志,它看起来也不错:
2020-02-25 14:15:30.105 [main] INFO Application - Responding at http://127.0.0.1:80
编辑:
我用我知道应该可以工作的图像进行了尝试:springio/gs-spring-boot-docker
它可以工作。但我不明白为什么它不适用于我的图像。如果我检查日志,它看起来不错。我有问题Dockerfile
吗?
FROM openjdk:8-jre-alpine
RUN mkdir /app
COPY ./build/libs/my-app.jar /app/my-app.jar
WORKDIR /app
ENTRYPOINT ["java", "-jar", "my-app.jar"]
如果我.jar
在我的计算机上运行该文件也很好。