使用 GitLab-Spamcheck chart

spamcheck 子 chart 提供了 Spamcheck 的部署,这是一个反垃圾邮件引擎。

要求

此 chart 依赖于对 GitLab API 的访问。

配置

启用 Spamcheck

spamcheck 默认被禁用。要在实例上启用它,请将 Helm 属性 global.spamcheck.enabled 设置为 true,例如:

helm upgrade --force --install gitlab . \
--set global.hosts.domain='your.domain.com' \
--set global.hosts.externalIP=XYZ.XYZ.XYZ.XYZ \
--set certmanager-issuer.email='me@example.com' \
--set global.spamcheck.enabled=true

配置使用 Spamcheck

  1. 在顶部栏上,选择 菜单 > 管理员
  2. 在左侧边栏,选择 设置 > 报告
  3. 展开 垃圾邮件和反机器人保护
  4. 更新垃圾邮件检查设置:
    1. 选中 通过外部API端点启用垃圾信息检查 复选框
    2. 对于外部垃圾邮件检查端点的 URL,使用 grpc://gitlab-spamcheck.default.svc:8001,其中 default 替换为部署 GitLab 的 Kubernetes 命名空间。
    3. 垃圾邮件检查 API 密钥 留空。
  5. 选择 保存修改

安装命令行选项

下表包含可以使用 --set 标志提供给 helm install 命令的所有可能的 chart 配置。

参数 默认值 描述
annotations {} Pod annotations
common.labels {} 应用于此 chart 创建的所有对象的补充标签。
deployment.livenessProbe.initialDelaySeconds 20 启动 liveness 探测前的延迟时间
deployment.livenessProbe.periodSeconds 60 多久执行一次 liveness 探测
deployment.livenessProbe.timeoutSeconds 30 liveness 探测超时时间
deployment.livenessProbe.successThreshold 1 liveness 探测失败后,被视为成功的最小连续成功次数
deployment.livenessProbe.failureThreshold 3 liveness 探测成功后,被视为失败的最小连续失败次数
deployment.readinessProbe.initialDelaySeconds 0 启动 readiness 探测前的延迟时间
deployment.readinessProbe.periodSeconds 10 多久执行一次 readiness 探测
deployment.readinessProbe.timeoutSeconds 2 readiness 探测超时时间
deployment.readinessProbe.successThreshold 1 readiness 探测失败后,被视为成功的最小连续成功次数
deployment.readinessProbe.failureThreshold 3 readiness 探测成功后,被视为失败的最小连续失败次数
deployment.strategy {} 允许配置部署使用的更新策略。如果未提供,则使用集群默认值。
hpa.behavior {scaleDown: {stabilizationWindowSeconds: 300 }} 包含放大和缩小行为的规范(需要 autoscaling/v2beta2 或更高版本)
hpa.customMetrics [] 自定义指标包含用于计算所需副本数的规范(覆盖在 targetAverageUtilization 中配置的平均 CPU 利用率的默认使用值)
hpa.cpu.targetType AverageValue 设置自动缩放 CPU 目标类型,必须是 UtilizationAverageValue
hpa.targetAverageValue 100m 设置自动扩缩容目标值
hpa.cpu.targetAverageUtilization   设置自动缩放 CPU 目标利用率
hpa.memory.targetType   设置自动缩放内存目标类型,必须是 UtilizationAverageValue
hpa.memory.targetAverageValue   设置自动缩放内存目标值
hpa.memory.targetAverageUtilization   设置自动缩放内存目标利用率
hpa.minReplicas   最小副本数
hpa.maxReplicas   最大副本数
hpa.targetAverageValue   已弃用 设置自动缩放 CPU 目标值
image.repository registry.gitlab.com/gitlab-com/gl-security/engineering-and-research/automation-team/spam/spamcheck Spamcheck 镜像仓库
logging.level info 日志级别
maxReplicas 10 HPA maxReplicas
maxUnavailable 1 HPA maxUnavailable
minReplicas 2 HPA maxReplicas
podLabels {} 补充 Pod 标签,不用于选择器。
resources.requests.cpu 100m Spamcheck 最小 CPU
resources.requests.memory 100M Spamcheck 最小内存
securityContext.fsGroup 1000 在其下启动 Pod 的 Group ID
securityContext.runAsUser 1000 在其下启动 Pod 的 User ID
serviceLabels {} 补充服务标签
service.externalPort 8001 Spamcheck 外部端口
service.internalPort 8001 Spamcheck 内部端口
service.type ClusterIP Spamcheck 服务类型
serviceAccount.enabled 使用 ServiceAccount 标志 false
serviceAccount.create 创建 ServiceAccount 标志 false
tolerations [] pod 分配的容忍标签
extraEnvFrom {} 要暴露的其它数据源的额外环境变量列表
priorityClassName   指派给 Pod 的 Priority class

Chart 配置示例

tolerations

tolerations 允许您调度 pod 到受污染的工作节点上。

下面是一个使用 tolerations 的示例:

tolerations:
- key: "node_label"
  operator: "Equal"
  value: "true"
  effect: "NoSchedule"
- key: "node_label"
  operator: "Equal"
  value: "true"
  effect: "NoExecute"

annotations

annotations 允许您向 Spamcheck pod 添加注释。例如:

annotations:
  kubernetes.io/example-annotation: annotation-value

resources

resources 允许您配置 Spamcheck pod 可以消耗的最小和最大资源量(内存和 CPU)。

例如:

resources:
  requests:
    memory: 100m
    cpu: 100M

livenessProbe/readinessProbe

deployment.livenessProbedeployment.readinessProbe 提供了一种机制,来帮助控制 Spamcheck Pod 在某些情况下的终止,例如,当容器处于损坏状态时。

例如:

deployment:
  livenessProbe:
    initialDelaySeconds: 10
    periodSeconds: 20
    timeoutSeconds: 3
    successThreshold: 1
    failureThreshold: 10
  readinessProbe:
    initialDelaySeconds: 10
    periodSeconds: 5
    timeoutSeconds: 2
    successThreshold: 1
    failureThreshold: 3

有关此配置的更多详细信息,请参阅官方 Kubernetes 文档