使用极狐GitLab Pages chart
gitlab-pages
子 chart 提供了一个守护进程,用于从极狐GitLab 项目服务静态网站。
要求
此 chart 依赖于对 Workhorse 服务的访问,可以作为完成极狐GitLab chart 的一部分,或者作为从此 chart 部署到 Kubernetes 集群访问的外部服务。
配置
gitlab-pages
chart 配置如下:全局设置和chart 设置。
全局设置
我们在 chart 之间共享一些通用的全局设置。有关详细信息,请参见 Globals 文档。
chart 设置
以下两节中的表格包含可以使用 --set
标志提供给 helm install
命令的所有可能的 chart 配置。
常规设置
参数 | 默认值 | 说明 | ||||
---|---|---|---|---|---|---|
annotations |
Pod annotations | |||||
common.labels |
{} |
应用于此 chart 创建的所有对象的补充标签 | ||||
deployment.strategy |
{} |
允许配置 deployment 使用的更新策略。如果未提供,使用集群默认值 | ||||
extraEnv |
要暴露的附加环境变量列表 | |||||
extraEnvFrom |
要暴露的其它数据源的额外环境变量列表 | |||||
hpa.behavior |
{scaleDown: {stabilizationWindowSeconds: 300 }} |
包含放大和缩小行为的规范(需要 autoscaling/v2beta2 或更高版本) |
||||
hpa.customMetrics |
[] |
自定义指标包含用于计算所需副本数的规范(覆盖在 targetAverageUtilization 中配置的平均 CPU 利用率的默认使用值) |
||||
hpa.cpu.targetType |
AverageValue |
设置自动缩放 CPU 目标类型,必须是 Utilization 或 AverageValue
|
||||
hpa.cpu.targetAverageValue |
100m |
设置自动缩放 CPU 目标值 | ||||
hpa.cpu.targetAverageUtilization |
设置自动缩放 CPU 目标利用率 | |||||
hpa.memory.targetType |
设置自动缩放内存目标类型,必须是 Utilization 或 AverageValue
|
|||||
hpa.memory.targetAverageValue |
设置自动缩放内存目标值 | |||||
hpa.memory.targetAverageUtilization |
设置自动缩放内存目标利用率 | |||||
hpa.minReplicas |
1 |
最小副本数 | ||||
hpa.maxReplicas |
10 |
最大副本数 | ||||
hpa.targetAverageValue |
已弃用 设置自动缩放 CPU 目标值 | |||||
image.pullPolicy |
IfNotPresent |
极狐GitLab 镜像拉取策略 | ||||
image.pullSecrets |
用于镜像仓库的 Secret | |||||
image.repository |
registry.gitlab.com/gitlab-org/build/cng/gitlab-pages |
极狐GitLab Pages 镜像仓库 | ||||
image.tag |
image 标签 | |||||
init.image.repository |
initContainer 镜像 | |||||
init.image.tag |
initContainer 镜像标签 | |||||
init.containerSecurityContext |
{} |
initContainer 容器特定 securityContext | ||||
keda.enabled |
false |
使用 KEDA ScaledObjects 替代 HorizontalPodAutoscalers
|
||||
keda.pollingInterval |
30 |
检查每个触发器的时间间隔 | ||||
keda.cooldownPeriod |
300 |
最后一个触发器报告有效后,在将资源缩放回 0 之前等待的时间 | ||||
keda.minReplicaCount |
KEDA 将资源缩减到的最小副本数,默认为 hpa.minReplicas
|
|||||
keda.maxReplicaCount |
KEDA 将资源扩展到的最大副本数,默认为 hpa.maxReplicas
|
|||||
keda.fallback |
KEDA 后备配置,请参阅文档 | |||||
keda.hpaName |
KEDA 将创建的 HPA 资源的名称,默认为 keda-hpa-{scaled-object-name}
|
|||||
keda.restoreToOriginalReplicaCount |
指定删除 ScaledObject 后,目标资源是否应缩减至原始副本数 |
|||||
keda.behavior |
放大和缩小行为的 spec,默认为 hpa.behavior
|
|||||
keda.triggers |
用于激活目标资源扩展的触发器列表,默认为根据 hpa.cpu 和 hpa.memory 计算的触发器 |
|||||
metrics.enabled |
true |
切换 Prometheus metrics exporter | ||||
metrics.port |
9235 |
Prometheus metrics exporter 的监听端口 | ||||
metrics.path |
/metrics |
指标端点路径 | ||||
metrics.serviceMonitor.enabled |
false |
是否创建 ServiceMonitor 使 Prometheus Operator 能够管理指标抓取,请注意启用此功能会删除 prometheus.io 抓取注释 |
||||
metrics.serviceMonitor.additionalLabels |
{} |
要添加到 ServiceMonitor 的其它标签 | ||||
metrics.serviceMonitor.endpointConfig |
{} |
ServiceMonitor 的附加端点配置 | ||||
metrics.annotations |
已废弃 设置明确的指标注释。替换为模板内容 | |||||
metrics.tls.enabled |
false |
为指标端点启用 TLS | ||||
metrics.tls.secretName |
{Release.Name}-pages-metrics-tls |
指标端点 TLS 证书和密钥的 secret | ||||
podLabels |
补充 Pod 标签。不会用于选择器 | |||||
resources.requests.cpu |
900m |
极狐GitLab Pages 最小 CPU | ||||
resources.requests.memory |
2G |
极狐GitLab Pages 最小内存 | ||||
securityContext.fsGroup |
1000 |
在其下启动 Pod 的 Group ID | ||||
securityContext.runAsUser |
1000 |
在其下启动 Pod 的 User ID | ||||
securityContext.fsGroupChangePolicy |
更改卷的所有权和权限的策略(需要 Kubernetes 1.23) | |||||
containerSecurityContext |
覆盖用于启动容器的容器 securityContext | |||||
containerSecurityContext.runAsUser |
1000 |
允许覆盖启动容器的特定安全上下文 | ||||
service.externalPort |
8090 |
极狐GitLab Pages 对外暴露的端口 | ||||
service.internalPort |
8090 |
极狐GitLab Pages 内部端口 | ||||
service.name |
gitlab-pages |
极狐GitLab Pages 的 service 名称 | ||||
service.annotations |
所有页面服务的注释 | |||||
service.primary.annotations |
仅为主要服务的注释 | |||||
service.metrics.annotations |
仅为指标服务的注释 | |||||
service.customDomains.annotations |
仅为自定义域服务的注释 | service.customDomains.type |
LoadBalancer |
处理自定义域名而创建的 service 类型 | ||
service.customDomains.internalHTTPSPort |
8091 |
Pages daemon 监听 HTTPS 请求的端口 | ||||
service.customDomains.nodePort.http |
Node Port 为 HTTP 连接开放的节点端口。仅当 service.customDomains.type 为 NodePort 时适用 |
|||||
service.customDomains.nodePort.https |
Node Port 为 HTTPS 连接开放的节点端口。仅当 service.customDomains.type 为 NodePort 时适用 |
|||||
service.sessionAffinity |
None |
会话亲和性的类型。必须是 ClientIP 或 None (只对来自集群内的流量有意义) |
||||
service.sessionAffinityConfig |
会话亲和性配置。如果 service.sessionAffinity == ClientIP 则默认会话粘性时间为 3 小时 (10800) |
|||||
serviceLabels |
{} |
补充 service 标签 | ||||
tolerations |
[] |
分配给 Pod 的容忍标签 |
Pages 特定设置
参数 | 默认值 | 描述 |
---|---|---|
artifactsServerTimeout |
10 |
服务器的代理请求的超时(以秒为单位) |
artifactsServerUrl |
代理 artifact 请求的 API URL | |
extraVolumeMounts |
要添加的附加挂载卷列表 | |
extraVolumes |
要创建的附加卷列表 | |
gitlabClientHttpTimeout |
极狐GitLab API HTTP 客户端连接超时(以秒为单位) | |
gitlabClientJwtExpiry |
JWT 令牌到期时间(以秒为单位) | |
gitlabServer |
极狐GitLab 服务器 FQDN | |
headers |
[] |
发送给客户端的附加 http header(s) |
insecureCiphers |
false |
使用默认密码套件列表,可能包含不安全的密码套件,如 3DES 和 RC4 |
internalGitlabServer |
API 请求使用的内部极狐GitLab 服务器 | |
logFormat |
json |
日志输出格式 |
logVerbose |
false |
详细日志记录 |
maxConnections |
对 HTTP、HTTPS 或代理侦听器的并发连接数的限制 | |
maxURILength |
限制 URI 的长度,0 表示无限制 | |
redirectHttp |
false |
从 HTTP 重定向页面到 HTTPS |
sentry.enabled |
false |
启用 Sentry 报告 |
sentry.dsn |
发送 Sentry 崩溃报告的地址 | |
sentry.environment |
Sentry 崩溃报告的环境 | |
serverShutdowntimeout |
30s |
极狐GitLab Pages 服务器关闭超时(以秒为单位) |
statusUri |
状态页面的 URL 路径 | |
tls.minVersion |
指定最小的 SSL/TLS 版本 | |
tls.maxVersion |
指定最大的 SSL/TLS 版本 | |
useHTTPProxy |
false |
当极狐GitLab Pages 位于反向代理之后时使用此选项 |
useProxyV2 |
false |
强制 HTTPS 请求使用 PROXYv2 协议 |
zipCache.cleanup |
int | 查看:Zip 服务和缓存配置 |
zipCache.expiration |
int | 查看:Zip 服务和缓存配置 |
zipCache.refresh |
int | 查看:Zip 服务和缓存配置 |
zipOpenTimeout |
int | 查看:Zip 服务和缓存配置 |
zipHTTPClientTimeout |
int | 查看:Zip 服务和缓存配置 |
rateLimitSourceIP |
int |
要启用速率限制,请使用 extraEnv=["FF_ENFORCE_IP_RATE_LIMITS=true"]
|
rateLimitSourceIPBurst |
int | |
rateLimitDomain |
int |
要启用速率限制,请使用 extraEnv=["FF_ENFORCE_DOMAIN_RATE_LIMITS=true"]
|
rateLimitDomainBurst |
int | |
rateLimitTLSSourceIP |
使用 extraEnv=["FF_ENFORCE_IP_TLS_RATE_LIMITS=true"] 启用速率限制 |
|
rateLimitTLSSourceIPBurst |
||
rateLimitTLSDomain |
使用 extraEnv=["FF_ENFORCE_DOMAIN_TLS_RATE_LIMITS=true"] 启用速率限制 |
|
rateLimitTLSDomainBurst |
||
serverReadTimeout |
5s |
查看:极狐GitLab Pages 全局设置 |
serverReadHeaderTimeout |
1s |
查看:极狐GitLab Pages 全局设置 |
serverWriteTimeout |
5m |
查看:极狐GitLab Pages 全局设置 |
serverKeepAlive |
15s |
查看:极狐GitLab Pages 全局设置 |
authCookieSessionTimeout |
10m |
查看:极狐GitLab Pages 全局设置 |
配置 ingress
此部分控制极狐GitLab Pages Ingress。
名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
apiVersion |
String | 在 apiVersion 字段中使用的值 |
|
annotations |
String | 此字段与 Kubernetes Ingress 的标准 annotations 完全匹配 |
|
configureCertmanager |
Boolean | false |
切换 Ingress annotation cert-manager.io/issuer 和 acme.cert-manager.io/http01-edit-in-place 。通过 cert-manager 获取极狐GitLab Pages 的 TLS 证书被禁用,因为获取通配符证书需要具有 DNS01 solver 的 cert-manager 颁发者。获取更多信息请查看极狐GitLab Pages 的 TLS 要求
|
enabled |
Boolean | 控制是否为支持它们的服务创建 Ingress 对象的设置。 如果未设置,则使用 global.ingress.enabled 设置 |
|
tls.enabled |
Boolean | 当设置为 false 时,将禁用 Pages 子 chart 的 TLS,主要用于无法在 ingress-level 使用 TLS 终止的情况,例如在 Ingress Controller 之前有 TLS 终止代理时 |
|
tls.secretName |
String | Kubernetes TLS Secret 的名称,其中包含 pages URL 的有效证书和密钥。如果未设置,则使用 global.ingress.tls.secretName 。 默认为未设置 |
Chart 配置示例
extraVolumes
extraVolumes
允许您在 chart 范围内配置 extra volumes。
extraVolumes
配置示例如下:
extraVolumes: |
- name: example-volume
persistentVolumeClaim:
claimName: example-pvc
extraVolumeMounts
extraVolumeMounts
允许您在 chart 范围内配置所有容器上的 extra volumeMounts。
extraVolumeMounts
配置示例如下:
extraVolumeMounts: |
- name: example-volume
mountPath: /etc/example
TLS 访问极狐GitLab Pages
要使用 TLS 访问极狐GitLab Pages 功能,您必须:
-
按照以下格式为您的极狐GitLab Pages 域创建专用通配符证书:
*.pages.<yourdomain>
。 -
在 Kubernetes 中创建密钥:
kubectl create secret tls tls-star-pages-<mysecret> --cert=<path/to/fullchain.pem> --key=<path/to/privkey.pem>
-
配置极狐GitLab Pages 使用此 secret:
gitlab: gitlab-pages: ingress: tls: secretName: tls-star-pages-<mysecret>
-
在您的 DNS 提供商中创建一个名为
*.pages.<yourdomaindomain>
的 DNS 条目,指向您的 LoadBalancer。