Yaml 如何在aks上部署eureka命名服务器?
我想将我的web服务部署到Azure Kubernetes服务。我目前在一个节点中有3个微服务。1个API网关和2个后端微服务。错误消息:无。因为我不在API网关中使用路由,所以我无法通过API网关控制后端微服务。现在,我已经创建了一个Eureka命名服务器,并希望将他放在同一个节点中,我希望使用该节点,以便我的微服务能够相互通信 这是我用于命名服务器的Yaml文件Yaml 如何在aks上部署eureka命名服务器?,yaml,netflix-eureka,azure-aks,Yaml,Netflix Eureka,Azure Aks,我想将我的web服务部署到Azure Kubernetes服务。我目前在一个节点中有3个微服务。1个API网关和2个后端微服务。错误消息:无。因为我不在API网关中使用路由,所以我无法通过API网关控制后端微服务。现在,我已经创建了一个Eureka命名服务器,并希望将他放在同一个节点中,我希望使用该节点,以便我的微服务能够相互通信 这是我用于命名服务器的Yaml文件 apiVersion: apps/v1 kind: Deployment metadata: name: discoeryse
apiVersion: apps/v1
kind: Deployment
metadata:
name: discoeryservice-front
spec:
replicas: 1
selector:
matchLabels:
app: discoveryservice-front
template:
metadata:
labels:
app: discoveryservice-front
spec:
nodeSelector:
"beta.kubernetes.io/os": linux
containers:
- name: discoveryservice-front
image: registry.azurecr.io/discoveryservice:16
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 512Mi
ports:
- containerPort: 8762
name: discovery
---
apiVersion: v1
kind: Service
metadata:
name: discoveryservice-front
spec:
ports:
- port: 8762
selector:
app: discoveryservice-front
---
首先,我没有得到一个外部IP地址,我不知道为什么。有人能告诉我如何为我的命名服务器获取外部IP吗
这是我为其他微服务提供的Yaml文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: apigateway-front
spec:
replicas: 1
selector:
matchLabels:
app: apigateway-front
template:
metadata:
labels:
app: apigateway-front
spec:
nodeSelector:
"beta.kubernetes.io/os": linux
containers:
- name: apigateway-front
image: registry.azurecr.io/apigateway:11
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 512Mi
ports:
- containerPort: 8800
name: apigateway
---
apiVersion: v1
kind: Service
metadata:
name: apigateway-front
spec:
type: LoadBalancer
ports:
- port: 8800
selector:
app: apigateway-front
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: contacts-back
spec:
replicas: 1
selector:
matchLabels:
app: contacts-back
template:
metadata:
labels:
app: contacts-back
spec:
nodeSelector:
"beta.kubernetes.io/os": linux
containers:
- name: contacts-back
image: registry.azurecr.io/contacts:12
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 512Mi
ports:
- containerPort: 8100
name: contacts-back
---
apiVersion: v1
kind: Service
metadata:
name: contacts-back
spec:
ports:
- port: 8100
selector:
app: contacts-back
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: templates-back
spec:
replicas: 1
selector:
matchLabels:
app: templates-back
template:
metadata:
labels:
app: templates-back
spec:
nodeSelector:
"beta.kubernetes.io/os": linux
containers:
- name: templates-back
image: registry.azurecr.io/templates:13
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 512Mi
ports:
- containerPort: 8200
name: templates-back
---
apiVersion: v1
kind: Service
metadata:
name: templates-back
spec:
ports:
- port: 8200
selector:
app: templates-back
其次。有人能告诉我如何在命名服务器上注册我的微服务吗?
如果我在没有AKS和Docker的情况下启动我的微服务,那么命名服务器可以工作。因为您使用的是kubernetes,建议的方法是使用k8s服务发现而不是eureka服务发现。 对于API网关,您可以使用任何k8s原生API网关,如ambassador和kong,它们与kubernetes集成得非常好 回答上述问题 外部IP提供给负载平衡器类型的服务,我假设外部IP指的是可以从集群外部使用的IP地址。 要注册到eureka service discovery,我想您需要在代码中做一些小的更改,以便在应用程序启动后通知eureka,以便注册其实例。
如果对以上答案有疑问,请评论,我们也会尝试深入解释。好的,谢谢您的回答。第一步对我有用。但是有了2,我真的不知道该怎么办。我想我必须在我的微服务的yaml文件中设置一个到我的命名服务的路由,对吗?对于第二部分,这将取决于你的微服务是如何构建的?如果您使用的是spring framework之类的框架,则可以按照特定指南启用eureka服务发现,例如。这需要更改代码,只有yaml无法使用eureka帮助服务发现。但是,如果您使用云本地api网关,您可以使用yaml服务进行服务发现。如果我在计算机上运行我的微服务,命名服务就会工作。是的,我用弹簧靴,一切正常。但是,当我提供我的微服务时,我的服务没有注册。在AKS中,您是否在application.properties文件中向您的spring boot应用程序提供了服务注册信息。我所说的信息是指eureka服务的地址,以便它可以在eureka注册。在本地,由于两者都在本地运行,因此可能无法轻松识别。