Kubernetes 使用多个容器处理单个吊舱
我有一个要求,将一个多点设置转换为一个带有多个容器的单吊舱。我让x舱运行x微服务,y舱运行y微服务,低于剩余端点Kubernetes 使用多个容器处理单个吊舱,kubernetes,endpoint,kubernetes-pod,Kubernetes,Endpoint,Kubernetes Pod,我有一个要求,将一个多点设置转换为一个带有多个容器的单吊舱。我让x舱运行x微服务,y舱运行y微服务,低于剩余端点 http://x:8080/{context path-x}/endpoint http://y:8080/{context path-y}/endpoint 我想让x和y微型服务的z舱在同一个舱内,容器x暴露在8080端口,y暴露在8081端口。我能够实现这些与多集装箱吊舱 我的问题是,现在URL已更改 http://z:8080/{context path-x}/endpo
http://x:8080/{context path-x}/endpoint
http://y:8080/{context path-y}/endpoint
http://z:8080/{context path-x}/endpoint
http://z:8081/{context path-y}/endpoint
http://x:8080/{context path-x}/endpoint
http://y:8081/{context path-y}/endpoint
如何实现这一点?K8s服务是公开应用程序的方式。由于您有两个应用程序,并且希望在一个Pod中作为两个不同的容器运行它们,并且希望应用程序API URL中的更改最少,因此只需创建两个具有不同端口的不同服务即可。因此,您需要对应用程序的应用程序url进行0次更改 在K8s集群中,您可以简单地使用服务名称的名称作为来自同一命名空间的主机名。你可以看到 因此,您可以创建两个名为
x
和y
的服务,其中x
具有端口8080,y
具有端口8081。因此,您可以使用与以前相同的URL
注:实现目标可能有不同的方式,但可能会出现不同的问题
以下是我解决问题的方法: 应用程序部署文件(部署z上的x和y容器) http://x:8080/{context path-x}/endpoint
http://y:8080/{context path-y}/endpoint您可以使用不同的服务吗?如果您希望url中的更改为0,那么您需要两个名为x&y的服务。x显示8080端口,y显示8081端口。你明白了吗?谢谢你的回复@舒迪普塔·夏尔马。我认为这个解决方案对我们有效。我现在已经创建了两个服务,分别达到8080和8081,旧的url可以改变端口号。很好,你已经解决了这个问题。请提供答案并将其标记为已接受。添加答案
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: z
spec:
replicas: 1
progressDeadlineSeconds: 600
selector:
matchLabels:
component: z
template:
metadata:
annotations:
version: v1.0
labels:
component: z
occloud.oracle.com/open-network-policy: allow
name: z
spec:
containers:
- name: x
image:x:dev
ports:
- containerPort: 8080
- name: y
image: y:dev
ports:
- containerPort: 8081
---
kind: Service
apiVersion: v1
metadata:
name: x
annotations:
version: v1.0
spec:
selector:
component: z
ports:
- name: x
port: 8080
targetPort: 8080
type: ClusterIP
---
kind: Service
apiVersion: v1
metadata:
name: y
annotations:
version: v1.0
spec:
selector:
component: z
ports:
- name: y
port: 8080
targetPort: 8081
type: ClusterIP