【发布时间】:2022-02-18 03:12:06
【问题描述】:
我正在使用 OpenShift 4.7,我想将我的 OpenShift DeploymentConfig 转换为 Kubernetes Deployment。现在,我正在使用 OpenShift kind: Template 文件创建大部分应用程序。 OpenShift 模板是否支持 Kubernetes 部署,或者如果我想使用 Kubernetes 部署,我是否需要切换到另一种工具?
由于这方面的信息有限,我只是尝试对其进行转换以查看会发生什么,但无法使其正常工作。如果有人能阐明这个主题以及在哪里可以找到如何从 DeploymentConfigs 到 Deployments 的好例子,我想互联网,我会很感激。
我当前的一个 OpenShift 部署配置在模板文件中如下所示:
...
- apiVersion: v1
kind: DeploymentConfig
metadata:
annotations:
description: Defines how to deploy the database
template.alpha.openshift.io/wait-for-ready: 'true'
name: postgresql
spec:
replicas: 1
selector:
name: postgresql
strategy:
type: Recreate
template:
metadata:
labels:
name: postgresql
name: postgresql
spec:
containers:
- env:
- name: POSTGRESQL_USER
valueFrom:
secretKeyRef:
key: database-user
name: ${NAME}
- name: POSTGRESQL_PASSWORD
valueFrom:
secretKeyRef:
key: database-password
name: ${NAME}
- name: POSTGRESQL_DATABASE
value: ${DATABASE_NAME}
image: ' '
livenessProbe:
exec:
command:
- /usr/libexec/check-container
- --live
initialDelaySeconds: 120
timeoutSeconds: 10
name: postgresql
ports:
- containerPort: 5432
readinessProbe:
exec:
command:
- /usr/libexec/check-container
initialDelaySeconds: 5
timeoutSeconds: 1
resources:
limits:
memory: ${MEMORY_POSTGRESQL_LIMIT}
volumeMounts:
- mountPath: /var/lib/pgsql/data
name: postgresql-data
volumes:
- name: postgresql-data
persistentVolumeClaim:
claimName: postgresql
triggers:
- imageChangeParams:
automatic: true
containerNames:
- postgresql
from:
kind: ImageStreamTag
name: postgresql:${POSTGRESQL_VERSION}
namespace: ${NAMESPACE}
type: ImageChange
- type: ConfigChange
...
【问题讨论】:
-
您不能只更改模板中的“DeploymentConfig”->“Deployment”,因为它们是具有不同 API 的完全不同的对象。我建议将您的 DeploymentConfig 与部署的 k8s API 参考文档进行比较:kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/…
-
谢谢你,威尔。您是说如果字段已从 DeploymentConfig 正确转换,则无法从模板文件中完成 Kubernetes 部署?
-
“部署”本身应该在 OpenShift 模板中正常工作。它纯粹是一个 GoLang 模板系统,可以轻松地将所有需要的对象一起定义在一个包中(将其视为 Helm 的替代方案)。我只是想暗示(如下面的回答), Deployment 和 DeploymentConfig 有不同的定义。因此,如果您仅更改模板中的“种类”而不更改其他内容,我预计这会失败。
标签: kubernetes deployment openshift openshift-4