将 Quarkus 应用程序部署到 OpenShift
OpenShift 是一个基于 Kubernetes 的平台,用于开发和运行容器化应用程序。Quarkus 能够基于合理的默认值和用户提供的配置自动生成 OpenShift 资源。
作为应用程序开发人员,您可以将 Quarkus 应用程序部署到 OpenShift。此功能由 quarkus-openshift
扩展提供,该扩展支持多种部署选项。
1. OpenShift 构建策略概述
- Docker 构建
-
此策略在 OpenShift 集群外部(本地或 CI 环境)构建构件,并与 Dockerfile 一起提供给 OpenShift 构建系统。构件包括 JAR 文件或原生可执行文件。容器在 OpenShift 集群内部构建,并作为镜像流提供。
OpenShift Docker 构建策略是首选的构建策略,因为它支持针对 JVM 或编译为原生可执行文件的 Quarkus 应用程序。但是,为了与早期 Quarkus 版本兼容,默认构建策略是 S2I。要选择 OpenShift Docker 构建策略,请使用 |
- Source to Image (S2I)
-
构建过程在 OpenShift 集群内部执行。Quarkus 完全支持使用 S2I 将 Quarkus 作为 JVM 应用程序进行部署。
- Binary S2I
-
此策略使用 JAR 文件作为 S2I 构建过程的输入,从而加快了应用程序的构建和部署速度。
2. 项目引导
首先,您需要一个包含 OpenShift 扩展的新项目。然后,在构建和部署应用程序之前,必须登录到 OpenShift 集群。
2.1. 添加 OpenShift 扩展
要将应用程序构建并部署为在 OpenShift 集群中运行的容器镜像,您必须将 Quarkus OpenShift 扩展 quarkus-openshift
添加为项目的依赖项。
此扩展还会生成 OpenShift 资源,例如镜像流、构建配置、部署和服务定义。如果您的应用程序包含 quarkus-smallrye-health
扩展,OpenShift 可以访问健康检查端点并验证应用程序的启动、活跃度和就绪状态。
从 Quarkus 3.8 开始, |
-
您有一个 Quarkus Maven 项目。
-
要将
quarkus-openshift
扩展添加到您的项目,请使用以下方法之一:-
配置
pom.xml
文件pom.xml<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-openshift</artifactId> </dependency>
-
在 OpenShift CLI 中输入以下命令
./mvnw quarkus:add-extension -Dextensions="io.quarkus:quarkus-openshift"
-
在 Quarkus CLI 中输入以下命令
quarkus extension add 'quarkus-openshift'
-
3. 登录到 OpenShift 集群
您可以使用 OpenShift CLI (oc
) 登录到 OpenShift 集群。有关更多信息,请参阅 OpenShift CLI 入门。
oc login -u myUsername (1)
1 | 您将被提示输入所需信息,例如服务器 URL、密码等。 |
或者,您也可以使用 API Token 登录
oc login --token=myToken --server=myServerUrl
您可以使用 OpenShift Web 控制台中的“复制登录命令”链接来请求 Token。 |
最后,您完全不需要使用 OpenShift CLI。相反,设置 quarkus.kubernetes-client.api-server-url
配置属性,并分别使用 quarkus.kubernetes-client.token
或 quarkus.kubernetes-client.username
和 quarkus.kubernetes-client.password
进行身份验证。
quarkus build quarkus deploy openshift
./mvnw install -Dquarkus.kubernetes-client.api-server-url=myServerUrl -Dquarkus.kubernetes-client.token=myToken
./gradlew build -Dquarkus.kubernetes-client.api-server-url=myServerUrl -Dquarkus.kubernetes-client.token=myToken
3.1. 切换到所需的 OpenShift 项目
您可以使用 OpenShift CLI 来创建应用程序和管理 OpenShift 项目。使用提供的信息来创建 OpenShift 项目或切换到现有项目。
-
您拥有一个 OpenShift 集群以及已安装的最新兼容版本的
oc
工具。
-
登录到
oc
工具oc login
-
要显示当前项目空间,请输入以下命令
oc project -q
-
使用以下步骤之一转到所需的 OpenShift 项目
-
如果项目已存在,请切换到该项目
oc project <project_name>
-
如果项目不存在,请创建一个新项目
oc new-project <project_name>
-
4. 构建和部署
您可以使用以下任何部署选项进行构建和部署:
4.1. 手动配置 OpenShift 应用程序
如果您需要更多地控制部署配置,可以先构建容器镜像,然后手动配置 OpenShift 应用程序。
触发容器镜像构建
./mvnw clean package -Dquarkus.container-image.build=true
执行的构建是 s2i binary 构建。构建的输入是本地构建的 JAR 文件,构建输出是一个配置为自动触发部署的 ImageStream
。基础镜像或构建器镜像分别通过 base-jvm-image
和 base-native-image
指定。镜像的 ImageStream
会自动生成,除非使用这些属性引用内部 openshift 注册表中的现有 ImageStreamTag
。例如:
quarkus.openshift.base-jvm-image=image-registry.openshift-image-registry.svc:5000/some-project/openjdk-11:17.1.16.
在构建过程中,您可能会遇到
有关更多信息,请参阅部署到 Kubernetes。 |
构建完成后,您可以从相关的 ImageStream
创建新应用程序。
oc get is (1)
oc new-app --name=greeting <project>/openshift-quickstart:1.0.0-SNAPSHOT (2)
oc get svc
oc expose svc/greeting (3)
oc get routes (4)
curl http://<route>/hello (5)
1 | 列出已创建的镜像流。我们应用程序的镜像流应标记为 <project>/openshift-quickstart:1.0.0-SNAPSHOT。 |
2 | 从镜像源创建新应用程序。 |
3 | 将服务暴露给外部世界。 |
4 | 获取已暴露路由的列表。 |
5 | 访问您的应用程序。 |
完成此设置后,下次构建容器镜像时会自动触发到 OpenShift 的部署。换句话说,您无需重复上述步骤。
4.2. 非 S2I 构建
OpenShift 扩展已配置为使用 container-image-s2i。但是,仍然可以使用其他容器镜像扩展,例如:
使用非 s2i 容器镜像扩展时,会创建一个指向外部 dockerImageRepository
的 ImageStream
。镜像会在注册表中构建并推送,ImageStream
会填充 dockerImageRepository
中可用的标签。
选择要用于构建镜像的扩展
quarkus.container-image.builder=docker
或
quarkus.container-image.builder=jib
5. 自定义
所有可用的自定义选项都在 OpenShift 配置选项中。
以下各节提供了一些示例:
5.1. 暴露路由
要为 Quarkus 应用程序暴露 Route
:
quarkus.openshift.route.expose=true
您无需将此属性添加到
以下所有属性也适用。 |
5.1.1. 安全化 Route 资源
为了保护传入连接,OpenShift 提供了多种 TLS 终止类型来提供证书。
有关如何安全化路由的更多信息,请参阅 OpenShift Container Platform 文档。
以下示例显示了如何通过添加“quarkus.openshift.route.tls”属性来配置安全的 Route,使用 passthrough 终止:
quarkus.openshift.route.expose=true
quarkus.openshift.route.target-port=https
## Route TLS configuration:
quarkus.openshift.route.tls.termination=passthrough
quarkus.openshift.route.tls.insecure-edge-termination-policy=None
5.4. 环境变量
OpenShift 提供了多种定义环境变量的方法:
-
键/值对
-
从 Secret 或 ConfigMap 导入所有值
-
通过指定的字段插值 Secret 或 ConfigMap 中的单个值
-
插值同一资源内字段的值
5.4.1. 来自键/值对的环境变量
在生成的资源中添加键/值对作为环境变量:
quarkus.openshift.env.vars.my-env-var=foobar
上面的命令将 MY_ENV_VAR=foobar
作为环境变量添加。键 my-env-var
将转换为大写,破折号将被替换为下划线,最终得到 MY_ENV_VAR
。
5.4.2. 来自 Secret 的环境变量
要将 Secret
的所有键/值对添加为环境变量,请应用以下配置,用逗号 (,
) 分隔要用作源的每个 Secret
:
quarkus.openshift.env.secrets=my-secret,my-other-secret
这将在容器定义中生成以下内容:
envFrom:
- secretRef:
name: my-secret
optional: false
- secretRef:
name: my-other-secret
optional: false
以下代码从 my-secret
Secret 中提取由 keyName
字段标识的值,并将其放入名为 foo
的环境变量中:
quarkus.openshift.env.mapping.foo.from-secret=my-secret
quarkus.openshift.env.mapping.foo.with-key=keyName
这将在容器的 env
部分生成以下内容:
- env:
- name: FOO
valueFrom:
secretKeyRef:
key: keyName
name: my-secret
optional: false
5.4.3. 来自 ConfigMap 的环境变量
要将 ConfigMap
的所有键/值对添加为环境变量,请应用以下配置,用逗号 (,
) 分隔要用作源的每个 ConfigMap
:
quarkus.openshift.env.configmaps=my-config-map,another-config-map
这将在容器定义中生成以下内容:
envFrom:
- configMapRef:
name: my-config-map
optional: false
- configMapRef:
name: another-config-map
optional: false
以下代码从 my-config-map
ConfigMap 中提取由 keyName
字段标识的值,并将其放入名为 foo
的环境变量中:
quarkus.openshift.env.mapping.foo.from-configmap=my-configmap
quarkus.openshift.env.mapping.foo.with-key=keyName
这将在容器的 env
部分生成以下内容:
- env:
- name: FOO
valueFrom:
configMapKeyRef:
key: keyName
name: my-configmap
optional: false
5.4.4. 来自字段的环境变量
您还可以通过指定用作源的字段路径来使用另一个字段的值来添加新的环境变量。例如:
quarkus.openshift.env.fields.foo=metadata.name
5.4.5. 更改生成的部署资源
除了生成 Deployment
资源外,您还可以选择使用 application.properties
生成 DeploymentConfig
、StatefulSet
、Job
或 CronJob
资源:
quarkus.openshift.deployment-kind=StatefulSet
5.4.5.1. 生成 Job 资源
如果您想生成 Job 资源,需要使用 application.properties
添加以下属性:
quarkus.openshift.deployment-kind=Job
如果您使用 Picocli 扩展,默认情况下将生成 Job 资源。 |
您可以通过 quarkus.openshift.arguments
属性提供 Kubernetes Job 使用的参数。例如,添加属性 quarkus.openshift.arguments=A,B
。
最后,Kubernetes Job 将在每次安装到 OpenShift 时启动。有关如何运行 Kubernetes Job 的更多信息,请参阅运行示例 Job。
您可以使用 quarkus.openshift.job.xxx
下的属性配置其余的 Kubernetes Job 配置。有关更多信息,请参阅quarkus.openshift.job.parallelism。
5.4.5.2. 生成 CronJob 资源
如果您想生成 CronJob 资源,需要使用 application.properties
文件添加以下属性:
quarkus.openshift.deployment-kind=CronJob
# Cron expression to run the job every hour
quarkus.openshift.cron-job.schedule=0 * * * *
CronJob 资源需要 Cron 表达式,通过 quarkus.openshift.cron-job.schedule 属性指定何时启动 Job。如果未提供,构建将失败。 |
您可以使用 quarkus.openshift.cron-job.xxx
下的属性配置其余的 Kubernetes CronJob 配置(有关更多信息,请参阅quarkus.openshift.cron-job.parallelism)。
5.4.6. 验证
两个定义之间的冲突,例如,错误地同时为变量分配一个值并指定该变量来自某个字段,将在构建时引发错误。您可以在将应用程序部署到集群之前修复此问题,否则在集群中诊断问题来源可能更加困难。
同样,两个冗余的定义,例如,重复定义同一个 Secret 的注入,虽然不会导致问题,但会报告一个警告,告知您可能没有意图重复该定义。
5.4.6.1. 向后兼容性
OpenShift 扩展的先前版本支持不同的语法来添加环境变量。旧语法仍然支持,但已弃用,建议您迁移到新语法。
旧 |
新 |
||
普通变量 |
|
|
|
来自字段 |
|
|
|
全部来自 |
|
|
|
全部来自 |
|
|
|
来自一个 |
|
|
|
|
|
||
来自一个 |
|
|
|
|
|
If you redefine the same variable by using the new syntax while keeping the old syntax, only the new version is kept, and a warning will be issued to alert you of the problem. For example, if you define both `quarkus.openshift.env-vars.my-env-var.value=foobar` and `quarkus.openshift.env.vars.my-env-var=newValue`, the extension generates an environment variable `MY_ENV_VAR=newValue` and issues a warning. |
6. Knative - OpenShift Serverless
OpenShift 还通过使用 OpenShift Serverless 功能提供了使用 Knative 的能力。
首先,您指示 Quarkus 生成 Knative 资源:
quarkus.kubernetes.deployment-target=knative
要利用 OpenShift S2I 在集群上构建容器镜像,并为 Knative 应用程序使用生成的容器镜像,请设置以下配置属性:
# set the Kubernetes namespace which will be used to run the application
quarkus.container-image.group=geoand
# set the container image registry - this is the standard URL used to refer to the internal OpenShift registry
quarkus.container-image.registry=image-registry.openshift-image-registry.svc:5000
然后,您可以通过启用标准的 quarkus.kubernetes.deploy=true
属性将应用程序部署到 OpenShift Serverless。
7. 配置参考
构建时固定的配置属性 - 所有其他配置属性都可以在运行时覆盖
配置属性 |
类型 |
默认 |
---|---|---|
字符串列表 |
||
用于加载环境变量的可选 ConfigMap 名称列表。 环境变量: 显示更多 |
字符串列表 |
|
将环境变量名称与其关联的字段引用(从中获取其值)相关联的映射。 环境变量: 显示更多 |
Map<String,String> |
|
字符串 |
||
要从中提取值的 Secret 的可选名称。与 环境变量: 显示更多 |
字符串 |
|
要从中提取值的 ConfigMap 的可选名称。与 环境变量: 显示更多 |
字符串 |
|
标识要从中提取值的字段的键。 环境变量: 显示更多 |
字符串 |
必需 |
将环境变量添加到容器时使用的可选前缀。 环境变量: 显示更多 |
字符串 |
|
将环境变量添加到容器时使用的可选前缀。 环境变量: 显示更多 |
字符串 |
|
字符串 |
||
应用程序的名称。此值将用于命名 Kubernetes 资源,如:- Deployment - Service 等。 环境变量: 显示更多 |
字符串 |
|
字符串 |
||
生成的资源应所属的命名空间。如果未设置值,则“namespace”字段将不会添加到生成的清单的“metadata”部分。这样一来,当清单应用于集群时,命名空间将从当前的 Kubernetes 上下文中解析(有关更多详细信息,请参阅组织集群访问 Kubeconfig)。 环境变量: 显示更多 |
字符串 |
|
要添加到所有资源的自定义标签。 环境变量: 显示更多 |
Map<String,String> |
|
要添加到所有资源的自定义注解。 环境变量: 显示更多 |
Map<String,String> |
|
|
|
|
是否将构建时间戳添加到 Kubernetes 注解中。 这是一种非常有用的方法,可以使同一应用程序的连续构建的清单有所不同 - 从而确保 Kubernetes 将应用更新的资源。 环境变量: 显示更多 |
布尔值 |
|
如果为 环境变量: 显示更多 |
布尔值 |
|
如果为 环境变量: 显示更多 |
布尔值 |
|
字符串 |
||
字符串列表 |
||
字符串列表 |
||
字符串 |
||
字符串 |
||
端口号。 指的是容器端口。 环境变量: 显示更多 |
整数 |
|
整数 |
||
应用程序路径(指的是 Web 应用程序路径)。 环境变量: 显示更多 |
字符串 |
|
|
|
|
此端口应映射到的 nodePort。 仅当 serviceType 设置为 node-port 时,此设置才会生效。 环境变量: 显示更多 |
整数 |
|
如果启用,该端口将被配置为使用 HTTPS 架构。 环境变量: 显示更多 |
布尔值 |
|
|
|
|
字符串列表 |
||
当提供容器镜像用户名和密码时,启用镜像拉取密钥的生成。 环境变量: 显示更多 |
布尔值 |
|
配置 环境变量: 显示更多 |
整数 |
|
用于选择 环境变量: 显示更多 |
字符串 |
|
探针要使用的 http 路径。 为使此操作生效,还需要设置容器端口。 假设容器端口已设置(如上注释所示),如果未设置 execAction 或 tcpSocketAction,则即使未设置路径,也会自动使用 HTTP 探测(这将导致使用根路径)。如果使用 Smallrye Health,路径将根据健康检查路径自动设置。 环境变量: 显示更多 |
字符串 |
|
环境变量: 显示更多 |
字符串 |
|
探针要使用的命令。 环境变量: 显示更多 |
字符串 |
|
探针要使用的 tcp 套接字(格式为 host:port)。 环境变量: 显示更多 |
字符串 |
|
探针要使用的 gRPC 端口(格式为 port 或 port:service)。 环境变量: 显示更多 |
字符串 |
|
如果启用且未提供 环境变量: 显示更多 |
布尔值 |
|
开始探测之前要等待的时间。 环境变量: 显示更多 |
|
|
|
||
等待每个操作的时间。 环境变量: 显示更多 |
|
|
要使用的成功阈值。 环境变量: 显示更多 |
整数 |
|
要使用的失败阈值。 环境变量: 显示更多 |
整数 |
|
配置 环境变量: 显示更多 |
整数 |
|
用于选择 环境变量: 显示更多 |
字符串 |
|
探针要使用的 http 路径。 为使此操作生效,还需要设置容器端口。 假设容器端口已设置(如上注释所示),如果未设置 execAction 或 tcpSocketAction,则即使未设置路径,也会自动使用 HTTP 探测(这将导致使用根路径)。如果使用 Smallrye Health,路径将根据健康检查路径自动设置。 环境变量: 显示更多 |
字符串 |
|
环境变量: 显示更多 |
字符串 |
|
探针要使用的命令。 环境变量: 显示更多 |
字符串 |
|
探针要使用的 tcp 套接字(格式为 host:port)。 环境变量: 显示更多 |
字符串 |
|
探针要使用的 gRPC 端口(格式为 port 或 port:service)。 环境变量: 显示更多 |
字符串 |
|
如果启用且未提供 环境变量: 显示更多 |
布尔值 |
|
开始探测之前要等待的时间。 环境变量: 显示更多 |
|
|
调用操作的时间段。 环境变量: 显示更多 |
|
|
等待每个操作的时间。 环境变量: 显示更多 |
|
|
要使用的成功阈值。 环境变量: 显示更多 |
整数 |
|
要使用的失败阈值。 环境变量: 显示更多 |
整数 |
|
配置 环境变量: 显示更多 |
整数 |
|
用于选择 环境变量: 显示更多 |
字符串 |
|
探针要使用的 http 路径。 为使此操作生效,还需要设置容器端口。 假设容器端口已设置(如上注释所示),如果未设置 execAction 或 tcpSocketAction,则即使未设置路径,也会自动使用 HTTP 探测(这将导致使用根路径)。如果使用 Smallrye Health,路径将根据健康检查路径自动设置。 环境变量: 显示更多 |
字符串 |
|
环境变量: 显示更多 |
字符串 |
|
探针要使用的命令。 环境变量: 显示更多 |
字符串 |
|
探针要使用的 tcp 套接字(格式为 host:port)。 环境变量: 显示更多 |
字符串 |
|
探针要使用的 gRPC 端口(格式为 port 或 port:service)。 环境变量: 显示更多 |
字符串 |
|
如果启用且未提供 环境变量: 显示更多 |
布尔值 |
|
开始探测之前要等待的时间。 环境变量: 显示更多 |
|
|
|
||
等待每个操作的时间。 环境变量: 显示更多 |
|
|
要使用的成功阈值。 环境变量: 显示更多 |
整数 |
|
要使用的失败阈值。 环境变量: 显示更多 |
整数 |
|
当为 true(默认值)时,发出一组注解以标识应由 prometheus 抓取以获取指标的服务。 在使用带有 ServiceMonitor 的 Prometheus 运算符的配置中,注解可能不是必需的。 环境变量: 显示更多 |
布尔值 |
|
当为 true(默认值)时,发出一组注解以标识应由 prometheus 抓取以获取指标的服务。 在使用带有 ServiceMonitor 的 Prometheus 运算符的配置中,注解可能不是必需的。 环境变量: 显示更多 |
布尔值 |
|
定义用于抓取值的注释前缀,此值将用作其他注释名称默认值的基础。更改生成的注释的基础可以更容易地定义重新标记规则并避免意外的连锁反应。默认值为 环境变量: 显示更多 |
字符串 |
|
定义用于指示应抓取服务的注解。 默认情况下, 环境变量: 显示更多 |
字符串 |
|
定义用于指示抓取路径的注解。 默认情况下, 环境变量: 显示更多 |
字符串 |
|
定义用于指示要抓取的端口的注解。 默认情况下, 环境变量: 显示更多 |
字符串 |
|
定义用于指示要用于抓取的方案的注解。 默认情况下, 环境变量: 显示更多 |
字符串 |
|
要挂载的 volumeName 的名称。 环境变量: 显示更多 |
字符串 |
|
字符串 |
||
容器的 volumeName 应从其中挂载的 volumeName 中的路径。 环境变量: 显示更多 |
字符串 |
|
ReadOnly。 环境变量: 显示更多 |
布尔值 |
|
要挂载的密钥的名称。 环境变量: 显示更多 |
字符串 |
必需 |
默认模式。 指定八进制数时,必须存在前导零。 环境变量: 显示更多 |
字符串 |
|
将挂载文件的路径。 环境变量: 显示更多 |
字符串 |
必需 |
它必须是 0000 到 0777 之间的值。 如果未指定,将使用卷 defaultMode。 环境变量: 显示更多 |
整数 |
|
可选 环境变量: 显示更多 |
布尔值 |
|
要挂载的 ConfigMap 的名称。 环境变量: 显示更多 |
字符串 |
必需 |
默认模式。 指定八进制数时,必须存在前导零。 环境变量: 显示更多 |
字符串 |
|
将挂载文件的路径。 环境变量: 显示更多 |
字符串 |
必需 |
它必须是 0000 到 0777 之间的值。 如果未指定,将使用卷 defaultMode。 环境变量: 显示更多 |
整数 |
|
可选 环境变量: 显示更多 |
布尔值 |
|
字符串列表 |
||
Git 存储库 URL。 环境变量: 显示更多 |
字符串 |
必需 |
要挂载的存储库目录。 环境变量: 显示更多 |
字符串 |
|
要使用的提交哈希。 环境变量: 显示更多 |
字符串 |
|
要挂载的声明的名称。 环境变量: 显示更多 |
字符串 |
必需 |
默认模式。 指定八进制数时,必须存在前导零。 环境变量: 显示更多 |
字符串 |
|
可选 环境变量: 显示更多 |
布尔值 |
|
要挂载的磁盘名称。 环境变量: 显示更多 |
字符串 |
必需 |
分区。 环境变量: 显示更多 |
整数 |
|
文件系统类型。 环境变量: 显示更多 |
字符串 |
|
卷名是否只读。 环境变量: 显示更多 |
布尔值 |
|
共享名称。 环境变量: 显示更多 |
字符串 |
必需 |
Secret 名称。 环境变量: 显示更多 |
字符串 |
必需 |
卷名是否只读。 环境变量: 显示更多 |
布尔值 |
|
要挂载的磁盘名称。 环境变量: 显示更多 |
字符串 |
必需 |
vhd blob 对象的 URI,如果 Kind 是 Managed,则是 Azure 托管数据盘的 resourceID 环境变量: 显示更多 |
字符串 |
必需 |
磁盘的种类。 环境变量: 显示更多 |
|
|
磁盘缓存模式。 环境变量: 显示更多 |
|
|
文件系统类型。 环境变量: 显示更多 |
字符串 |
|
卷名是否只读。 环境变量: 显示更多 |
布尔值 |
|
用于加载环境变量的可选 Secret 名称列表。 环境变量: 显示更多 |
字符串列表 |
|
用于加载环境变量的可选 ConfigMap 名称列表。 环境变量: 显示更多 |
字符串列表 |
|
将环境变量名称与其关联的字段引用(从中获取其值)相关联的映射。 环境变量: 显示更多 |
Map<String,String> |
|
环境变量值 环境变量: 显示更多 |
字符串 |
|
要从中提取值的 Secret 的可选名称。与 环境变量: 显示更多 |
字符串 |
|
要从中提取值的 ConfigMap 的可选名称。与 环境变量: 显示更多 |
字符串 |
|
标识要从中提取值的字段的键。 环境变量: 显示更多 |
字符串 |
必需 |
将环境变量添加到容器时使用的可选前缀。 环境变量: 显示更多 |
字符串 |
|
将环境变量添加到容器时使用的可选前缀。 环境变量: 显示更多 |
字符串 |
|
容器镜像。 环境变量: 显示更多 |
字符串 |
|
工作目录。 环境变量: 显示更多 |
字符串 |
|
命令 环境变量: 显示更多 |
字符串列表 |
|
参数 环境变量: 显示更多 |
字符串列表 |
|
服务帐户。 环境变量: 显示更多 |
字符串 |
|
应用程序将要暴露的主机。 环境变量: 显示更多 |
字符串 |
|
端口号。 指的是容器端口。 环境变量: 显示更多 |
整数 |
|
主机端口。 环境变量: 显示更多 |
整数 |
|
应用程序路径(指的是 Web 应用程序路径)。 环境变量: 显示更多 |
字符串 |
|
协议。 环境变量: 显示更多 |
|
|
此端口应映射到的 nodePort。 仅当 serviceType 设置为 node-port 时,此设置才会生效。 环境变量: 显示更多 |
整数 |
|
如果启用,该端口将被配置为使用 HTTPS 架构。 环境变量: 显示更多 |
布尔值 |
|
镜像拉取策略。 环境变量: 显示更多 |
|
|
镜像拉取密钥。 环境变量: 显示更多 |
字符串列表 |
|
配置 环境变量: 显示更多 |
整数 |
|
用于选择 环境变量: 显示更多 |
字符串 |
|
探针要使用的 http 路径。 为使此操作生效,还需要设置容器端口。 假设容器端口已设置(如上注释所示),如果未设置 execAction 或 tcpSocketAction,则即使未设置路径,也会自动使用 HTTP 探测(这将导致使用根路径)。如果使用 Smallrye Health,路径将根据健康检查路径自动设置。 环境变量: 显示更多 |
字符串 |
|
环境变量: 显示更多 |
字符串 |
|
探针要使用的命令。 环境变量: 显示更多 |
字符串 |
|
探针要使用的 tcp 套接字(格式为 host:port)。 环境变量: 显示更多 |
字符串 |
|
探针要使用的 gRPC 端口(格式为 port 或 port:service)。 环境变量: 显示更多 |
字符串 |
|
如果启用且未提供 环境变量: 显示更多 |
布尔值 |
|
开始探测之前要等待的时间。 环境变量: 显示更多 |
|
|
调用操作的时间段。 环境变量: 显示更多 |
|
|
等待每个操作的时间。 环境变量: 显示更多 |
|
|
要使用的成功阈值。 环境变量: 显示更多 |
整数 |
|
要使用的失败阈值。 环境变量: 显示更多 |
整数 |
|
配置 环境变量: 显示更多 |
整数 |
|
用于选择 环境变量: 显示更多 |
字符串 |
|
探针要使用的 http 路径。 为使此操作生效,还需要设置容器端口。 假设容器端口已设置(如上注释所示),如果未设置 execAction 或 tcpSocketAction,则即使未设置路径,也会自动使用 HTTP 探测(这将导致使用根路径)。如果使用 Smallrye Health,路径将根据健康检查路径自动设置。 环境变量: 显示更多 |
字符串 |
|
环境变量: 显示更多 |
字符串 |
|
探针要使用的命令。 环境变量: 显示更多 |
字符串 |
|
探针要使用的 tcp 套接字(格式为 host:port)。 环境变量: 显示更多 |
字符串 |
|
探针要使用的 gRPC 端口(格式为 port 或 port:service)。 环境变量: 显示更多 |
字符串 |
|
如果启用且未提供 环境变量: 显示更多 |
布尔值 |
|
开始探测之前要等待的时间。 环境变量: 显示更多 |
|
|
调用操作的时间段。 环境变量: 显示更多 |
|
|
等待每个操作的时间。 环境变量: 显示更多 |
|
|
要使用的成功阈值。 环境变量: 显示更多 |
整数 |
|
要使用的失败阈值。 环境变量: 显示更多 |
整数 |
|
要挂载的 volumeName 的名称。 环境变量: 显示更多 |
字符串 |
|
要挂载的路径。 环境变量: 显示更多 |
字符串 |
|
容器的 volumeName 应从其中挂载的 volumeName 中的路径。 环境变量: 显示更多 |
字符串 |
|
ReadOnly。 环境变量: 显示更多 |
布尔值 |
|
CPU 需求 环境变量: 显示更多 |
字符串 |
|
内存需求 环境变量: 显示更多 |
字符串 |
|
CPU 需求 环境变量: 显示更多 |
字符串 |
|
内存需求 环境变量: 显示更多 |
字符串 |
|
用于加载环境变量的可选 Secret 名称列表。 环境变量: 显示更多 |
字符串列表 |
|
用于加载环境变量的可选 ConfigMap 名称列表。 环境变量: 显示更多 |
字符串列表 |
|
将环境变量名称与其关联的字段引用(从中获取其值)相关联的映射。 环境变量: 显示更多 |
Map<String,String> |
|
环境变量值 环境变量: 显示更多 |
字符串 |
|
要从中提取值的 Secret 的可选名称。与 环境变量: 显示更多 |
字符串 |
|
要从中提取值的 ConfigMap 的可选名称。与 环境变量: 显示更多 |
字符串 |
|
标识要从中提取值的字段的键。 环境变量: 显示更多 |
字符串 |
必需 |
将环境变量添加到容器时使用的可选前缀。 环境变量: 显示更多 |
字符串 |
|
将环境变量添加到容器时使用的可选前缀。 环境变量: 显示更多 |
字符串 |
|
容器镜像。 环境变量: 显示更多 |
字符串 |
|
工作目录。 环境变量: 显示更多 |
字符串 |
|
命令 环境变量: 显示更多 |
字符串列表 |
|
参数 环境变量: 显示更多 |
字符串列表 |
|
服务帐户。 环境变量: 显示更多 |
字符串 |
|
应用程序将要暴露的主机。 环境变量: 显示更多 |
字符串 |
|
端口号。 指的是容器端口。 环境变量: 显示更多 |
整数 |
|
主机端口。 环境变量: 显示更多 |
整数 |
|
应用程序路径(指的是 Web 应用程序路径)。 环境变量: 显示更多 |
字符串 |
|
协议。 环境变量: 显示更多 |
|
|
此端口应映射到的 nodePort。 仅当 serviceType 设置为 node-port 时,此设置才会生效。 环境变量: 显示更多 |
整数 |
|
如果启用,该端口将被配置为使用 HTTPS 架构。 环境变量: 显示更多 |
布尔值 |
|
镜像拉取策略。 环境变量: 显示更多 |
|
|
镜像拉取密钥。 环境变量: 显示更多 |
字符串列表 |
|
配置 环境变量: 显示更多 |
整数 |
|
用于选择 环境变量: 显示更多 |
字符串 |
|
探针要使用的 http 路径。 为使此操作生效,还需要设置容器端口。 假设容器端口已设置(如上注释所示),如果未设置 execAction 或 tcpSocketAction,则即使未设置路径,也会自动使用 HTTP 探测(这将导致使用根路径)。如果使用 Smallrye Health,路径将根据健康检查路径自动设置。 环境变量: 显示更多 |
字符串 |
|
环境变量: 显示更多 |
字符串 |
|
探针要使用的命令。 环境变量: 显示更多 |
字符串 |
|
探针要使用的 tcp 套接字(格式为 host:port)。 环境变量: 显示更多 |
字符串 |
|
探针要使用的 gRPC 端口(格式为 port 或 port:service)。 环境变量: 显示更多 |
字符串 |
|
如果启用且未提供 环境变量: 显示更多 |
布尔值 |
|
开始探测之前要等待的时间。 环境变量: 显示更多 |
|
|
调用操作的时间段。 环境变量: 显示更多 |
|
|
等待每个操作的时间。 环境变量: 显示更多 |
|
|
要使用的成功阈值。 环境变量: 显示更多 |
整数 |
|
要使用的失败阈值。 环境变量: 显示更多 |
整数 |
|
配置 环境变量: 显示更多 |
整数 |
|
用于选择 环境变量: 显示更多 |
字符串 |
|
探针要使用的 http 路径。 为使此操作生效,还需要设置容器端口。 假设容器端口已设置(如上注释所示),如果未设置 execAction 或 tcpSocketAction,则即使未设置路径,也会自动使用 HTTP 探测(这将导致使用根路径)。如果使用 Smallrye Health,路径将根据健康检查路径自动设置。 环境变量: 显示更多 |
字符串 |
|
环境变量: 显示更多 |
字符串 |
|
探针要使用的命令。 环境变量: 显示更多 |
字符串 |
|
探针要使用的 tcp 套接字(格式为 host:port)。 环境变量: 显示更多 |
字符串 |
|
探针要使用的 gRPC 端口(格式为 port 或 port:service)。 环境变量: 显示更多 |
字符串 |
|
如果启用且未提供 环境变量: 显示更多 |
布尔值 |
|
开始探测之前要等待的时间。 环境变量: 显示更多 |
|
|
调用操作的时间段。 环境变量: 显示更多 |
|
|
等待每个操作的时间。 环境变量: 显示更多 |
|
|
要使用的成功阈值。 环境变量: 显示更多 |
整数 |
|
要使用的失败阈值。 环境变量: 显示更多 |
整数 |
|
要挂载的 volumeName 的名称。 环境变量: 显示更多 |
字符串 |
|
要挂载的路径。 环境变量: 显示更多 |
字符串 |
|
容器的 volumeName 应从其中挂载的 volumeName 中的路径。 环境变量: 显示更多 |
字符串 |
|
ReadOnly。 环境变量: 显示更多 |
布尔值 |
|
CPU 需求 环境变量: 显示更多 |
字符串 |
|
内存需求 环境变量: 显示更多 |
字符串 |
|
CPU 需求 环境变量: 显示更多 |
字符串 |
|
内存需求 环境变量: 显示更多 |
字符串 |
|
IP 地址。 环境变量: 显示更多 |
字符串 |
|
要解析到 IP 的主机名。 环境变量: 显示更多 |
字符串列表 |
|
字符串 |
必需 |
|
nodeSelector 的值。 环境变量: 显示更多 |
字符串 |
必需 |
字符串 |
||
字符串 |
||
字符串 |
||
内存需求 环境变量: 显示更多 |
字符串 |
|
如果设置,secret 将被挂载到应用程序容器,其内容将用于应用程序配置。 环境变量: 显示更多 |
字符串 |
|
如果设置,config map 将被挂载到应用程序容器,其内容将用于应用程序配置。 环境变量: 显示更多 |
字符串 |
|
角色的名称。 环境变量: 显示更多 |
字符串 |
|
角色的命名空间。 环境变量: 显示更多 |
字符串 |
|
要添加到 Role 资源中的标签。 环境变量: 显示更多 |
Map<String,String> |
|
策略规则的 API 组。 环境变量: 显示更多 |
字符串列表 |
|
策略规则的非资源 URL。 环境变量: 显示更多 |
字符串列表 |
|
策略规则的资源名称。 环境变量: 显示更多 |
字符串列表 |
|
策略规则的资源。 环境变量: 显示更多 |
字符串列表 |
|
策略规则的动词。 环境变量: 显示更多 |
字符串列表 |
|
集群角色的名称。 环境变量: 显示更多 |
字符串 |
|
要添加到 ClusterRole 资源中的标签。 环境变量: 显示更多 |
Map<String,String> |
|
策略规则的 API 组。 环境变量: 显示更多 |
字符串列表 |
|
策略规则的非资源 URL。 环境变量: 显示更多 |
字符串列表 |
|
策略规则的资源名称。 环境变量: 显示更多 |
字符串列表 |
|
策略规则的资源。 环境变量: 显示更多 |
字符串列表 |
|
策略规则的动词。 环境变量: 显示更多 |
字符串列表 |
|
服务帐户的名称。 环境变量: 显示更多 |
字符串 |
|
服务帐户的命名空间。 环境变量: 显示更多 |
字符串 |
|
服务帐户的标签。 环境变量: 显示更多 |
Map<String,String> |
|
如果为 true,则此服务帐户将用于生成的 Deployment 资源中。 环境变量: 显示更多 |
布尔值 |
|
要生成的 RoleBinding 资源的名称。如果未提供,将使用应用程序名称加上角色引用名称。 环境变量: 显示更多 |
字符串 |
|
要添加到 RoleBinding 资源中的标签。 环境变量: 显示更多 |
Map<String,String> |
|
在生成的 Role Binding 资源中由 RoleRef 元素使用的 Role 资源的名称。 默认情况下,它是 “view” 角色名称。 环境变量: 显示更多 |
字符串 |
|
在 环境变量: 显示更多 |
布尔值 |
|
在生成的 Role Binding 资源中由 Subject 元素使用的 “name” 资源。 环境变量: 显示更多 |
字符串 |
|
在生成的 Role Binding 资源中由 Subject 元素使用的 “kind” 资源。 默认情况下,它使用 “ServiceAccount” kind。 环境变量: 显示更多 |
字符串 |
|
与 “kind” 属性匹配的 “apiGroup” 资源。 默认情况下,它是空的。 环境变量: 显示更多 |
字符串 |
|
在生成的 Role Binding 资源中由 Subject 元素使用的 “namespace” 资源。 默认情况下,它将使用与生成的资源中提供的相同的命名空间。 环境变量: 显示更多 |
字符串 |
|
要生成的 ClusterRoleBinding 资源的名称。如果未提供,将使用应用程序名称加上角色引用名称。 环境变量: 显示更多 |
字符串 |
|
要添加到 RoleBinding 资源中的标签。 环境变量: 显示更多 |
Map<String,String> |
|
在生成的 ClusterRoleBinding 资源中由 RoleRef 元素使用的 ClusterRole 资源的名称。 环境变量: 显示更多 |
字符串 |
必需 |
在生成的 Role Binding 资源中由 Subject 元素使用的 “name” 资源。 环境变量: 显示更多 |
字符串 |
|
在生成的 Role Binding 资源中由 Subject 元素使用的 “kind” 资源。 默认情况下,它使用 “ServiceAccount” kind。 环境变量: 显示更多 |
字符串 |
|
与 “kind” 属性匹配的 “apiGroup” 资源。 默认情况下,它是空的。 环境变量: 显示更多 |
字符串 |
|
在生成的 Role Binding 资源中由 Subject 元素使用的 “namespace” 资源。 默认情况下,它将使用与生成的资源中提供的相同的命名空间。 环境变量: 显示更多 |
字符串 |
|
应用于容器的 SELinux level 标签。 环境变量: 显示更多 |
字符串 |
|
应用于容器的 SELinux role 标签。 环境变量: 显示更多 |
字符串 |
|
应用于容器的 SELinux 类型标签。 环境变量: 显示更多 |
字符串 |
|
应用于容器的 SELinux 用户标签。 环境变量: 显示更多 |
字符串 |
|
要使用的 GMSA 凭据规范的名称。 环境变量: 显示更多 |
字符串 |
|
GMSACredentialSpec 是 GMSA 准入 Webhook (windows-gsma) 在其中内联由 GMSACredentialSpecName 字段命名的 GMSA 凭据规范内容的位置。 环境变量: 显示更多 |
字符串 |
|
在 Windows 中运行容器进程入口点的用户名。 环境变量: 显示更多 |
字符串 |
|
HostProcess 确定容器是否应作为“主机进程”容器运行。 环境变量: 显示更多 |
布尔值 |
|
用于运行容器进程入口点的 UID。 环境变量: 显示更多 |
long |
|
用于运行容器进程入口点的 GID。 环境变量: 显示更多 |
long |
|
指示容器必须以非 root 用户身份运行。 环境变量: 显示更多 |
布尔值 |
|
应用于每个容器中运行的第一个进程的组列表,此外还有容器的主 GID。如果未指定,则不会向任何容器添加组。 环境变量: 显示更多 |
long 列表 |
|
应用于 Pod 中所有容器的特殊补充组。 环境变量: 显示更多 |
long |
|
Sysctls 包含用于 Pod 的命名空间 sysctl 列表。 环境变量: 显示更多 |
Map<String,String> |
|
它保存了在挂载卷时将 fsGroup 应用于卷的策略。值:OnRootMismatch, Always 环境变量: 显示更多 |
|
|
用于控制非幂等字段是否包含在生成的 kubernetes 资源中的开关,以提高 git-ops 兼容性。 环境变量: 显示更多 |
布尔值 |
|
是否应将 vcs-uri 注解添加到生成的配置中。 环境变量: 显示更多 |
布尔值 |
|
字符串 |
||
要使用的 OpenShift 版本/风味。旧版本的 OpenShift 在它们支持的标签和字段方面存在细微差异。此选项允许用户自动将他们的清单与他们使用的 OpenShift“风味”对齐。 环境变量: 显示更多 |
|
|
要使用的部署资源的类型。支持的值有 'Deployment'、'StatefulSet'、'Job'、'CronJob' 和 'DeploymentConfig'。如果 环境变量: 显示更多 |
|
|
整数 |
|
|
当 serviceType 设置为 nodePort 时要设置的 nodePort 环境变量: 显示更多 |
整数 |
|
布尔值 |
|
|
字符串 |
||
目标命名端口。 如果未提供,则将从 Service 资源端口中扣除。 选项为:“http”和“https”。 环境变量: 显示更多 |
字符串 |
|
要添加到公开(路由或 Ingress)资源的自定义注解 环境变量: 显示更多 |
Map<String,String> |
|
要添加到公开(路由或入口)资源的自定义标签 环境变量: 显示更多 |
Map<String,String> |
|
证书颁发机构证书内容。 环境变量: 显示更多 |
字符串 |
|
字符串 |
||
最终目标的 CA 证书内容。 环境变量: 显示更多 |
字符串 |
|
不安全连接到路由的预期行为。 环境变量: 显示更多 |
字符串 |
|
字符串 |
||
字符串 |
||
指定作业在任何给定时间应运行的 Pod 的最大期望数量。 环境变量: 显示更多 |
整数 |
|
指定作业应运行的成功完成的 Pod 的期望数量。 环境变量: 显示更多 |
整数 |
|
CompletionMode 指定如何跟踪 Pod 完成。 环境变量: 显示更多 |
|
|
指定在将此作业标记为失败之前的重试次数。 环境变量: 显示更多 |
整数 |
|
指定作业可以持续活动的最长时间(以秒为单位),相对于 startTime,之后系统会尝试终止它;值必须为正整数。 环境变量: 显示更多 |
long |
|
限制已完成执行的 Job 的生命周期(无论是 Complete 还是 Failed)。如果设置了此字段,则在 Job 完成后的 ttlSecondsAfterFinished 秒后,它有资格被自动删除。 环境变量: 显示更多 |
整数 |
|
布尔值 |
|
|
|
|
|
Cron 格式的计划,请参见 Cron。 环境变量: 显示更多 |
字符串 |
|
作业计划的时区。默认值为 kube-controller-manager 的本地时间。 环境变量: 显示更多 |
字符串 |
|
ConcurrencyPolicy 描述了作业的处理方式。 环境变量: 显示更多 |
|
|
如果作业因任何原因错过预定时间,则启动作业的截止时间(以秒为单位)。错过的作业执行将被视为失败的作业。 环境变量: 显示更多 |
long |
|
要保留的失败作业的数量。默认值为 1。 环境变量: 显示更多 |
整数 |
|
要保留的成功完成作业的数量。默认值为 3。 环境变量: 显示更多 |
整数 |
|
指定作业在任何给定时间应运行的 Pod 的最大期望数量。 环境变量: 显示更多 |
整数 |
|
指定作业应运行的成功完成的 Pod 的期望数量。 环境变量: 显示更多 |
整数 |
|
CompletionMode 指定如何跟踪 Pod 完成。 环境变量: 显示更多 |
|
|
指定在将此作业标记为失败之前的重试次数。 环境变量: 显示更多 |
整数 |
|
指定作业可以持续活动的最长时间(以秒为单位),相对于 startTime,之后系统会尝试终止它;值必须为正整数。 环境变量: 显示更多 |
long |
|
限制已完成执行的 Job 的生命周期(无论是 Complete 还是 Failed)。如果设置了此字段,则在 Job 完成后的 ttlSecondsAfterFinished 秒后,它有资格被自动删除。 环境变量: 显示更多 |
整数 |
|
Suspend 指定 Job 控制器是否应创建 Pod。 环境变量: 显示更多 |
布尔值 |
|
作业容器失败时的重启策略。 环境变量: 显示更多 |
|
|
如果为 true,则将启用 Pod 中的调试模式。 环境变量: 显示更多 |
布尔值 |
|
要使用的传输。 环境变量: 显示更多 |
字符串 |
|
如果启用,则意味着 JVM 将等待调试器附加,然后再执行主类。如果为 false,则 JVM 将立即执行主类,同时侦听调试器连接。 环境变量: 显示更多 |
字符串 |
|
它指定调试套接字将侦听的地址。 环境变量: 显示更多 |
整数 |
|
如果为 true,则将生成 init 任务。否则,将跳过 init 任务资源生成。 环境变量: 显示更多 |
布尔值 |
|
init 容器使用的 init 任务镜像。 环境变量: 显示更多 |
字符串 |
|
镜像拉取策略。 环境变量: 显示更多 |
|
|
如果为 true,则将生成 init 任务。否则,将跳过 init 任务资源生成。 环境变量: 显示更多 |
布尔值 |
|
init 容器使用的 init 任务镜像。 环境变量: 显示更多 |
字符串 |
|
镜像拉取策略。 环境变量: 显示更多 |
|
|
如果设置为 true,Quarkus 将尝试将应用程序部署到目标 Kubernetes 集群 环境变量: 显示更多 |
布尔值 |
|
如果启用了部署,它将遵循此策略来更新到目标 Kubernetes 集群的资源。 环境变量: 显示更多 |
|
|
关于 Duration 格式
要编写持续时间值,请使用标准的 您还可以使用简化的格式,以数字开头
在其他情况下,简化格式将被转换为
|