cks

3.7 Kubelet config

Detalhamento da configuração do Kubelet relevante para o CKS.

O que é

O Kubelet em cada nó lê um arquivo de configuração (config file) e aceita argumentos na linha de comando. O CIS Benchmark e o kube-bench exigem que esse arquivo tenha permissões restritas (apenas root leitura) e que a autenticação/autorização esteja correta (ex.: client CA para certificados).

Documentação oficial

Localização típica

/var/lib/kubelet/config.yaml

Em alguns ambientes o path pode ser outro (ex.: passado via --config no serviço do kubelet). O kube-bench costuma indicar o path usado no nó.

Permissões CIS (ex.: 4.1.9)

O arquivo de configuração do kubelet não deve ser legível por outros usuários:

chmod 600 /var/lib/kubelet/config.yaml

Assim apenas o dono (normalmente root) pode ler e escrever.

clientCAFile (autenticação)

Para que o Kubelet verifique certificados de clientes (ex.: API server, audit), o config ou os argumentos do Kubelet devem definir:

No YAML (ex.: config.yaml):

authentication:
  x509:
    clientCAFile: /path/to/ca.crt

Isso está alinhado às recomendações CIS para o Kubelet.

Como o kube-bench usa isso

O kube-bench com --targets=node verifica, entre outras coisas:

Corrija os FAIL seguindo as instruções impressas pelo kube-bench (chmod, paths, etc.).

Dica para o exame