【发布时间】:2018-10-16 19:19:33
【问题描述】:
我有一个名为 MyServices 的 kubernetes 服务,它拥有四个部署。每个部署都作为单个 pod 运行,每个 pod 都有自己的端口号。
如前所述,所有 pod 都在一个 kubernetes 服务中运行。
我可以通过该 kubernetes 服务的外部 IP 地址和端口号调用服务。
示例:92.18.1.1:3011/MicroserviceA 或 92.18.1.1:3012/MicroserviceB
我现在正在尝试开发和编排层来调用这些服务并从它们那里获得响应,但是,我正在尝试找出一种不需要指定每个微服务端口号的方法,而是我可以通过他们的端点/服务名称调用他们。示例:192.168.1.1/MicroserviceA
我怎样才能实现上述语句?
从架构的角度来看,将所有微服务部署在单个 kubenetes 服务中是一个好主意(就像我目前的方法)还是每个微服务都需要它自己的服务
下面是kubernetes部署文件(微服务C和D的脚本我去掉了,因为它们和A和B是一样的):
apiVersion: v1
kind: Service
metadata:
name: myservice
spec:
selector:
app: microservice
ports:
- name: microserviceA
protocol: TCP
port: 3011
targetPort: 3011
- name: microserviceB
protocol: TCP
port: 3012
targetPort: 3012
- name: microserviceC
protocol: TCP
port: 3013
targetPort: 3013
- name: microserviceD
protocol: TCP
port: 3014
targetPort: 3014
type: LoadBalancer
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: microserviceAdeployment
spec:
replicas: 1
template:
metadata:
labels:
app: microservice
spec:
containers:
- image: dockerhub.com/myimage:v1
name: microservice
ports:
- containerPort: 3011
imagePullSecrets:
- name: regcred
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: microserviceBdeployment
spec:
replicas: 1
template:
metadata:
labels:
app: microservice
spec:
containers:
- image: dockerhub.com/myimage:v1
name: microservice
ports:
- containerPort: 3012
【问题讨论】:
标签: kubernetes