我一直在寻找类似的问题已有一段时间,但我还没有找到。我有一个远程Kubernetes集群,其中包含一个主控器和两个工作器的体系结构。安装的版本如下:Kubernetes:1.15.1-0 Docker:18.09.1-3.el7我正在尝试部署和公开具有一个REST端点的Spring项目的JAR文件。
Deployment.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: microservices-deployment
labels:
app: microservices-deployment
spec:
replicas: 3
template:
metadata:
name: microservices-deployment
labels:
app: microservices-deployment
spec:
containers:
- name: microservices-deployment
image: **my_repo**/*repo_name*:latest
imagePullPolicy: Always
ports:
- containerPort: 8085
restartPolicy: Always
selector:
matchLabels:
app: microservices-deployment
service.yaml:
apiVersion: v1
kind: Service
metadata:
name: microservices-service
spec:
selector:
app: microservices-deployment
ports:
- port: 8085
targetPort: 8085
type: NodePort
我的application.properties:
server.port=8085
Dockerfile:
FROM openjdk:8
ADD target/microservices.jar microservices.jar
EXPOSE 8085
ENTRYPOINT ["java", "-jar", "microservices.jar"]
看来我的Pod已经准备好了,一切看起来都很好,但是即使从主机的终端上,我也无法访问公开的服务。有谁有想法吗?提前致谢。
更新
我可以从主机通过telnet到节点上的端口30000(在我将30000指定为NodePort之后),也可以通过telnet到端口8085上的Pod。当我尝试从主机通过telnet到任何其他端口时在节点\豆荚中,我被拒绝了,所以我认为这是一个好的开始。尽管它在本地Docker上运行,但仍然无法访问我指定的其余端点:docker run -p 8085:8085 IMAGE_NAME
问题是网络问题。从其中一个工作线程访问端点可以解决问题。谢谢大家
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句