【发布时间】:2021-07-08 12:05:18
【问题描述】:
我必须在我的 kubernetes 集群上部署两个部署,它们使用相同的服务进行通信,但是这两个部署位于两个不同的命名空间中:
apiVersion: apps/v1
kind: Deployment
metadata:
name: app1
namespace: namespace1
labels:
app: app1
spec:
replicas: 2
selector:
matchLabels:
app: app1
template:
metadata:
labels:
app: app1
spec:
containers:
- name: app1
image: eu.gcr.io/direct-variety-20998876/test1:dev
resources:
requests:
cpu: "100m"
memory: "128Mi"
ports:
- containerPort: 8000
imagePullPolicy: Always
env:
...
和一个相同的秒,但在另一个 amespace:
apiVersion: apps/v1
kind: Deployment
metadata:
name: app2
namespace: namespace2
labels:
app: app2
spec:
replicas: 2
selector:
matchLabels:
app: app2
template:
metadata:
labels:
app: app2
spec:
containers:
- name: app2
image: eu.gcr.io/direct-variety-20998876/test1:prod
resources:
requests:
cpu: "100m"
memory: "128Mi"
ports:
- containerPort: 8000
imagePullPolicy: Always
env:
...
所以我必须为在两个命名空间上运行的机器人部署创建一个通用服务: 我试试:
kind: Service
apiVersion: v1
metadata:
name: apps-service
namespace: ???
spec:
selector:
app: ???
ports:
- protocol: TCP
port: 8000
targetPort: 8000
type: NodePort
到目前为止,我为特定命名空间中的任何应用程序创建一个服务,但是有一种方法可以创建一个服务来管理这两个部署(然后关联一个唯一的入口)?
提前非常感谢
【问题讨论】:
-
服务是命名空间的。
associate an unique ingress是什么意思? -
我会在不同命名空间中的两个应用程序之间创建一个唯一的入口,例如 32.12.33.40/app1 用于 appi 和 /app2 用于 app2 而不为任何应用程序创建两个不同的入口
-
你想使用哪个Ingress Controller?
-
Nginx 冷就好了
标签: kubernetes kubernetes-service kubernetes-deployment