Como personalizar recursos do Kf

Retenção de build

Controle quantas versões do Kf 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 exigir o arquivo secundário do Istio para os pods do Build, poderá desativá-lo definindo o valor como true. Ative-o definindo o valor como false.

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

Limites de recursos do pod de build

O tamanho padrão do recurso de pod pode ser aumentado a partir do padrão para acomodar versões 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'}}}]"

Para mais informações sobre o gerenciamento de recursos de contêiner, leia a documentação de recursos de contêiner do Kubernetes.

Certificados autoassinados para agentes de serviços

Se você quiser usar certificados autoassinados para TLS (https em vez de http) para o URL do agente de serviços, o controlador Kf exigirá o 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 para apontar para 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 para apontar para o 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 desejado:

  • 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'}]"