Personalizar funciones de Kf

Aumentar la retención

Puedes controlar cuántas compilaciones de Kf se conservan antes de que se recoja el espacio no utilizado.

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

Habilitar o inhabilitar el sidecar de Istio

Si no necesitas el sidecar de Istio para los pods de compilación, puedes inhabilitarlos asignando el valor true. Para habilitarlo, asigna el valor false.

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

Compilar límites de recursos de pods

El tamaño predeterminado de los recursos de los pods se puede aumentar para dar cabida a compilaciones muy grandes. Las unidades del valor son Mi o Gi.

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

Consulta la documentación sobre recursos de contenedores de Kubernetes para obtener más información sobre la gestión de recursos de contenedores.

Certificados autofirmados para agentes de servicio

Si quieres usar certificados autofirmados para TLS (https en lugar de http) en la URL del agente de servicios, el controlador de Kf requiere el certificado de la autoridad de certificación. Para configurar Kf en este caso, crea un secreto de Kubernetes inmutable en el espacio de nombres kf y actualiza el objeto kfsystem.spec.kf.config.secrets.controllerCACerts.name para que apunte a él.

  1. Crea un secreto para almacenar el certificado autofirmado.

    kubectl create secret generic cacerts -nkf --from-file /path/to/cert/certs.pem
    
  2. Hacer que el secreto sea inmutable.

    kubectl patch -nkf secret cacerts \
      --type='json' \
      -p="[{'op':'add','path':'/immutable','value':true}]"
    
  3. Actualiza kfsystem para que apunte al secreto.

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

Definir mínimos y ratios de CPU

Las relaciones y los mínimos de CPU predeterminados de las aplicaciones se pueden definir en el operador.

Los valores se definen en unidades de CPU. Las unidades suelen expresarse en milicpus (m), o milésimas de una CPU.

La propiedad spec.kf.config.appCPUMin especifica una cantidad mínima de CPU por aplicación, aunque el desarrollador haya especificado una cantidad inferior.

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

La propiedad spec.kf.config.appCPUPerGBOfRAM especifica la cantidad predeterminada de CPU que se asignará a cada aplicación por GB de RAM solicitado.

Puedes elegir diferentes enfoques en función del resultado que quieras obtener:

  • Elige la relación entre CPU y RAM de los nodos del clúster si quieres maximizar la utilización.
  • Elige una proporción de 1 CPU por cada 4 GB de RAM, que suele funcionar bien en aplicaciones web con muchas operaciones de E/S o con limitaciones de memoria.
kubectl patch \
    kfsystem kfsystem \
    --type='json' \
    -p="[{'op':'add','path':'/spec/kf/config/appCPUPerGBOfRAM','value':'250m'}]"