Skip to content

Commit 7373ebb

Browse files
committed
Add content/pt/docs/concepts/configuration/organize-cluster-access-kubeconfig.md
1 parent 49a6df0 commit 7373ebb

File tree

1 file changed

+131
-0
lines changed

1 file changed

+131
-0
lines changed
Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
---
2+
title: Organizando o acesso ao cluster usando arquivos kubeconfig
3+
content_type: concept
4+
weight: 60
5+
---
6+
7+
<!-- overview -->
8+
9+
Utilize arquivos kubeconfig para organizar informações sobre clusters, usuários, namespaces e mecanismos de autenticação. A ferramenta de linha de comando `kubectl` faz uso dos arquivos kubeconfig para encontrar as informações necessárias para escolher e se comunicar com o serviço de API de um cluster.
10+
11+
12+
{{< note >}}
13+
Um arquivo que é utilizado para configurar o acesso aos clusters é chamado de *kubeconfig*. Esta á uma forma genérica de referenciamento para um arquivo de configuração desta natureza. Isso não significa que existe um arquivo com o nome `kubeconfig`.
14+
{{< /note >}}
15+
16+
Por padrão, o `kubectl` procura por um arquivo de nome `config` no diretório `$HOME/.kube`
17+
18+
Você pode especificar outros arquivos kubeconfig através da variável de ambiente `KUBECONFIG` ou adicionando a opção [`--kubeconfig`](/docs/reference/generated/kubectl/kubectl/).
19+
20+
Para maiores detalhes na criação e especificação de um kubeconfig, veja o passo a passo em [Configurar Acesso para Múltiplos Clusters](/docs/tasks/access-application-cluster/configure-access-multiple-clusters).
21+
22+
23+
<!-- body -->
24+
25+
## Suportando múltiplos clusters, usuários e mecanismos de autenticação
26+
27+
Imagine que você possua inúmeros clusters, e seus usuários e componentes se autenticam de várias formas. Por exemplo:
28+
29+
- Um kubelet ativo pode se autenticar utilizando certificados
30+
- Um usuário pode se autenticar através de tokens
31+
- Administradores podem possuir conjuntos de certificados os quais provém acesso aos usuários de forma individual.
32+
33+
Através de arquivos kubeconfig, você pode organizar os seus clusters, usuários, e namespaces. Você também pode definir contextos para uma fácil troca entre clusters e namespaces.
34+
35+
36+
## Contexto
37+
38+
Um elemento de *contexto* em um kubeconfig é utilizado para agrupar parâmetros de acesso em um nome conveniente. Cada contexto possui três parâmetros: cluster, namespace, e usuário.
39+
40+
Por padrão, a ferramenta de linha de comando `kubectl` utiliza os parâmetros do _contexto atual_ para se comunicar com o cluster.
41+
42+
Para escolher o contexto atual:
43+
44+
```shell
45+
kubectl config use-context
46+
```
47+
48+
## A variável de ambiente KUBECONFIG
49+
50+
A variável de ambiente `KUBECONFIG` possui uma lista dos arquivos kubeconfig. Para Linux e Mac, esta lista é delimitada por vírgula. No Windows, a lista é delimitada por ponto e vírgula. A variável de ambiente `KUBECONFIG` não é um requisito obrigatório - caso ela não exista o `kubectl` utilizará o arquivo kubeconfig padrão localizado no caminho `$HOME/.kube/config`.
51+
52+
Se a variável de ambiente `KUBECONFIG` existir, o `kubectl` utilizará uma configuração que é o resultado da combinação dos arquivos listados na variável de ambiente `KUBECONFIG`.
53+
54+
## Combinando arquivos kubeconfig
55+
56+
Para inspecionar a sua configuração atual, execute o seguinte comando:
57+
58+
```shell
59+
kubectl config view
60+
```
61+
62+
Como descrito anteriormente, a saída poderá ser resultado de um único arquivo kubeconfig, ou poderá ser o resultado da junção de vários arquivos kubeconfig.
63+
64+
Aqui estão as regras que o `kubectl` utiliza quando realiza a combinação de arquivos kubeconfig:
65+
66+
1. Se o argumento `--kubeconfig` está definido, apenas o arquivo especificado será utilizado. Apenas uma instância desta flag é permitida.
67+
68+
Caso contrário, se a variável de ambiente `KUBECONFIG` estiver definida, esta deverá ser utilizada como uma lista de arquivos a serem combinados, seguindo o fluxo a seguir:
69+
70+
* Ignorar arquivos vazios.
71+
* Produzir erros para aquivos cujo conteúdo não for possível desserializar.
72+
* O primeiro arquivo que definir um valor ou mapear uma chave determinada, será o escolhido.
73+
* Nunca modificar um valor ou mapear uma chave.
74+
Exemplo: Preservar o contexto do primeiro arquivo que definir `current-context`.
75+
Exemplo: Se dois arquivos especificarem um `red-user`, use apenas os valores do primeiro `red-user`. Mesmo se um segundo arquivo possuir entradas não conflitantes sobre a mesma entrada `red-user`, estas deverão ser descartadas.
76+
77+
Para um exemplo de definição da variável de ambiente `KUBECONFIG` veja [Definido a variável de ambiente KUBECONFIG](/docs/tasks/access-application-cluster/configure-access-multiple-clusters/#set-the-kubeconfig-environment-variable).
78+
79+
Caso contrário, utilize o arquivo kubeconfig padrão encontrado no diretório `$HOME/.kube/config`, sem qualquer tipo de combinação.
80+
81+
1. Determine o contexto a ser utilizado baseado no primeiro padrão encontrado, nesta ordem:
82+
83+
1. Usar o conteúdo da flag `--context` caso ela existir.
84+
1. Usar o `current-context` a partir da combinação dos arquivos kubeconfig.
85+
86+
87+
Um contexto vazio é permitido neste momento.
88+
89+
90+
1. Determinar o cluster e o usuário. Neste ponto, poderá ou não existir um contexto.
91+
Determinar o cluster e o usuário no primeiro padrão encontrado de acordo com a ordem à seguir. Este procedimento deverá executado duas vezes: uma para definir o usuário a outra para definir o cluster.
92+
93+
1. Utilizar a flag caso ela existir: `--user` ou `--cluster`.
94+
1. Se o contexto não estiver vazio, utilizar o cluster ou usuário deste contexto.
95+
96+
O usuário e o cluster poderão estar vazios neste ponto.
97+
98+
1. Determinar as informações do cluster atual a serem utilizadas. Neste ponto, poderá ou não existir informações de um cluster.
99+
100+
Construir cada peça de informação do cluster baseado nas opções à seguir; a primeira ocorrência encontrada será a opção vencedora:
101+
102+
1. Usar as flags de linha de comando caso existirem: `--server`, `--certificate-authority`, `--insecure-skip-tls-verify`.
103+
1. Se algum atributo do cluster existir a partir da combinação de kubeconfigs, estes deverão ser utilizados.
104+
1. Se não existir informação de localização do servidor falhar.
105+
106+
1. Determinar a informação atual de usuário a ser utilizada. Construir a informação de usuário utilizando as mesmas regras utilizadas para o caso de informações de cluster, exceto para a regra de técnica de autenticação que deverá ser única por usuário:
107+
108+
1. Usar as flags, caso existirem: `--client-certificate`, `--client-key`, `--username`, `--password`, `--token`.
109+
1. Usar os campos `user` resultado da combinação de arquivos kubeconfig.
110+
1. Se existirem duas técnicas conflitantes, falhar.
111+
112+
1. Para qualquer informação que ainda estiver ausente, utilizar os valores padrão e potencialmente solicitar informações de autenticação a partir do prompt de comando.
113+
114+
115+
## Referências de arquivos
116+
117+
Arquivos e caminhos referenciados em um arquivo kubeconfig são relativos à localização do arquivo kubeconfig.
118+
119+
Referências de arquivos na linha de comando são relativas ao diretório de trabalho vigente.
120+
121+
No arquivo `$HOME/.kube/config`, caminhos relativos são armazenados de forma relativa, e caminhos absolutos são armazenados de forma absoluta.
122+
123+
## {{% heading "whatsnext" %}}
124+
125+
126+
* [Configurar Accesso para Multiplos Clusters](/docs/tasks/access-application-cluster/configure-access-multiple-clusters/)
127+
* [`kubectl config`](/docs/reference/generated/kubectl/kubectl-commands#config)
128+
129+
130+
131+

0 commit comments

Comments
 (0)