|
Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official. |
token k3s
O K3s usa tokens para garantir o processo de junção do nó e para criptografar informações confidenciais que são persistidas no datastore. Tokens autenticam o cluster para o nó que está se juntando, e o nó para o cluster.
Formato do Token
Tokens K3s podem ser especificados em formato seguro ou curto. O formato seguro é preferido, pois permite que o cliente autentique a identidade do cluster ao qual está se juntando, antes de enviar credenciais.
Seguro
O formato de token seguro (ocasionalmente referido como um token "completo") contém as seguintes partes:
<prefix><cluster CA hash>::<credentials>
-
prefix: um prefixo fixoK10que identifica o formato do token -
cluster CA hash: O hash do certificado CA do servidor do cluster, usado para autenticar o servidor ao nó que está se juntando.-
Para certificados CA autoassinados, este é o somatório SHA256 do certificado formatado em PEM, conforme armazenado no disco.
-
Para certificados CA personalizados, este é o somatório SHA256 da codificação DER do certificado raiz; comumente conhecido como a impressão digital do certificado.
-
-
credentials: O nome de usuário e a senha, ou token de portador, usados para autenticar o nó que está se juntando ao cluster.
Inicialização TLS
Quando um token seguro é especificado, o nó que está se juntando realiza os seguintes passos para validar a identidade do servidor ao qual se conectou, antes de transmitir credenciais:
-
Com a verificação TLS desativada, baixe o pacote CA de
/cacertsno servidor ao qual está se juntando. -
Calcule o hash SHA256 do certificado CA, conforme descrito acima.
-
Compare o hash SHA256 calculado com o hash do token.
-
Se o hash corresponder, valide se o certificado apresentado pelo servidor pode ser validado pelo pacote CA do servidor.
-
Se o certificado do servidor for válido, apresente credenciais para ingressar no cluster usando autenticação básica ou por token de portador, dependendo do tipo de token.
Curto
O formato de token curto inclui apenas a senha ou o token de portador usado para autenticar o nó que está se juntando ao cluster.
Se um token curto for usado, o nó que está se juntando confia implicitamente no pacote CA apresentado pelo servidor; as etapas 2-4 no processo de inicialização TLS são puladas. A conexão inicial pode ser vulnerável a um ataque man-in-the-middle.
Tipos de token
K3s suporta três tipos de tokens. Apenas o token do servidor está disponível por padrão; tipos de tokens adicionais devem ser configurados ou criados pelo administrador.
| Tipo | Opção de CLI | Variável de ambiente |
|---|---|---|
auditoria |
|
|
Agente |
|
|
Inicialização |
|
|
auditoria
Se nenhum token for fornecido ao iniciar o primeiro servidor no cluster, um é criado com uma senha aleatória. O token do servidor é sempre gravado em /var/lib/rancher/k3s/server/token, em formato seguro.
O token do servidor pode ser usado para ingressar tanto nós de servidor quanto de agente no cluster. Qualquer pessoa com acesso ao token do servidor essencialmente tem acesso total de administrador ao cluster. Este token deve ser guardado com cuidado.
O token do servidor também é usado como a senha PBKDF2 para criptografar informações confidenciais que são persistidas no datastore conhecido como dados de bootstrap. Os dados de bootstrap são essenciais para configurar novos nós de servidor ou restaurar a partir de um instantâneo. Por essa razão, o token deve ser feito backup juntamente com o datastore do cluster.
|
A menos que certificados CA personalizados estejam em uso, apenas o formato de token curto (apenas senha) pode ser usado ao iniciar o primeiro servidor no cluster. Isso ocorre porque o hash CA do cluster não pode ser conhecido até que o servidor tenha gerado os certificados CA autoassinados do cluster. |
Para mais informações sobre o uso de certificados CA personalizados, consulte a k3s certificate documentação.
Para mais informações sobre como fazer backup do seu cluster, consulte a Backup e Restauração documentação.
Agente
Por padrão, o token do agente é o mesmo que o token do servidor. O token do agente pode ser definido antes ou depois que o cluster foi iniciado, alterando a opção do CLI ou a variável de ambiente em todos os servidores do cluster. O token do agente é semelhante ao token do servidor, pois é configurado estaticamente e não expira.
O token do agente é escrito em /var/lib/rancher/k3s/server/agent-token, em formato seguro. Se nenhum token de agente for especificado, este arquivo é um link para o token do servidor.
Inicialização
|
Portão de Versão
O suporte para o comando |
K3s suporta tokens de bootstrap de agente bootstrap tokens gerados dinamicamente e que expiram automaticamente.
token k3s
A ferramenta CLI de token k3s lida com:
-
O ciclo de vida dos tokens de bootstrap, usando o mesmo código de geração e validação que os
kubeadm tokentokens de bootstrap. Observe que ambas as CLIs são semelhantes. -
A rotação do token do servidor
NAME: k3s token - Manage tokens USAGE: k3s token command [command options] [arguments...] COMMANDS: create Create bootstrap tokens on the server delete Delete bootstrap tokens on the server generate Generate and print a bootstrap token, but do not create it on the server list List bootstrap tokens on the server rotate Rotate original server token with a new token OPTIONS: --help, -h show help
k3s token create [token]
Criar um novo token. O [token] é o token real a ser escrito, conforme gerado por k3s token generate. Se nenhum token for fornecido, um aleatório será gerado.
Um token em formato seguro, incluindo o hash CA do cluster, será escrito no stdout. A saída deste comando deve ser salva, pois a parte secreta do token não pode ser mostrada novamente.
| Flag | Descrição |
|---|---|
|
Pasta para manter o estado (padrão: /var/lib/rancher/k3s ou ${HOME}/.rancher/k3s se não for root) |
|
Servidor para se conectar [$KUBECONFIG] |
|
Uma descrição amigável para humanos de como este token é usado |
|
Grupos extras que este token irá autenticar quando usado para autenticação. (padrão: Padrão: "system:bootstrappers:k3s:default-node-token") |
|
A duração antes que o token seja automaticamente excluído (por exemplo, 1s, 2m, 3h). Se definido como '0', o token nunca expirará (padrão: 24h0m0s) |
|
Descreve as maneiras pelas quais este token pode ser usado. (padrão: "assinatura, autenticação") |
k3s token delete
Excluir um ou mais tokens. O token completo pode ser fornecido, ou apenas o ID do token.
| Flag | Descrição |
|---|---|
|
Pasta para manter o estado (padrão: /var/lib/rancher/k3s ou ${HOME}/.rancher/k3s se não for root) |
|
Servidor para se conectar [$KUBECONFIG] |
k3s token generate
Gerar um token de bootstrap gerado aleatoriamente.
Você não precisa usar este comando para gerar um token. Você pode fazer isso você mesmo, desde que esteja no formato [a-z0-9]{6}.[a-z0-9]{16}, onde a primeira parte é o ID do token e a segunda parte é o segredo.
| Flag | Descrição |
|---|---|
|
Pasta para manter o estado (padrão: /var/lib/rancher/k3s ou ${HOME}/.rancher/k3s se não for root) |
|
Servidor para se conectar [$KUBECONFIG] |
k3s token list
Listar tokens de bootstrap, mostrando seu ID, descrição e tempo restante de vida.
| Flag | Descrição |
|---|---|
|
Pasta para manter o estado (padrão: /var/lib/rancher/k3s ou ${HOME}/.rancher/k3s se não for root) |
|
Servidor para se conectar [$KUBECONFIG] |
|
Formato de saída. Opções válidas: texto, json (padrão: "texto") |
k3s token rotate
|
Portão de Versão
Disponível a partir das versões de outubro de 2023 (v1.28.2+k3s1, v1.27.7+k3s1, v1.26.10+k3s1, v1.25.15+k3s1). |
Rotacionar o token do servidor original com um novo token do servidor. Após executar este comando, todos os servidores e quaisquer agentes que originalmente se juntaram com o token antigo devem ser reiniciados com o novo token.
Se você não especificar um novo token, um será gerado para você.
| Flag | Descrição |
|---|---|
|
Pasta para manter o estado (padrão: /var/lib/rancher/k3s ou ${HOME}/.rancher/k3s se não for root) |
|
Servidor para se conectar [$KUBECONFIG] |
|
Servidor para se conectar (padrão: "https://127.0.0.1:6443") [$K3S_URL] |
|
Token existente usado para juntar um servidor ou agente a um cluster [$K3S_TOKEN] |
|
Novo token que substitui o token existente |
|
Instantâneos tirados antes da rotação exigirão o token antigo do servidor ao restaurar o cluster. |