Como personalizar recursos do Kf

Retenção de build

Você pode controlar o número de builds do Kf que serão mantidas antes de coletar o lixo.

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

Ativar ou desativar o arquivo secundário do Istio

Se você não precisar do arquivo secundário do Istio nos pods de build, poderá desativá-los definindo o valor como true. Para ativá-los, defina o valor como false.

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

Limites de recursos dos pods de build

É possível aumentar o tamanho padrão do recurso de pod para acomodar builds muito grandes. As unidades do valor estão em Mi ou Gi.

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

Consulte a documentação dos recursos de contêiner do Kubernetes para saber como gerenciá-los.

Certificados autoassinados para agentes de serviços

Se você quiser usar certificados autoassinados para TLS (https em vez de http) no URL do agente de serviços, o controlador Kf vai precisar do certificado de CA. Para configurar o Kf para esse cenário, crie um secret imutável do Kubernetes no namespace kf e atualize o objeto kfsystem.spec.kf.config.secrets.controllerCACerts.name com referência a ele.

  1. Crie um secret para armazenar o certificado autoassinado.

    kubectl create secret generic cacerts -nkf --from-file /path/to/cert/certs.pem
    
  2. Torne o secret imutável.

    kubectl patch -nkf secret cacerts \
      --type='json' \
      -p="[{'op':'add','path':'/immutable','value':true}]"
    
  3. Atualize o kfsystem com referência ao secret.

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

Definir valores mínimos e proporções da CPU

As proporções e os valores mínimos de CPU padrão do aplicativo podem ser definidos no operador.

Os valores são definidos em unidades de CPU. As unidades normalmente são expressas em milicpus (m) ou milhares de CPUs.

A propriedade spec.kf.config.appCPUMin especifica uma quantidade mínima de CPU por aplicativo, mesmo que o desenvolvedor tenha especificado menos.

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

A propriedade spec.kf.config.appCPUPerGBOfRAM especifica uma quantidade padrão de CPU para fornecer a cada app por GB ou RAM solicitado.

Você pode escolher abordagens diferentes com base no resultado que quer:

  • Se você quiser maximizar a utilização, escolha a proporção de CPU para RAM para os nós do cluster.
  • Escolha uma proporção de 1 CPU por 4 GB de RAM, que geralmente funciona bem para aplicativos da web de E/S ou vinculados à memória.
kubectl patch \
    kfsystem kfsystem \
    --type='json' \
    -p="[{'op':'add','path':'/spec/kf/config/appCPUPerGBOfRAM','value':'250m'}]"