Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pt-br] Add /docs/tasks/access-application-cluster/access-cluster.md #44753

Merged
merged 6 commits into from
Feb 12, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
269 changes: 269 additions & 0 deletions content/pt-br/docs/tasks/access-application-cluster/access-cluster.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,269 @@
---
title: Acessando clusters
weight: 20
content_type: concept
---

<!-- overview -->

Esse tópico fala sobre diversas maneiras de interagir com clusters..
holgers66 marked this conversation as resolved.
Show resolved Hide resolved

<!-- body -->

## Acessando pela primeira vez com kubectl

Se tiver acessando o Kubernetes API pela primeira vez, recomendamos usar o Kubernetes CLI, `kubectl`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Small typo. I'd also like to suggest using "CLI do Kubernetes" instead of "Kubernetes CLI":

Suggested change
Se tiver acessando o Kubernetes API pela primeira vez, recomendamos usar o Kubernetes CLI, `kubectl`.
Se estiver acessando o Kubernetes API pela primeira vez, recomendamos usar a CLI do Kubernetes, `kubectl`.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed


Para acessar um cluster, precisa saber a localização do cluster e ter credenciais para acessá-lo. Geralmente, isso é configurado automaticamente quando você trabalha com um [Guia de introdução](/docs/setup/) [Guia de introdução] ou outra pessoa configurou o cluster e forneceu a você credenciais e uma localização.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few bits here:

  • It's OK to use "você" when speaking to the reader, as specified in the style guide.
  • There's an extra "[Guia de introdução]" after the link.
  • We need to add the /pt-br prefix to the links in order to have them redirect to the translated version of the page.
Suggested change
Para acessar um cluster, precisa saber a localização do cluster e ter credenciais para acessá-lo. Geralmente, isso é configurado automaticamente quando você trabalha com um [Guia de introdução](/docs/setup/) [Guia de introdução] ou outra pessoa configurou o cluster e forneceu a você credenciais e uma localização.
Para acessar um cluster, você precisa saber a localização do cluster e ter credenciais para acessá-lo. Geralmente, isso é configurado automaticamente quando você trabalha com um [Guia de instalação](/pt-br/docs/setup/) ou outra pessoa configurou o cluster e forneceu a você credenciais e uma localização.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed


Verifique o local e as credenciais que o kubectl conhece com esse comando:

```shell
kubectl config view
```

Muitos dos [exemplos](/docs/reference/kubectl/quick-reference/) fornecem uma introdução ao uso do `kubectl`, e a documentação completa pode ser encontrada na [kubectl referência](/docs/reference/kubectl/).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion for readability:

Suggested change
Muitos dos [exemplos](/docs/reference/kubectl/quick-reference/) fornecem uma introdução ao uso do `kubectl`, e a documentação completa pode ser encontrada na [kubectl referência](/docs/reference/kubectl/).
Muitos dos [exemplos](/docs/reference/kubectl/quick-reference/) fornecem uma introdução ao uso do `kubectl` e a documentação completa pode ser encontrada no [guia de referência do kubectl](/docs/reference/kubectl/).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree. Fixed


## Acessando diretamente a API REST
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Required for the anchor in the end of the page to work properly

Suggested change
## Acessando diretamente a API REST
## Acessando diretamente a API REST {#directly-accessing-the-rest-api}

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added anchor


O Kubectl lida com a localização e a autenticação no apiserver.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We prefer using "servidor da API" instead of "apiserver" in Portuguese.

Suggested change
O Kubectl lida com a localização e a autenticação no apiserver.
O kubectl lida com a localização e a autenticação no servidor da API.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed and noted for future localization work

Se você quiser acessar diretamente a API REST com um cliente http como
curl ou wget, ou um navegador, há várias maneiras de localizar e autenticar:

- executar o kubectl no modo proxy.
- método recomendado.
- Usa o local guardado do apiserver.
- Verifica a identidade do apiserver usando um certificado autoassinado. Não há possibilidade de MITM (Man-In-The-Middle) ataque.
- Autentica-se no apiserver.
- No futuro, poderá fazer client-side load-balancing inteligente, e transferência em caso de falha.
- Forneça o local e as credenciais diretamente para o cliente http.
- método alternativo.
- Funciona com alguns tipos de código de cliente que são confundidos pelo uso de um proxy.
- Necessidade de importar um certificado raiz em seu navegador para se proteger contra MITM (Man-In-The-Middle) ataque.
jcjesus marked this conversation as resolved.
Show resolved Hide resolved

### Usando o kubectl proxy

O comando a seguir executa o kubectl em um modo em que ele atua como um proxy reverso. Ele lida com
localização do apiserver e da autenticação.
Execute-o desta forma:

```shell
kubectl proxy --port=8080
```

Consulte [kubectl proxy](/docs/reference/generated/kubectl/kubectl-commands/#proxy) para obter mais detalhes.

Em seguir, você pode explorar a API com curl, wget ou um navegador, substituindo localhost
jcjesus marked this conversation as resolved.
Show resolved Hide resolved
por [::1] para IPv6, da seguinte forma:

```shell
curl http://localhost:8080/api/
```

O resultado é semelhante a este:

```json
{
"kind": "APIVersions",
"versions": [
"v1"
],
"serverAddressByClientCIDRs": [
{
"clientCIDR": "0.0.0.0/0",
"serverAddress": "10.0.1.149:443"
}
]
}
```

### Sem kubectl proxy

Use `kubectl apply` e `kubectl describe secret...` para criar um token para a conta de serviço padrão com grep/cut:

Primeiro, crie o Secret, solicitando um token para a ServiceAccount padrão:

```shell
kubectl apply -f - <<EOF
apiVersion: v1
kind: Secret
metadata:
name: default-token
annotations:
kubernetes.io/service-account.name: default
type: kubernetes.io/service-account-token
EOF
```

Em seguida, aguarde até que o controlador de token preencha o Secret com um token:

```shell
while ! kubectl describe secret default-token | grep -E '^token' >/dev/null; do
echo "waiting for token..." >&2
sleep 1
done
```

Recolha e use o token gerado:
jcjesus marked this conversation as resolved.
Show resolved Hide resolved

```shell
APISERVER=$(kubectl config view --minify | grep server | cut -f 2- -d ":" | tr -d " ")
TOKEN=$(kubectl describe secret default-token | grep -E '^token' | cut -f2 -d':' | tr -d " ")

curl $APISERVER/api --header "Authorization: Bearer $TOKEN" --insecure
```

O resultado é semelhante a este:

```json
{
"kind": "APIVersions",
"versions": [
"v1"
],
"serverAddressByClientCIDRs": [
{
"clientCIDR": "0.0.0.0/0",
"serverAddress": "10.0.1.149:443"
}
]
}
```

Usando `jsonpath`:

```shell
APISERVER=$(kubectl config view --minify -o jsonpath='{.clusters[0].cluster.server}')
TOKEN=$(kubectl get secret default-token -o jsonpath='{.data.token}' | base64 --decode)

curl $APISERVER/api --header "Authorization: Bearer $TOKEN" --insecure
```

O resultado é semelhante a este:

```json
{
"kind": "APIVersions",
"versions": [
"v1"
],
"serverAddressByClientCIDRs": [
{
"clientCIDR": "0.0.0.0/0",
"serverAddress": "10.0.1.149:443"
}
]
}
```

Os exemplos acima usam a opção `--insecure`. Isso o deixa sujeito a ataques MITM.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Os exemplos acima usam a opção `--insecure`. Isso o deixa sujeito a ataques MITM.
Os exemplos acima usam a opção `--insecure`. Isso deixa o cluster sujeito a ataques MITM.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

Quando o kubectl acessa o cluster, ele usa um certificado raiz guardado
e certificados de cliente para acessar o servidor. (Esses certificados são instalados no diretório
`~/.kube`). Como os certificados do cluster normalmente são autoassinados, pode ser necessária uma
configuração especial para que seu cliente http use o certificado raiz.

Em alguns clusters, o apiserver não requer autenticação; ele pode servir
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Em alguns clusters, o apiserver não requer autenticação; ele pode servir
Em alguns clusters, o servidor da API não requer autenticação; ele pode servir

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

no localhost ou estar protegido por um firewall. Não há um padrão
para isso. [Controle de acesso à API](/docs/concepts/security/controlling-access)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have this page translated

Suggested change
para isso. [Controle de acesso à API](/docs/concepts/security/controlling-access)
para isso. A página [Controlando Acesso à API do Kubernetes](/pt-br/docs/concepts/security/controlling-access)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

descreve como um administrador de cluster pode configurar isso.

## Acesso programático à API

O Kubernetes suporta oficialmente as [Go](#go-client) e [Python](#python-client) bibliotecas de clientes.
jcjesus marked this conversation as resolved.
Show resolved Hide resolved

### Go cliente
jcjesus marked this conversation as resolved.
Show resolved Hide resolved

* Para obter a biblioteca, execute o seguinte comando: `go get k8s.io/client-go@kubernetes-<kubernetes-version-number>`,
consulte [INSTALL.md](https://github.com/kubernetes/client-go/blob/master/INSTALL.md#for-the-casual-user)
para obter instruções detalhadas de instalação. Consulte
[https://github.com/kubernetes/client-go](https://github.com/kubernetes/client-go#compatibility-matrix)
para ver quais versões são compatíveis.
* Escreva um aplicativo sobre os clientes cliente-go. Observe que o client-go define seus próprios objetos de API,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Escreva um aplicativo sobre os clientes cliente-go. Observe que o client-go define" In Portuguese is not clear, should be better this way: "Escreva um aplicativo utilizando a biblioteca Go Client. Observe que ela define"

portanto, se necessário, importe as definições de API do client-go em vez de importá-las do repositório principal.
jcjesus marked this conversation as resolved.
Show resolved Hide resolved
Por exemplo, `import "k8s.io/client-go/kubernetes"` está correto.

O cliente Go pode usar o mesmo arquivo [kubeconfig] (/docs/concepts/configuration/organize-cluster-access-kubeconfig/)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the whole text, all the referent to "O cliente Go" should be changed to "A biblioteca Go Client", because it keeps clear when the subject uses any Client Library.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

como a CLI do kubectl faz, para localizar e autenticar ao apiserver. Veja esse
[exemplo](https://git.k8s.io/client-go/examples/out-of-cluster-client-configuration/main.go).

Se o aplicativo for disponibilizado como um pod no cluster, consulte a [próxima seção] (#acessar-o-api-deum-pod).

### Python cliente
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same case here, change to "Biblioteca Python Client".

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done


Para usar o [cliente Python](https://github.com/kubernetes-client/python), execute o seguinte comando:
`pip install kubernetes`. Consulte [a página Python Client Library](https://github.com/kubernetes-client/python)
para obter mais opções de instalação.

O cliente Python pode usar o mesmo arquivo [kubeconfig](/docs/concepts/configuration/organize-cluster-access-kubeconfig/)
como a CLI do kubectl faz, para localizar e autenticar ao apiserver. Veja esse
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
como a CLI do kubectl faz, para localizar e autenticar ao apiserver. Veja esse
que a ferramenta kubectl utiliza para localizar e autenticar ao servidor da API. Veja esse

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

[exemplo](https://github.com/kubernetes-client/python/tree/master/examples).

### Outros idiomas
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here can be used: "Outras linguagens" or "Outras bibliotecas"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done


Existem [bibliotecas de clientes](/docs/reference/using-api/client-libraries/) para acessar a API de outros idiomas.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change "para acessar a API de outros idiomas." to "para acessar a API de outras linguagens."

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

Consulte a documentação de outras bibliotecas para saber como elas se autenticam.

## Acessando a API a partir de um pod

Ao acessar a API de um pod, a localização e a autenticação
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Ao acessar a API de um pod, a localização e a autenticação
Ao acessar a API a partir de um pod, a localização e a autenticação

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

para o servidor de API são um pouco diferentes.

Consulte [Acessando a API a partir de um pod](/docs/tasks/run-application/access-api-from-pod/)
para obter mais detalhes.

## Acessando serviços em execução no cluster

A seção anterior descreve como se conectar ao servidor da API do Kubernetes.
Para obter informações sobre como se conectar a outros serviços em execução em um cluster do Kubernetes, consulte
[Acessando cluster serviços](/docs/tasks/access-application-cluster/access-cluster-services/).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
[Acessando cluster serviços](/docs/tasks/access-application-cluster/access-cluster-services/).
[Acessando serviços em execução em clusters](/pt-br/docs/tasks/access-application-cluster/access-cluster-services/).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed


## Solicitação de redirecionamentos

Os recursos de redirecionamento foram descontinuados e removidos. Em vez disso, use um proxy (veja abaixo).

## Tantos proxies

Há vários proxies diferentes que você pode encontrar ao usar o Kubernetes:

1. O [kubectl proxy](#directly-accessing-the-rest-api):

- é executado no computador de um usuário ou em um pod
- configure proxy de um endereço localhost para o apiserver do Kubernetes
- cliente para proxy usa HTTP
- proxy para o apiserver usa HTTPS
- localiza o apiserver
- adiciona headers de autenticação
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Few suggestions on this one:

Suggested change
1. O [kubectl proxy](#directly-accessing-the-rest-api):
- é executado no computador de um usuário ou em um pod
- configure proxy de um endereço localhost para o apiserver do Kubernetes
- cliente para proxy usa HTTP
- proxy para o apiserver usa HTTPS
- localiza o apiserver
- adiciona headers de autenticação
1. O [kubectl proxy](#directly-accessing-the-rest-api):
- é executado no computador de um usuário ou em um pod
- cria um proxy de um endereço localhost para o servidor da API do Kubernetes
- a conexão do cliente para o proxy usa HTTP
- a conexão do proxy para o servidor da API usa HTTPS
- localiza o apiserver
- adiciona cabeçalhos de autenticação

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed


2. O [apiserver proxy](/docs/tasks/access-application-cluster/access-cluster-services/#discovering-builtin-services):

- é um bastião incorporado ao apiserver
- conecta um usuário fora do cluster aos IPs do cluster que, de outra forma, poderiam não ser acessíveis
- é executado no processo do apiserver
- cliente para proxy usa HTTPS (ou http se o apiserver estiver configurado dessa forma)
- O proxy para o alvo pode usar HTTP ou HTTPS, conforme escolhido pelo proxy usando as informações disponíveis
- pode ser usado para acessar um Nó, Pod ou Serviço
- faz o load balancing quando usado para acessar um serviço
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
2. O [apiserver proxy](/docs/tasks/access-application-cluster/access-cluster-services/#discovering-builtin-services):
- é um bastião incorporado ao apiserver
- conecta um usuário fora do cluster aos IPs do cluster que, de outra forma, poderiam não ser acessíveis
- é executado no processo do apiserver
- cliente para proxy usa HTTPS (ou http se o apiserver estiver configurado dessa forma)
- O proxy para o alvo pode usar HTTP ou HTTPS, conforme escolhido pelo proxy usando as informações disponíveis
- pode ser usado para acessar um Nó, Pod ou Serviço
- faz o load balancing quando usado para acessar um serviço
2. O [proxy do servidor da API](/pt-br/docs/tasks/access-application-cluster/access-cluster-services/#descobrindo-serviços-integrados):
- é um bastião incorporado ao apiserver
- conecta um usuário fora do cluster aos IPs do cluster que, de outra forma, poderiam não ser acessíveis
- é executado no processo do servidor da API
- cliente para proxy usa HTTPS (ou http se o servidor da API estiver configurado dessa forma)
- a conexão do proxy para o destino pode usar HTTP ou HTTPS, conforme escolhido pelo proxy usando as informações disponíveis
- pode ser usado para acessar um Nó, Pod ou Serviço
- faz o balanceamento de carga quando usado para acessar um serviço

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed


3. O [kube proxy](/docs/concepts/services-networking/service/#ips-and-vips):

- é executado em cada nó
- proxy de UDP e TCP
- não entende HTTP
- fornece load balancing
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- fornece load balancing
- fornece balanceamento de carga

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed and noted for future localization work

- é usado apenas para acessar serviços

4. Um Proxy/Load-balancer na frente do(s) apiserver(es):

- a existência e a implementação variam de cluster para cluster (por exemplo, nginx)
- fica entre todos os clientes e um ou mais apiservers
- atua como load balancer se houver vários apiservers.

5. Cloud Load Balancers em serviços externos:

- são fornecidos por alguns provedores de Cloud (por exemplo, AWS ELB, Google Cloud Load Balancer)
- são criados automaticamente quando o serviço Kubernetes tem o tipo `LoadBalancer`
- usam somente UDP/TCP
- A implementação varia de acordo com o provedor de Cloud.

Normalmente, os usuários do Kubernetes não precisam se preocupar com nada além dos dois primeiros tipos. O administrador do cluster
normalmente garantirá que os últimos tipos sejam configurados corretamente.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
4. Um Proxy/Load-balancer na frente do(s) apiserver(es):
- a existência e a implementação variam de cluster para cluster (por exemplo, nginx)
- fica entre todos os clientes e um ou mais apiservers
- atua como load balancer se houver vários apiservers.
5. Cloud Load Balancers em serviços externos:
- são fornecidos por alguns provedores de Cloud (por exemplo, AWS ELB, Google Cloud Load Balancer)
- são criados automaticamente quando o serviço Kubernetes tem o tipo `LoadBalancer`
- usam somente UDP/TCP
- A implementação varia de acordo com o provedor de Cloud.
Normalmente, os usuários do Kubernetes não precisam se preocupar com nada além dos dois primeiros tipos. O administrador do cluster
normalmente garantirá que os últimos tipos sejam configurados corretamente.
4. Um Proxy/balanceador de carga na frente do(s) servidor(es) da API:
- a existência e a implementação variam de cluster para cluster (por exemplo, nginx)
- fica entre todos os clientes e um ou mais servidores da API
- atua como um balanceador de carga se houver vários servidores da API.
5. Balanceadores de carga de provedor de nuvem em serviços externos:
- são fornecidos por alguns provedores de nuvem computacional (por exemplo, AWS ELB, Google Cloud Load Balancer)
- são criados automaticamente quando o serviço Kubernetes tem o tipo `LoadBalancer`
- usam somente UDP/TCP
- a implementação varia de acordo com o provedor de nuvem.
Normalmente, os usuários do Kubernetes não precisam se preocupar com nada além dos dois primeiros tipos. O administrador do cluster
normalmente garantirá que os últimos tipos sejam configurados corretamente.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed