• Existem dois tipos de ServiceAccounts, uma de usuário e outra de serviço;
  • Usada para autenticar um serviço para se comunicar com a API do kubernetes;
  • A partir da versão 1.24, tokens não são criados automaticamente na criação de uma SA
    • Você pode criar uma secret do tipo service account e associar a serviceaccount. Esse token não terá expiração
    • ou usar a api para recuperar o token kubectl create token pod-with-serviceaccount. Terá a expiração dada pelo servidor... default 1hora
  • Todo namespace possui uma service account criada.
    • Essa service account é automaticamente montada dentro do pod.
  • Não é possível editar a serviceaccount de um pod. É necessário deletar e recriar o pod;
  • As credenciais fornecidas pela service account, serão automaticamente montadas no diretório /var/run/secrets/kubernetes.io/serviceaccount . A propriedade pod.automountServiceAccountToken: false desabilita esse comportamento.
    • Essa opção funciona tanto para sa.spec quanto pod.spec

[!NOTE]- Service Account

filePath: "@/Attachments/Kubernetes/serviceaccount/serviceaccount-test.yaml"

[!NOTE]- Pod with service account

filePath: "@/Attachments/Kubernetes/serviceaccount/pod-with-serviceaccount.yaml"

[!NOTE]- Pod with service account

filePath: "@/Attachments/Kubernetes/serviceaccount/pod-with-serviceaccount-automount-false.yaml"

[!NOTE]- Service Account with token attached

filePath: "@/Attachments/Kubernetes/serviceaccount/serviceaccount-with-token.yaml"
kubectl create serviceaccount teste
kubectl create token SERVICEACCOUNT --duration=3600s