自定义 Kf 功能

构建保留

您可以控制在进行垃圾回收之前保留的 Kf 构建数。

kubectl patch \
kfsystem kfsystem \
--type='json' \
-p="[{'op': 'replace', 'path': '/spec/kf/config/buildRetentionCount', 'value': 1}]"

启用或停用 Istio Sidecar

如果您不需要构建 pod 的 Istio Sidecar,则可以通过将值设置为 true 来停用它们。通过将值设置为 false 来启用。

kubectl patch \
kfsystem kfsystem \
--type='json' \
-p="[{'op': 'replace', 'path': '/spec/kf/config/buildDisableIstioSidecar', 'value': true}]"

构建 Pod 资源限制

默认 Pod 资源大小可以从默认值增加,以容纳非常大的构建。该值的单位为 MiGi

kubectl patch \
kfsystem kfsystem \
--type='json' \
-p="[{'op': 'replace', 'path': '/spec/kf/config/buildPodResources', 'value': {'limits': {'memory': '234Mi'}}}]"

如需详细了解容器资源管理,请参阅 Kubernetes 容器资源文档

Service Broker 的自签名证书

如果要对 service broker 网址的 TLS(即 https,而非 http)使用自签名证书,那么 Kf 控制器将需要具备 CA 证书。如需针对此场景配置 Kf,请在 kf 命名空间中创建一个不可变的 Kubernetes Secret,并更新 kfsystem.spec.kf.config.secrets.controllerCACerts.name 对象以指向该 Secret。

  1. 创建 Secret 以存储自签名证书。

    kubectl create secret generic cacerts -nkf --from-file /path/to/cert/certs.pem
    
  2. 使 Secret 不可变。

    kubectl patch -nkf secret cacerts \
      --type='json' \
      -p="[{'op':'add','path':'/immutable','value':true}]"
    
  3. 更新 kfsystem 以指向该 Secret。

    kubectl patch \
      kfsystem kfsystem \
      --type='json' \
      -p="[{'op':'add','path':'/spec/kf/config/secrets','value':{'controllerCACerts':{'name':'cacerts'}}}]"
    

设置 CPU 最小值和比率

您可以在运算符中设置应用默认 CPU 比率和最小值。

这些值以 CPU 单位为单位设置。单位通常以 millicpu (m) 或千分之一个 CPU 表示。

spec.kf.config.appCPUMin 属性指定每个应用的最小 CPU 量,即使开发者指定了更小的数值,系统也会使用前者。

kubectl patch \
    kfsystem kfsystem \
    --type='json' \
    -p="[{'op':'add','path':'/spec/kf/config/appCPUMin','value':'200m'}]"

spec.kf.config.appCPUPerGBOfRAM 属性指定对于请求的每 GB RAM,为每个应用提供的默认 CPU 量。

您可以根据所需的结果选择不同的方法:

  • 如果要最大限度地提高利用率,请为集群节点选择 CPU 与 RAM 的比率。
  • 对于受限于 I/O 或内存的 Web 应用,选择“1 个 CPU 比 4 GB RAM”的比率通常效果最好。
kubectl patch \
    kfsystem kfsystem \
    --type='json' \
    -p="[{'op':'add','path':'/spec/kf/config/appCPUPerGBOfRAM','value':'250m'}]"