有没有办法让应用程序拥有 2 个具有相同映像版本但在 OpenShift 上具有不同名称和资源的容器?
例如:在同一个命名空间中,给定一个带有副本集的微服务:6,元数据名称为“app-banking”,我希望有 3 个带有 envs ABC 且名称为“app-banking-aaa-”的 Pod ”,以及其他 3 个名为“app-banking-bbb
由于我们有两个 Kafka Bootstraps 服务器,因此我们有一些消费者服务,我们正在尝试在同一命名空间中实现“跨代理”解决方案。
因此 3 个 pod 将具有连接到 Bootstrap-Server1 的环境,其他 3 个 pod 将具有连接到 Bootstrap-Server2 的环境。
感谢您的帮助。
Deployments 是 Kubernetes 中的资源之一,可帮助您管理应用程序 (Pod)。 部署具有用于指定容器映像 url 和环境变量的字段。这样就可以轻松地使用相同的容器映像但使用不同的环境变量来部署应用程序。这是一个例子。
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-banking-aaa
labels:
app: app-banking-aaa
spec:
replicas: 3
selector:
matchLabels:
app: app-banking-aaa
template:
metadata:
labels:
app: app-banking-aaa
spec:
containers:
- name: app-banking
image: https://path-to-your-registry/your-app:tag1
env:
- name: ABC
value: abc
您可能需要在部署中添加更多字段,但是上述部署可以帮助您了解需要做什么。我认为您还需要搜索 ConfigMap 和 Secrets 资源以在 Deployments 中定义环境变量。
*1:
https://kubernetes.io/docs/concepts/workloads/controllers/deployment/