Personalizar funcionalidades do Kf

Aumente a retenção

Pode controlar quantos Kf Builds são mantidos antes de serem recolhidos como lixo.

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

Ative ou desative o Istio Sidecar

Se não precisar do sidecar do Istio para os pods de compilação, pode desativá-los 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}]"

Crie limites de recursos de pods

O tamanho do recurso do pod predefinido pode ser aumentado em relação ao predefinido para acomodar compilaçõ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'}}}]"

Leia os documentos de recursos de contentores do Kubernetes para mais informações sobre a gestão de recursos de contentores.

Certificados autoassinados para agentes de serviços

Se quiser usar certificados autoassinados para TLS (https em vez de http) para o URL do agente de serviços, o controlador Kf requer o certificado da AC. Para configurar o Kf para este cenário, crie um segredo do Kubernetes imutável no espaço de nomes kf e atualize o objeto kfsystem.spec.kf.config.secrets.controllerCACerts.name para apontar para ele.

  1. Crie um segredo para armazenar o certificado autoassinado.

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

    kubectl patch -nkf secret cacerts \
      --type='json' \
      -p="[{'op':'add','path':'/immutable','value':true}]"
    
  3. Atualize o kfsystem para apontar para a chave secreta.

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

Defina mínimos e rácios de CPU

As proporções e os mínimos da CPU predefinidos da aplicação podem ser definidos no operador.

Os valores são definidos em unidades de CPU. Normalmente, as unidades são expressas em milicpus (m) ou milésimos de uma CPU.

A propriedade spec.kf.config.appCPUMin especifica uma quantidade mínima de CPU por aplicação, mesmo que o programador 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 predefinida de CPU a atribuir a cada app por GB ou RAM pedido.

Pode escolher abordagens diferentes com base no resultado pretendido:

  • Escolha a proporção de CPU para RAM dos nós do cluster se quiser maximizar a utilização.
  • Escolha uma proporção de 1 CPU para 4 GB de RAM, que normalmente funciona bem para aplicações Web limitadas por E/S ou memória.
kubectl patch \
    kfsystem kfsystem \
    --type='json' \
    -p="[{'op':'add','path':'/spec/kf/config/appCPUPerGBOfRAM','value':'250m'}]"