gpt4 book ai didi

spring - 在kubernetes上部署了微服务,但未获得预期的结果

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

我已经在Google kubernetes云引擎上成功部署了微服务[spring app]。但是端点无法正常工作。

Docker文件
enter image description here

Deployment.yml

apiVersion: apps/v1
kind: Deployment
metadata:
name: user-management-deployment
labels:
app: happy-paws
spec:
replicas: 3
selector:
matchLabels:
name: user-management-deployment
app: happy-paws
template:
metadata:
name: user-management-deployment
labels:
name: user-management-deployment
app: happy-paws
spec:
containers:
- name: user-management
image: docker/user-management
ports:
- containerPort: 9106

Service.yml
apiVersion: v1
kind: Service
metadata:
name: user-management
labels:
name: user-management-service
app: happy-paws
spec:
type: LoadBalancer
ports:
- port: 9106
targetPort: 9106
selector:
name: user-management-pod
app: happy-paws

application.properties
enter image description here
请帮助我理解问题。

更新:

更新端口后,该应用程序开始运行

启用的服务:
用户顺序详细信息LoadBalancer
kubernetes ClusterIP
订单管理负载均衡器
用户管理LoadBalancer

user-order-detail命中一个端点以检索所有用户。我收到此错误:虚拟主机名不匹配:用户管理**
String url = "user-management/user";
InstanceInfo instance = eurekaClient.getNextServerFromEureka("user-management", false);
Object response = restTemplate.getForObject(instance.getHomePageUrl() + url +"/" + userId, Object.class);

最佳答案

尝试了解服务在kubernetes术语中的含义。从高层次上讲,这可以解释为一种将您的应用程序暴露给外部世界的方法,该应用程序在容器内运行(在Pod内运行(在网络内))。

这些块中的每一个都可以具有自己的独立网络。因此引入了服务的概念。这样,您可以将容器的哪个端口需要公开以及需要如何公开(服务类型,在您的情况下为LoadBalancer)。

因此,如果您需要访问容器内部端口9106上运行的应用程序,则需要公开该端口。

spec:
type: LoadBalancer
ports:
- port: 9106
targetPort: 9106

关于spring - 在kubernetes上部署了微服务,但未获得预期的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60918686/

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