|
1 | 1 | ---
|
2 |
| -title: Comunicação entre Nó e Control Plane |
| 2 | +reviewers: |
| 3 | + - dchen1107 |
| 4 | + - liggitt |
| 5 | +title: Comunicação entre Nós e a Camada de Gerenciamento |
3 | 6 | content_type: concept
|
4 | 7 | weight: 20
|
| 8 | +aliases: |
| 9 | + - master-node-communication |
5 | 10 | ---
|
6 | 11 |
|
7 | 12 | <!-- overview -->
|
8 | 13 |
|
9 |
| -Este documento cataloga os caminhos de comunicação entre o control plane (o |
10 |
| -apiserver) e o cluster Kubernetes. A intenção é permitir que os usuários |
11 |
| -personalizem sua instalação para proteger a configuração de rede |
12 |
| -então o cluster pode ser executado em uma rede não confiável (ou em IPs totalmente públicos em um |
| 14 | +Este documento cataloga os caminhos de comunicação entre o {{< glossary_tooltip term_id="kube-apiserver" text="servidor de API" >}} |
| 15 | +e o {{< glossary_tooltip text="cluster" term_id="cluster" length="all" >}} Kubernetes. |
| 16 | +A intenção é permitir que os usuários personalizem sua instalação para endurecer a configuração de rede |
| 17 | +de tal forma que o cluster pode ser executado em uma rede não confiável (ou em IPs totalmente públicos em um |
13 | 18 | provedor de nuvem).
|
14 | 19 |
|
15 |
| - |
16 |
| - |
17 |
| - |
18 | 20 | <!-- body -->
|
19 | 21 |
|
20 |
| -## Nó para o Control Plane |
| 22 | +## Nó para a Camada de Gerenciamento |
21 | 23 |
|
22 |
| -Todos os caminhos de comunicação do cluster para o control plane terminam no |
23 |
| -apiserver (nenhum dos outros componentes do control plane são projetados para expor |
24 |
| -Serviços remotos). Em uma implantação típica, o apiserver é configurado para escutar |
25 |
| -conexões remotas em uma porta HTTPS segura (443) com uma ou mais clientes [autenticação](/docs/reference/access-authn-authz/authentication/) habilitado. |
26 |
| -Uma ou mais formas de [autorização](/docs/reference/access-authn-authz/authorization/) |
27 |
| -deve ser habilitado, especialmente se [requisições anônimas](/docs/reference/access-authn-authz/authentication/#anonymous-requests) |
| 24 | +O Kubernetes tem um padrão de API "hub-and-spoke". Todo uso da API dos nós (ou dos pods que eles executam) |
| 25 | +termina no servidor de API. Nenhum dos outros componentes da camada de gerenciamento são projetados para expor |
| 26 | +serviços remotos. O servidor de API é configurado para escutar conexões remotas em uma porta HTTPS segura |
| 27 | +(tipicamente 443) com uma ou mais formas de [autenticação](/docs/reference/access-authn-authz/authentication/) de cliente habilitada. |
| 28 | +Uma ou mais formas de [autorização](/docs/reference/access-authn-authz/authorization/) devem ser |
| 29 | +habilitadas, especialmente se [requisições anônimas](/docs/reference/access-authn-authz/authentication/#anonymous-requests) |
28 | 30 | ou [tokens da conta de serviço](/docs/reference/access-authn-authz/authentication/#service-account-tokens)
|
29 |
| -são autorizados. |
| 31 | +são permitidos. |
30 | 32 |
|
31 |
| -Os nós devem ser provisionados com o certificado root público para o cluster |
32 |
| -de tal forma que eles podem se conectar de forma segura ao apiserver junto com o cliente válido |
33 |
| -credenciais. Por exemplo, em uma implantação padrão do GKE, as credenciais do cliente |
34 |
| -fornecidos para o kubelet estão na forma de um certificado de cliente. Vejo |
35 |
| -[bootstrapping TLS do kubelet](/docs/reference/command-line-tools-reference/kubelet-tls-bootstrapping/) |
36 |
| -para provisionamento automatizado de certificados de cliente kubelet. |
| 33 | +Os nós devem ser provisionados com o {{< glossary_tooltip text="certificado" term_id="certificate" >}} raiz público do cluster de tal forma que eles podem |
| 34 | +se conectar de forma segura ao servidor de API junto com credenciais de cliente válidas. Uma boa abordagem é que as |
| 35 | +credenciais de cliente fornecidas ao kubelet estejam na forma de um certificado de cliente. Veja |
| 36 | +[inicialização TLS do kubelet](/docs/reference/access-authn-authz/kubelet-tls-bootstrapping/) |
| 37 | +para provisionamento automatizado de certificados de cliente do kubelet. |
37 | 38 |
|
38 |
| -Os pods que desejam se conectar ao apiserver podem fazê-lo com segurança, aproveitando |
39 |
| -conta de serviço para que o Kubernetes injetará automaticamente o certificado raiz público |
40 |
| -certificado e um token de portador válido no pod quando ele é instanciado. |
41 |
| -O serviço `kubernetes` (no namespace `default`) é configurado com um IP virtual |
42 |
| -endereço que é redirecionado (via kube-proxy) para o endpoint com HTTPS no |
43 |
| -apiserver. |
| 39 | +{{< glossary_tooltip text="Pods" term_id="pod" >}} que desejam se conectar ao servidor de API podem fazê-lo com segurança, aproveitando uma conta de serviço para |
| 40 | +que o Kubernetes injete automaticamente o certificado raiz público e um token de portador válido |
| 41 | +no pod quando ele for instanciado. |
| 42 | +O serviço `kubernetes` (no namespace `default`) é configurado com um endereço IP virtual que é |
| 43 | +redirecionado (via `{{< glossary_tooltip text="kube-proxy" term_id="kube-proxy" >}}`) para o endpoint HTTPS no servidor de API. |
44 | 44 |
|
45 |
| -Os componentes do control plane também se comunicam com o apiserver do cluster através da porta segura. |
| 45 | +Os componentes da camada de gerenciamento também se comunicam com o servidor de API através da porta segura. |
46 | 46 |
|
47 |
| -Como resultado, o modo de operação padrão para conexões do cluster |
48 |
| -(nodes e pods em execução nos Nodes) para o control plane é protegido por padrão |
49 |
| -e pode passar por redes não confiáveis e/ou públicas. |
| 47 | +Como resultado, o modo de operação padrão para conexões dos nós e dos pods em execução nos |
| 48 | +nós para a camada de gerenciamento é seguro por padrão e pode operar em redes não confiáveis e/ou públicas. |
50 | 49 |
|
51 |
| -## Control Plane para o nó |
| 50 | +## Camada de Gerenciamento para o Nó |
52 | 51 |
|
53 |
| -Existem dois caminhos de comunicação primários do control plane (apiserver) para os nós. |
54 |
| -O primeiro é do apiserver para o processo do kubelet que é executado em |
55 |
| -cada nó no cluster. O segundo é do apiserver para qualquer nó, pod, |
56 |
| -ou serviço através da funcionalidade de proxy do apiserver. |
| 52 | +Existem dois caminhos de comunicação primários da camada de gerenciamento (o servidor de API) para os nós. |
| 53 | +O primeiro é do servidor de API para o processo {{< glossary_tooltip text="kubelet" term_id="kubelet" >}} que executa em cada nó no cluster. |
| 54 | +O segundo é do servidor de API para qualquer nó, pod, ou serviço através da funcionalidade de _proxy_ do servidor de API. |
57 | 55 |
|
58 |
| -### apiserver para o kubelet |
| 56 | +### Servidor de API para o kubelet |
59 | 57 |
|
60 |
| -As conexões do apiserver ao kubelet são usadas para: |
| 58 | +As conexões do servidor de API para o kubelet são usadas para: |
61 | 59 |
|
62 |
| - * Buscar logs para pods. |
63 |
| - * Anexar (através de kubectl) pods em execução. |
64 |
| - * Fornecer a funcionalidade de encaminhamento de porta do kubelet. |
| 60 | +- Buscar logs para pods. |
| 61 | +- Conectar-se (geralmente através de `kubectl`) a pods em execução. |
| 62 | +- Fornecer a funcionalidade de encaminhamento de porta do kubelet. |
65 | 63 |
|
66 |
| -Essas conexões terminam no endpoint HTTPS do kubelet. Por padrão, |
67 |
| -o apiserver não verifica o certificado de serviço do kubelet, |
68 |
| -o que torna a conexão sujeita a ataques man-in-the-middle, o que o torna |
69 |
| -**inseguro** para passar por redes não confiáveis e / ou públicas. |
| 64 | +Essas conexões terminam no endpoint HTTPS do kubelet. Por padrão, o servidor de API não |
| 65 | +verifica o certificado de serviço do kubelet, o que torna a conexão sujeita a ataques man-in-the-middle |
| 66 | +e **insegura** para executar por redes não confiáveis e/ou públicas. |
70 | 67 |
|
71 |
| -Para verificar essa conexão, use a flag `--kubelet-certificate-authority` para |
72 |
| -fornecer o apiserver com um pacote de certificado raiz para usar e verificar o |
73 |
| -certificado de serviço da kubelet. |
| 68 | +Para verificar essa conexão, use a flag `--kubelet-certificate-authority` para fornecer ao servidor de API |
| 69 | +um pacote de certificado raiz para usar e verificar o certificado de serviço do kubelet. |
74 | 70 |
|
75 |
| -Se isso não for possível, use o [SSH túnel](/docs/concepts/architecture/master-node-communication/#ssh-tunnels) |
76 |
| -entre o apiserver e kubelet se necessário para evitar a conexão ao longo de um |
77 |
| -rede não confiável ou pública. |
| 71 | +Se isso não for possível, use [túneis SSH](#ssh-tunnels) entre o servidor de API e kubelet se |
| 72 | +necessário para evitar conectar por uma rede não confiável ou pública. |
78 | 73 |
|
79 |
| -Finalmente, [Autenticação e/ou autorização do Kubelet](/docs/admin/kubelet-authentication-authorization/) |
80 |
| -deve ser ativado para proteger a API do kubelet. |
| 74 | +Finalmente, [Autenticação e/ou autorização do Kubelet](/docs/reference/access-authn-authz/kubelet-authn-authz/) |
| 75 | +deve ser habilitada para proteger a API do kubelet. |
81 | 76 |
|
82 |
| -### apiserver para nós, pods e serviços |
| 77 | +### Servidor de API para nós, pods e serviços |
83 | 78 |
|
84 |
| -As conexões a partir do apiserver para um nó, pod ou serviço padrão para simples |
85 |
| -conexões HTTP não são autenticadas nem criptografadas. Eles |
86 |
| -podem ser executados em uma conexão HTTPS segura prefixando `https:` no nó, |
87 |
| -pod, ou nome do serviço no URL da API, mas eles não validarão o certificado |
88 |
| -fornecido pelo ponto de extremidade HTTPS, nem fornece credenciais de cliente, enquanto |
89 |
| -a conexão será criptografada, não fornecerá nenhuma garantia de integridade. |
90 |
| -Estas conexões **não são atualmente seguras** para serem usados por redes não confiáveis e/ou públicas. |
| 79 | +As conexões do servidor de API com um nó, pod, ou serviço são conexões HTTP simples por padrão |
| 80 | +e, portanto, não são autenticadas nem criptografadas. Elas podem ser executadas por uma conexão HTTPS |
| 81 | +segura prefixando `https:` ao nome do nó, pod, ou serviço na URL da API, mas elas não |
| 82 | +validarão o certificado fornecido pelo endpoint HTTPS nem fornecerão credenciais de cliente. Então |
| 83 | +enquanto a conexão será criptografada, ela não fornecerá nenhuma garantia de integridade. Essas |
| 84 | +conexões **não são atualmente seguras** para executar por redes não confiáveis e/ou públicas. |
91 | 85 |
|
92 |
| -### SSH Túnel |
| 86 | +### Túneis SSH |
93 | 87 |
|
94 |
| -O Kubernetes suporta túneis SSH para proteger os caminhos de comunicação do control plane para os nós. Nesta configuração, o apiserver inicia um túnel SSH para cada nó |
95 |
| -no cluster (conectando ao servidor ssh escutando na porta 22) e passa |
96 |
| -todo o tráfego destinado a um kubelet, nó, pod ou serviço através do túnel. |
97 |
| -Este túnel garante que o tráfego não seja exposto fora da rede aos quais |
98 |
| -os nós estão sendo executados. |
| 88 | +O Kubernetes suporta [túneis SSH](https://www.ssh.com/academy/ssh/tunneling) para proteger os caminhos de comunicação da camada de gerenciamento para os nós. Nesta |
| 89 | +configuração, o servidor de API inicia um túnel SSH para cada nó no cluster (conectando ao |
| 90 | +servidor SSH escutando na porta 22) e passa todo o tráfego destinado a um kubelet, nó, pod, ou |
| 91 | +serviço através do túnel. |
| 92 | +Este túnel garante que o tráfego não seja exposto fora da rede na qual os nós estão |
| 93 | +executando. |
99 | 94 |
|
100 |
| -Atualmente, os túneis SSH estão obsoletos, portanto, você não deve optar por usá-los, a menos que saiba o que está fazendo. O serviço Konnectivity é um substituto para este canal de comunicação. |
| 95 | +{{< note >}} |
| 96 | +Os túneis SSH estão atualmente descontinuados, então você não deve optar por usá-los a menos que saiba o que está |
| 97 | +fazendo. O [serviço Konnectivity](#konnectivity-service) é um substituto para este |
| 98 | +canal de comunicação. |
| 99 | +{{< /note >}} |
101 | 100 |
|
102 |
| -### Konnectivity service |
| 101 | +### Serviço Konnectivity {#konnectivity-service} |
103 | 102 |
|
104 | 103 | {{< feature-state for_k8s_version="v1.18" state="beta" >}}
|
105 | 104 |
|
106 |
| -Como uma substituição aos túneis SSH, o serviço Konnectivity fornece proxy de nível TCP para a comunicação do control plane para o cluster. O serviço Konnectivity consiste em duas partes: o servidor Konnectivity na rede control plane e os agentes Konnectivity na rede dos nós. Os agentes Konnectivity iniciam conexões com o servidor Konnectivity e mantêm as conexões de rede. Depois de habilitar o serviço Konnectivity, todo o tráfego do control plane para os nós passa por essas conexões. |
107 |
| - |
108 |
| -Veja a [tarefa do Konnectivity](docs/tasks/extend-kubernetes/setup-konnectivity/) para configurar o serviço Konnectivity no seu cluster. |
| 105 | +Como um substituto aos túneis SSH, o serviço Konnectivity fornece proxy de nível TCP para a |
| 106 | +comunicação da camada de gerenciamento para o cluster. O serviço Konnectivity consiste em duas partes: o |
| 107 | +servidor Konnectivity na rede da camada de gerenciamento e os agentes Konnectivity na rede dos nós. |
| 108 | +Os agentes Konnectivity iniciam conexões com o servidor Konnectivity e mantêm as conexões de rede. |
| 109 | +Após habilitar o serviço Konnectivity, todo o tráfego da camada de gerenciamento para os nós passa por essas |
| 110 | +conexões. |
| 111 | + |
| 112 | +Siga a [tarefa do serviço Konnectivity](/docs/tasks/extend-kubernetes/setup-konnectivity/) para configurar |
| 113 | +o serviço Konnectivity no seu cluster. |
| 114 | + |
| 115 | +## {{% heading "whatsnext" %}} |
| 116 | + |
| 117 | +- Leia sobre os [componentes da camada de gerenciamento do Kubernetes](/docs/concepts/architecture/#control-plane-components) |
| 118 | +- Saiba mais sobre o [modelo Hubs and Spoke](https://book.kubebuilder.io/multiversion-tutorial/conversion-concepts.html#hubs-spokes-and-other-wheel-metaphors) |
| 119 | +- Aprenda como [Proteger um Cluster](/docs/tasks/administer-cluster/securing-a-cluster/) |
| 120 | +- Saiba mais sobre a [API do Kubernetes](/docs/concepts/overview/kubernetes-api/) |
| 121 | +- [Configurar o serviço Konnectivity](/docs/tasks/extend-kubernetes/setup-konnectivity/) |
| 122 | +- [Usar Encaminhamento de Porta para Acessar Aplicações em um Cluster](/docs/tasks/access-application-cluster/port-forward-access-application-cluster/) |
| 123 | +- Aprenda como [Buscar logs para Pods](/docs/tasks/debug/debug-application/debug-running-pod/#examine-pod-logs), [usar kubectl port-forward](/docs/tasks/access-application-cluster/port-forward-access-application-cluster/#forward-a-local-port-to-a-port-on-the-pod) |
0 commit comments