
应用程序
用于以下类型应用程序的通用 Helm Chart:
- 无状态
- 仅创建命名空间范围的资源(例如,不需要 CRB - 集群角色绑定)
- 不需要特权容器
- 不调用底层 Kubernetes API 或不使用底层 etcd 作为数据库来定义自定义资源
- 作为部署或 CronJob 运行
安装 Chart
要在 test 命名空间中以 my-application 为发布名称安装 chart:
helm repo add stakater https://stakater.github.io/stakater-charts
helm repo update
helm install my-application stakater/application --namespace test
卸载 Chart
要卸载 chart:
helm delete <chart-名称>
参数
名称 | 描述 | 值 |
---|
applicationName | 应用程序名称 | application |
namespaceOverride | 用自定义值覆盖默认发布命名空间 | application |
labels.group | 定义应用程序组的标签 | com.stakater.platform |
labels.team | 定义团队的标签 | stakater |
部署参数
名称 | 描述 | 值 |
---|
deployment.enabled | 在 Helm Chart 部署中启用部署 | true |
deployment.strategy | 更新部署的策略 | RollingUpdate |
deployment.reloadOnChange | 如果更新了挂载的 ConfigMap/Secret,则重新加载部署 | true |
deployment.nodeSelector | 选择要部署此应用程序的节点 | {} |
deployment.hostAliases | 向 Pod 的 /etc/hosts 文件添加条目,在 DNS 和其他选项不适用时提供 Pod 级别的主机名解析覆盖 | [] |
deployment.additionalLabels | 部署的附加标签 | {} |
deployment.podLabels | 添加到 Pod 上的附加标签,用于服务的标签选择器 | {} |
deployment.annotations | 部署上的注释 | {} |
deployment.additionalPodAnnotations | 此部署创建的 Pod 上添加的附加 Pod 注释 | {} |
deployment.replicas | 要创建的副本数 | `` |
deployment.imagePullSecrets | 用于拉取镜像的 Secret | "" |
deployment.env | 传递给应用容器的环境变量 | {} |
deployment.volumes | 要添加到 Pod 的卷 | {} |
deployment.volumeMounts | 卷的挂载路径 | {} |
deployment.revisionHistoryLimit | 保留允许回滚的旧历史记录数量 | 2 |
deployment.command | 部署主容器的命令 | [] |
deployment.args | 部署主容器的参数 | [] |
deployment.priorityClassName | 定义 Pod 调度的优先级类 | "" |
deployment.tolerations | 节点的污点容忍 | [] |
deployment.affinity | Pod/节点的亲和性 | [] |
deployment.topologySpreadConstraints | 拓扑分布约束定义 | [] |
deployment.ports | 主容器的端口 | [] |
deployment.securityContext | Pod 的安全上下文 | {} |
deployment.additionalContainers | 除初始化容器和应用容器外添加额外的容器 | [] |
deployment.containerSecurityContext | 在容器级别添加安全上下文 | {} |
deployment.terminationGracePeriodSeconds | 优雅终止超时时间 | `` |
deployment.lifecycle | 容器生命周期管理,用于优雅启动和关闭程序 | {} |
部署资源参数
名称 | 描述 | 值 |
---|
deployment.resources | 应用程序 Pod 的资源请求和限制 | 见下文 |
请求和限制
resources:
limits:
memory: 256Mi
cpu: 0.5
requests:
memory: 128Mi
cpu: 0.1
部署初始化容器参数
名称 | 描述 | 值 |
---|
deployment.initContainers | 在应用容器之前运行的初始化容器 | {} |
部署 fluentd 参数
名称 | 描述 | 值 |
---|
deployment.fluentdConfigAnnotations | fluentd 配置的注释 | {} |
部署镜像参数
名称 | 描述 | 值 |
---|
deployment.image.repository | 应用程序镜像的仓库 | repository/image-name |
deployment.image.tag | 应用程序镜像的标签 | null |
deployment.image.digest | 应用程序镜像的摘要 | `` |
deployment.image.pullPolicy | 应用程序镜像的拉取策略 | IfNotPresent |
部署 envFrom 参数
名称 | 描述 | 值 |
---|
deployment.envFrom | 从 ConfigMap 或 Secret 中获取的环境变量 | {} |
deployment.envFrom.type | 数据类型,即 Configmap 或 Secret | `` |
deployment.envFrom.name | Configmap 或 Secret 的名称,如果设置为空,则设置为应用程序名称 | `` |
deployment.envFrom.nameSuffix | Configmap 或 Secret 的后缀名称,applicationName 作为前缀附加 | `` |
部署探针参数
启动探针
启动探针表明 Pod 已成功初始化。如果指定,则在此探针成功完成之前不会执行其他探针。
名称 | 描述 | 值 |
---|
deployment.startupProbe.enabled | 启用启动探针 | false |
deployment.startupProbe.failureThreshold | 当探针失败时,Kubernetes 在放弃之前会尝试 failureThreshold 次 | 30 |
deployment.startupProbe.periodSeconds | 每隔 periodSeconds 秒执行一次探针 | 10 |
deployment.startupProbe.successThreshold | 探针在失败后被视为成功所需的最小连续成功次数。 | |
deployment.startupProbe.timeoutSeconds | 探针超时的秒数。 | |
deployment.startupProbe.httpGet | 基于 HTTP Get 请求的操作描述 | path: '/path' port: 8080 |
deployment.startupProbe.exec | Kubelet 执行指定命令来执行探针 | {} |
就绪探针
容器服务就绪状态的周期性探测。如果探测失败,容器将从服务端点中移除。
名称 | 描述 | 值 |
---|
deployment.readinessProbe.enabled | 启用就绪探针 | true |
deployment.readinessProbe.failureThreshold | 当探针失败时,Kubernetes 在放弃之前会尝试 failureThreshold 次 | 3 |
deployment.readinessProbe.periodSeconds | 每隔 periodSeconds 秒执行一次探针 | 10 |
deployment.readinessProbe.successThreshold | 探针在失败后被视为成功所需的最小连续成功次数。 | 1 |
deployment.readinessProbe.timeoutSeconds | 探针超时的秒数。 | 1 |
deployment.readinessProbe.initialDelaySeconds | 容器启动后延迟多少秒才进行存活或就绪探测 | 10 |
deployment.readinessProbe.httpGet | 基于 HTTP Get 请求的操作描述 | path: '/path' port: 8080 |
deployment.readinessProbe.exec | Kubelet 执行指定命令来执行探针 | {} |
存活探针
容器存活状态的周期性探测。如果探测失败,容器将被重启。
名称 | 描述 | 值 |
---|
deployment.livenessProbe.enabled | 启用存活探针 | true |
deployment.livenessProbe.failureThreshold | 当探针失败时,Kubernetes 在放弃之前会尝试 failureThreshold 次 | 3 |
deployment.livenessProbe.periodSeconds | 每隔 periodSeconds 秒执行一次探针 | 10 |
deployment.livenessProbe.successThreshold | 探针在失败后被视为成功所需的最小连续成功次数。 | 1 |
deployment.livenessProbe.timeoutSeconds | 探针超时的秒数。 | 1 |
deployment.livenessProbe.initialDelaySeconds | 容器启动后延迟多少秒才进行存活或就绪探测 | 10 |
deployment.livenessProbe.httpGet | 基于 HTTP Get 请求的操作描述 | path: '/path' port: 8080 |
deployment.livenessProbe.exec | Kubelet 执行指定命令来执行探针 | {} |
部署 OpenshiftOAuthProxy 参数
名称 | 描述 | 值 |
---|
deployment.openshiftOAuthProxy.enabled | 添加 Openshift OAuth 代理作为边车容器 | false |
deployment.openshiftOAuthProxy.port | 应用端口,代理应该转发到此端口 | 8080 |
deployment.openshiftOAuthProxy.secretName | 包含 TLS 证书的 Secret 名称 | openshift-oauth-proxy-tls |
deployment.openshiftOAuthProxy.image | oauth 边车容器的镜像 | openshift/oauth-proxy:latest |
deployment.openshiftOAuthProxy.disableTLSArg | 如果禁用,将使用 --http-address=:8081 而不是 --https-address=:8443 | false |
部署 DNS 参数
名称 | 描述 | 值 |
---|
deployment.dnsConfig | 启用 Pod 干扰预算 | {} |
PodDisruptionBudget 参数
名称 | 描述 | 值 |
---|
pdb.enabled | 启用 Pod 干扰预算 | false |
pdb.minAvailable | 驱逐后必须可用的 Pod 数量。如果同时设置了 minAvailable 和 maxUnavailable,则优先选择 minAvailable | 1 |
pdb.maxUnavailable | 驱逐后可以不可用的 Pod 数量。需要提供 minAvailable 或 maxUnavailable 之一 | `` |
持久化参数
名称 | 描述 | 值 |
---|
persistence.enabled | 启用持久化 | false |
persistence.mountPVC | 是否将创建的 PVC 挂载到部署中 | false |
persistence.mountPath | 如果设置了 persistence.mountPVC ,则在部署中挂载卷的位置 | / |
persistence.name | PVC 的名称。 | `` |
persistence.accessMode | 卷的访问模式 | ReadWriteOnce |
persistence.storageClass | 卷的存储类 | - |
名称 | 描述 | 值 |
--------------------------------- | ------------------------------------------------------------------------------ | ------------------------ |
secret.enabled | 启用 secret | false |
secret.additionalLabels | secret 的标签 | {} |
secret.annotations | secret 的注释 | {} |
secret.files | 带后缀的 secret 文件映射及其包含的数据 | {} |
secret.files.[name].stringData | 允许在 secret 中提供明文内容 | {} |
secret.files.[name].data | 允许在 secret 中提供将被 base64 编码的文本内容 | {} |
secret.files.[name].encodedData | 允许在 secret 中提供已经 base64 编码的文本内容 | {} |
ServiceMonitor 参数
名称 | 描述 | 值 |
---|
serviceMonitor.enabled | 启用 serviceMonitor | false |
serviceMonitor.additionalLabels | serviceMonitor 的标签 | {} |
serviceMonitor.annotations | serviceMonitor 的注释 | {} |
serviceMonitor.jobLabel | 用于应用选择器的作业标签 | k8s-app |
serviceMonitor.endpoints | Prometheus 抓取的端点数组 | - interval: 5s<br> path: /actuator/prometheus<br> port: http |
自动伸缩参数
名称 | 描述 | 值 |
---|
autoscaling.enabled | 启用水平 Pod 自动伸缩 | false |
autoscaling.additionalLabels | 水平 Pod 自动伸缩的标签 | {} |
autoscaling.annotations | 水平 Pod 自动伸缩的注释 | {} |
autoscaling.minReplicas | 启用自动伸缩时设置最小副本数 | 1 |
autoscaling.maxReplicas | 启用自动伸缩时设置最大副本数 | 10 |
autoscaling.metrics | 启用自动伸缩时的 HPA 指标配置 | {} |
VPA - 垂直 Pod 自动伸缩参数
名称 | 描述 | 值 |
---|
vpa.enabled | 启用垂直 Pod 自动伸缩 | false |
vpa.additionalLabels | 垂直 Pod 自动伸缩的标签 | {} |
vpa.annotations | 垂直 Pod 自动伸缩的注释 | {} |
vpa.containerPolicies | 单个容器的容器策略 | [] |
EndpointMonitor 参数
Stakater IngressMonitorController EndpointMonitor 参数
名称 | 描述 | 值 |
---|
endpointMonitor.enabled | 为 IMC 启用 endpointMonitor (https://github.com/stakater/IngressMonitorController) | false |
endpointMonitor.additionalLabels | endpointMonitor 的标签 | {} |
endpointMonitor.annotations | endpointMonitor 的注释 | {} |
endpointMonitor.additionalConfig | endpointMonitor 的 额外配置 | {} |
SealedSecret 参数
名称 | 描述 | 值 |
---|
sealedSecret.enabled | 启用 sealed secret | false |
sealedSecret.additionalLabels | sealed secret 的标签 | {} |
sealedSecret.annotations | 适用于在 files 下创建的所有 sealed secrets 的注释 | {} |
sealedSecret.files | 包含名称和加密数据的 secret 文件映射 | {} |
sealedSecret.files.[name].annotations | 适用于通过 sealed secret 创建的 secret 的注释 | {} |
sealedSecret.files.[name].labels | 适用于通过 sealed secret 创建的 secret 的标签 | {} |
sealedSecret.files.[name].type | 通过 sealed secret 创建的 secret 类型 | Opaque |
sealedSecret.files.[name].clusterWide | 设置为 true 时,为通过 sealed secret 创建的 secret 添加注释 sealedsecrets.bitnami.com/cluster-wide: true ,将 secret 范围设置为集群范围。 | false |
Cert-manager 证书参数
名称 | 描述 | 值 |
---|
certificate.enabled | 启用证书自定义资源 | false |
certificate.enabled | 启用证书自定义资源 | false |
certificate.additionalLabels | 证书自定义资源的附加标签 | {} |
certificate.annotations | 证书自定义资源的注释 | {} |
certificate.secretName | 此证书资源将自动创建和管理的 secret 资源名称 | tls-cert |
certificate.duration | |