Skip to content

Commit 528e0f6

Browse files
[pt-br] Add docs/tasks/administer-cluster/kubelet-credential-provider.md (#40547)
* localizing operator.md * small changes * fixing a design pattern and formatting * Create access-cluster-services.md * Create port-forward-access-application-cluster.md * Create connecting-frontend-backend.md * Create limit-storage-consumption.md * Create kubelet-credential-provider.md * Delete access-cluster-services.md * Delete port-forward-access-application-cluster.md * Delete connecting-frontend-backend.md * Delete limit-storage-consumption.md * Delete kubelet-credential-provider.md * Create kubelet-credential-provider.md * Delete operator.md * removing trash * translating comments * Update content/pt-br/docs/tasks/administer-cluster/kubelet-credential-provider.md Co-authored-by: Mauren Berti <[email protected]> * Update content/pt-br/docs/tasks/administer-cluster/kubelet-credential-provider.md Co-authored-by: Mauren Berti <[email protected]> * Update content/pt-br/docs/tasks/administer-cluster/kubelet-credential-provider.md Co-authored-by: Mauren Berti <[email protected]> * Update content/pt-br/docs/tasks/administer-cluster/kubelet-credential-provider.md Co-authored-by: Mauren Berti <[email protected]> * Update content/pt-br/docs/tasks/administer-cluster/kubelet-credential-provider.md Co-authored-by: Mauren Berti <[email protected]> * Update content/pt-br/docs/tasks/administer-cluster/kubelet-credential-provider.md Co-authored-by: Mauren Berti <[email protected]> * Update content/pt-br/docs/tasks/administer-cluster/kubelet-credential-provider.md Co-authored-by: Mauren Berti <[email protected]> * Update content/pt-br/docs/tasks/administer-cluster/kubelet-credential-provider.md Co-authored-by: Mauren Berti <[email protected]> * Update content/pt-br/docs/tasks/administer-cluster/kubelet-credential-provider.md Co-authored-by: Mauren Berti <[email protected]> * adding suggested changes * Update content/pt-br/docs/tasks/administer-cluster/kubelet-credential-provider.md Co-authored-by: Mauren Berti <[email protected]> * removing reviewers --------- Co-authored-by: Mauren Berti <[email protected]>
1 parent cdc8bac commit 528e0f6

File tree

1 file changed

+144
-0
lines changed

1 file changed

+144
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
---
2+
title: Configurar um provedor de credenciais de imagem para o kubelet
3+
description: Configure o plugin de provedor de credenciais de imagem do kubelet
4+
content_type: task
5+
min-kubernetes-server-version: v1.26
6+
weight: 120
7+
---
8+
9+
{{< feature-state for_k8s_version="v1.26" state="stable" >}}
10+
11+
<!-- overview -->
12+
13+
A partir do Kubernetes v1.20, o kubelet pode obter dinamicamente as credenciais para um registro de imagem de contêiner usando plugins executáveis. O kubelet e o plugin executável se comunicam por meio de stdio (stdin, stdout e stderr) usando APIs versionadas do Kubernetes. Esses plugins permitem que o kubelet solicite credenciais para um registro de contêiner dinamicamente, em vez de armazenar credenciais estáticas no disco. Por exemplo, o plugin pode se comunicar com um servidor de metadados local para recuperar credenciais de curta duração para uma imagem que está sendo baixada pelo kubelet.
14+
15+
Você pode estar interessado em usar essa funcionalidade se alguma das condições abaixo for verdadeira:
16+
17+
* Chamadas de API para um serviço de provedor de nuvem são necessárias para recuperar informações de autenticação para um registro.
18+
* As credenciais têm tempos de expiração curtos e é necessário solicitar novas credenciais com frequência.
19+
* Armazenar credenciais de registro no disco ou em `imagePullSecrets` não é aceitável.
20+
21+
Este guia demonstra como configurar o mecanismo de plugin do provedor de credenciais de imagem do kubelet.
22+
23+
## {{% heading "prerequisites" %}}
24+
25+
* Você precisa de um cluster Kubernetes com nós que suportem plugins de provedor de credenciais do kubelet. Esse suporte está disponível no Kubernetes {{< skew currentVersion >}}; As versões v1.24 e v1.25 do Kubernetes incluíram isso como um recurso beta, ativado por padrão.
26+
27+
* Uma implementação funcional de um plugin executável de provedor de credenciais. Você pode criar seu próprio plugin ou usar um fornecido por provedores de nuvem.
28+
29+
{{< version-check >}}
30+
31+
<!-- steps -->
32+
33+
## Instalando Plugins nos Nós
34+
35+
Um plugin de provedor de credenciais é um binário executável que será executado pelo kubelet. Certifique-se de que o binário do plugin exista em cada nó do seu cluster e esteja armazenado em um diretório conhecido. O diretório será necessário posteriormente ao configurar as _flags_ do kubelet.
36+
37+
## Configurando o Kubelet
38+
39+
Para usar esse recurso, o kubelet espera que duas flags sejam definidas:
40+
41+
* `--image-credential-provider-config` - o caminho para o arquivo de configuração do plugin de provedor de credenciais.
42+
* `--image-credential-provider-bin-dir` - o caminho para o diretório onde estão localizados os binários do plugin de provedor de credenciais.
43+
44+
### Configurar um provedor de credenciais do kubelet
45+
46+
O arquivo de configuração passado para `--image-credential-provider-config` é lido pelo kubelet para determinar quais plugins executáveis devem ser invocados para quais imagens de contêiner. Aqui está um exemplo de arquivo de configuração que você pode acabar usando se estiver usando o plugin baseado no [ECR](https://aws.amazon.com/ecr/):
47+
48+
```yaml
49+
apiVersion: kubelet.config.k8s.io/v1
50+
kind: CredentialProviderConfig
51+
# providers é uma lista de plug-ins auxiliares do provedor de credenciais que serão habilitados pelo kubelet.
52+
# Vários provedores podem corresponder a uma única imagem, caso em que as credenciais
53+
# de todos os provedores serão devolvidos ao kubelet. Se vários provedores forem chamados
54+
# para uma única imagem, os resultados são combinados. Se os provedores retornarem
55+
# chaves de autenticação sobrepostas, o valor do provedor anterior da lista é usado.
56+
providers:
57+
# name é o nome necessário do provedor de credenciais. Deve corresponder ao nome do
58+
# executável do provedor visto pelo kubelet. O executável deve estar no
59+
# diretório bin do kubelet (definido pela flag --image-credential-provider-bin-dir).
60+
- name: ecr
61+
# matchImages é uma lista obrigatória de strings usadas para corresponder às imagens para
62+
# determinar se este provedor deve ser invocado. Se uma das strings corresponder à
63+
# imagem solicitada do kubelet, o plug-in será invocado e terá uma chance
64+
# para fornecer credenciais. Espera-se que as imagens contenham o domínio de registro
65+
# e caminho da URL.
66+
#
67+
# Cada entrada em matchImages é um padrão que pode opcionalmente conter uma porta e um caminho.
68+
# Globs podem ser usados no domínio, mas não na porta ou no caminho. Globs são suportados
69+
# como subdomínios como '*.k8s.io' ou 'k8s.*.io' e domínios de nível superior como 'k8s.*'.
70+
# A correspondência de subdomínios parciais como 'app*.k8s.io' também é suportada. Cada glob só pode corresponder
71+
# a um único segmento de subdomínio, então `*.io` **não** corresponde a `*.k8s.io`.
72+
#
73+
# Existe uma correspondência entre uma imagem e uma matchImage quando todas as opções abaixo são verdadeiras:
74+
# - Ambos contêm o mesmo número de partes de domínio e cada parte faz correspondência.
75+
# - O caminho da URL de um matchImages deve ser um prefixo do caminho do URL da imagem de destino.
76+
# - Se matchImages contiver uma porta, a porta também deverá corresponder à imagem.
77+
#
78+
# Valores de exemplo de matchImages:
79+
# - 123456789.dkr.ecr.us-east-1.amazonaws.com
80+
# - *.azurecr.io
81+
# - gcr.io
82+
# - *.*.registry.io
83+
# - Registry.io:8080/path
84+
matchImages:
85+
- "*.dkr.ecr.*.amazonaws.com"
86+
- "*.dkr.ecr.*.amazonaws.cn"
87+
- "*.dkr.ecr-fips.*.amazonaws.com"
88+
- "*.dkr.ecr.us-iso-east-1.c2s.ic.gov"
89+
- "*.dkr.ecr.us-isob-east-1.sc2s.sgov.gov"
90+
# defaultCacheDuration é a duração padrão em que o plug-in armazenará as credenciais na memória
91+
# se a duração do cache não for fornecida na resposta do plug-in. Este campo é obrigatório.
92+
defaultCacheDuration: "12h"
93+
# Versão de entrada necessária do exec CredentialProviderRequest. O CredentialProviderResponse retornado
94+
# DEVE usar a mesma versão de codificação da entrada. Os valores atualmente suportados são:
95+
# - credentialprovider.kubelet.k8s.io/v1
96+
apiVersion: credentialprovider.kubelet.k8s.io/v1
97+
# Argumentos para passar ao comando quando for executá-lo.
98+
# +optional
99+
args:
100+
- get-credentials
101+
# Env define variáveis de ambiente adicionais para expor ao processo. Esses valores
102+
# são combinados com o ambiente do host, bem como as variáveis que o client-go usa
103+
# para passar o argumento para o plugin.
104+
# +optional
105+
env:
106+
- name: AWS_PROFILE
107+
value: example_profile
108+
```
109+
110+
O campo `providers` é uma lista de plugins habilitados usados pelo kubelet. Cada entrada tem alguns campos obrigatórios:
111+
112+
* `name`: o nome do plugin que DEVE corresponder ao nome do binário executável que existe no diretório passado para `--image-credential-provider-bin-dir`.
113+
* `matchImages`: uma lista de strings usadas para comparar com imagens, a fim de determinar se este provedor deve ser invocado. Mais sobre isso abaixo.
114+
* `defaultCacheDuration`: a duração padrão em que o kubelet armazenará em cache as credenciais em memória, caso a duração de cache não tenha sido especificada pelo plugin.
115+
* `apiVersion`: a versão da API que o kubelet e o plugin executável usarão ao se comunicar.
116+
117+
Cada provedor de credenciais também pode receber argumentos opcionais e variáveis de ambiente. Consulte os implementadores do plugin para determinar qual conjunto de argumentos e variáveis de ambiente são necessários para um determinado plugin.
118+
119+
#### Configurar a correspondência de imagens
120+
121+
O campo `matchImages` de cada provedor de credenciais é usado pelo kubelet para determinar se um plugin deve ser invocado
122+
para uma determinada imagem que um Pod está usando. Cada entrada em `matchImages` é um padrão de imagem que pode opcionalmente conter uma porta e um caminho.
123+
Globs podem ser usados no domínio, mas não na porta ou no caminho. Globs são suportados como subdomínios como `*.k8s.io` ou `k8s.*.io`,
124+
e domínios de nível superior como `k8s.*`. Correspondência de subdomínios parciais como `app*.k8s.io` também é suportada. Cada glob só pode corresponder
125+
a um único segmento de subdomínio, então `*.io` NÃO corresponde a `*.k8s.io`.
126+
127+
Uma correspondência existe entre um nome de imagem e uma entrada `matchImage` quando todos os itens abaixo são verdadeiros:
128+
129+
* Ambos contêm o mesmo número de partes de domínio e cada parte corresponde.
130+
* O caminho da URL da imagem correspondente deve ser um prefixo do caminho da URL da imagem de destino.
131+
* Se o `matchImages` contiver uma porta, então a porta deve corresponder na imagem também.
132+
133+
Alguns valores de exemplo de padrões `matchImages` são:
134+
135+
* `123456789.dkr.ecr.us-east-1.amazonaws.com`
136+
* `*.azurecr.io`
137+
* `gcr.io`
138+
* `*.*.registry.io`
139+
* `foo.registry.io:8080/path`
140+
141+
## {{% heading "whatsnext" %}}
142+
143+
* Leia os detalhes sobre `CredentialProviderConfig` na [referência da API de configuração do kubelet (v1)](/docs/reference/config-api/kubelet-config.v1/).
144+
* Leia a [referência da API do provedor de credenciais do kubelet (v1)](/docs/reference/config-api/kubelet-config.v1/).

0 commit comments

Comments
 (0)