|
| 1 | +--- |
| 2 | +title: Instalação e Acesso ao Painel do Kubernetes |
| 3 | +description: >- |
| 4 | + Instale a interface web (Painel do Kubernetes) e acesse-a. |
| 5 | +content_type: concept |
| 6 | +weight: 10 |
| 7 | +card: |
| 8 | + name: tasks |
| 9 | + weight: 30 |
| 10 | + title: Use o Painel Web do Kubernetes |
| 11 | +--- |
| 12 | + |
| 13 | +<!-- overview --> |
| 14 | + |
| 15 | +O Painel é uma interface de usuário web para o Kubernetes. Através do Painel, você pode implantar aplicações containerizadas em um cluster Kubernetes, solucionar problemas em suas aplicações e gerenciar os recursos do cluster. |
| 16 | + |
| 17 | +O Painel oferece uma visão geral das aplicações em execução no seu cluster, além de permitir a criação ou modificação de recursos individuais do Kubernetes (como Deployments, Jobs, DaemonSets, etc.). Por exemplo, você pode escalar um Deployment, iniciar uma atualização contínua (_rolling update_), reiniciar um pod ou implantar novas aplicações utilizando um assistente de implantação. |
| 18 | + |
| 19 | +O Painel também fornece informações sobre o estado dos recursos do Kubernetes em seu cluster e sobre quaisquer erros que possam ter ocorrido. |
| 20 | + |
| 21 | + |
| 22 | +<!-- body --> |
| 23 | + |
| 24 | +## Instalando o Kubernetes Dashboard |
| 25 | + |
| 26 | +{{< note >}} |
| 27 | +Atualmente, o Painel do Kubernetes suporta apenas a instalação baseada em Helm, pois é mais rápida e nos oferece melhor controle sobre todas as dependências necessárias para a execução do Painel. |
| 28 | +{{< /note >}} |
| 29 | + |
| 30 | +A interface de usuário do Painel não é implantada por padrão. Para implantá-la, execute o seguinte comando: |
| 31 | + |
| 32 | +```shell |
| 33 | +# Adicionando o repositório do kubernetes-dashboard |
| 34 | +helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/ |
| 35 | +# Instale o "kubernetes-dashboard" usando helm chart |
| 36 | +helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --create-namespace --namespace kubernetes-dashboard |
| 37 | +``` |
| 38 | + |
| 39 | +## Acessando o painel do Kubernetes |
| 40 | + |
| 41 | +Para proteger os dados do seu cluster, o Painel é implantado com uma configuração RBAC mínima por padrão. Atualmente, o Painel oferece suporte apenas ao login com um Bearer Token. Para criar um token para esta demonstração, você pode seguir nosso guia de [criação de um usuário de exemplo](https://github.com/kubernetes/dashboard/blob/master/docs/user/access-control/creating-sample-user.md). |
| 42 | + |
| 43 | +Acesse o nosso guia sobre [criação de um usuário de exemplo](https://github.com/kubernetes/dashboard/blob/master/docs/user/access-control/creating-sample-user.md) para gerar um token de acesso. |
| 44 | + |
| 45 | +{{< warning >}} |
| 46 | +O usuário de exemplo criado no tutorial terá privilégios administrativos e é apenas para fins educacionais. |
| 47 | +{{< /warning >}} |
| 48 | + |
| 49 | +### Proxy via linha de comando |
| 50 | + |
| 51 | +Você pode habilitar o acesso ao Painel usando a ferramenta de linha de comando `kubectl`, |
| 52 | +executando o seguinte comando: |
| 53 | + |
| 54 | +``` |
| 55 | +kubectl proxy |
| 56 | +``` |
| 57 | + |
| 58 | +O kubectl disponibilizará o Painel em [http://localhost:8443/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/](http://localhost:8443/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/). |
| 59 | + |
| 60 | +O acesso à interface é _restrito_ à máquina onde o comando é executado. Consulte `kubectl proxy --help` para mais opções. |
| 61 | + |
| 62 | +{{< note >}} |
| 63 | +O método de autenticação kubeconfig **não** oferece suporte a provedores de identidade externos ou autenticação baseada em certificados X.509. |
| 64 | +{{< /note >}} |
| 65 | + |
| 66 | +## Visualização de boas-vindas |
| 67 | + |
| 68 | +Ao acessar o Painel em um cluster vazio, você verá a página de boas-vindas. |
| 69 | +Esta página contém um link para este documento, bem como um botão para implantar sua primeira aplicação. |
| 70 | + |
| 71 | +Além disso, você pode visualizar quais aplicações do sistema estão em execução por padrão no namespace `kube-system` |
| 72 | +[namespace](/docs/tasks/administer-cluster/namespaces/) do seu cluster, como o próprio Painel do Kubernetes. |
| 73 | + |
| 74 | + |
| 75 | + |
| 76 | +## Instalando aplicações containerizadas |
| 77 | + |
| 78 | +O Painel permite criar e implantar uma aplicação containerizada como um Deployment e um Service opcional através de um assistente simples. Você pode especificar os detalhes da aplicação manualmente ou carregar um arquivo de _manifesto_ em YAML ou JSON contendo a configuração da aplicação. |
| 79 | + |
| 80 | +Clique no botão **CRIAR** no canto superior direito de qualquer página para iniciar. |
| 81 | + |
| 82 | +### Especificando detalhes da aplicação |
| 83 | + |
| 84 | +O assistente de implantação espera que você forneça as seguintes informações: |
| 85 | + |
| 86 | +- **Nome da aplicação** (obrigatório): Nome para a sua aplicação. |
| 87 | + A [label](/docs/concepts/overview/working-with-objects/labels/) com o nome será adicionado ao Deployment e ao Service (se houver) que serão implantados. |
| 88 | + |
| 89 | +O nome da aplicação deve ser único dentro do [namespace](/docs/tasks/administer-cluster/namespaces/) do Kubernetes selecionado. Ele deve começar com uma letra minúscula, terminar com uma letra minúscula ou um número e conter apenas letras minúsculas, números e hífens (-). O limite é de 24 caracteres. Espaços à esquerda e à direita são ignorados. |
| 90 | + |
| 91 | +- **Imagem do contêiner** (obrigatório): |
| 92 | + A URL pública de uma [imagem de contêiner](/docs/concepts/containers/images/) Docker em qualquer registro de imagens público ou uma imagem privada (comumente hospedada no Google Container Registry ou Docker Hub). A especificação da imagem do container deve terminar com dois pontos (:). |
| 93 | + |
| 94 | +- **Número de pods** (obrigatório): O número desejado de Pods nos quais você deseja que sua aplicação implantada. O valor deve ser um número inteiro positivo. |
| 95 | + |
| 96 | + Um [Deployment](/docs/concepts/workloads/controllers/deployment/) será criado para manter o número desejado de Pods em seu cluster. |
| 97 | + |
| 98 | +- **Service** (opcional): Para algumas partes da sua aplicação (por exemplo, frontends), você pode querer expor um [Service](/docs/concepts/services-networking/service/) em um endereço de IP externo, possivelmente público, fora do seu cluster (external Service). |
| 99 | + |
| 100 | + {{< note >}} |
| 101 | + Para Services externos, você pode precisar abrir uma ou mais portas para fazê-lo. |
| 102 | + {{< /note >}} |
| 103 | + |
| 104 | + Outros Services que são visíveis apenas de dentro do cluster são chamados de Services internos. |
| 105 | + |
| 106 | + Independentemente do tipo de Service, se você optar por criá-lo e seu contêiner escutar em uma porta (entrada), será necessário especificar duas portas. O Serviço será criado mapeando a porta (entrada) para a porta de destino vista pelo contêiner. Este Service direcionará o tráfego para seus Pods implantados. Os protocolos suportados são TCP e UDP. O nome de DNS interno para este Service será o valor especificado como nome da aplicação acima. |
| 107 | + |
| 108 | +Se necessário, você pode expandir a seção **Opções avançadas** onde você pode especificar mais configurações: |
| 109 | + |
| 110 | +- **Descrição**: O texto inserido aqui será adicionado como uma |
| 111 | + [annotation](/docs/concepts/overview/working-with-objects/annotations/) |
| 112 | + ao Deployment e exibido nos detalhes da aplicação. |
| 113 | + |
| 114 | +- **Labels**: Por padrão as [labels](/docs/concepts/overview/working-with-objects/labels/) usadas para sua aplicação são o nome e a versão da aplicação. Você pode especificar labels adicionais para serem aplicadas ao Deployment, ao Service (se houver) e aos Pods, como release, tier, environment e track. |
| 115 | + |
| 116 | + Exemplo: |
| 117 | + |
| 118 | + ```conf |
| 119 | + release=1.0 |
| 120 | + tier=frontend |
| 121 | + environment=pod |
| 122 | + track=stable |
| 123 | + ``` |
| 124 | + |
| 125 | +- **Namespace**: O Kubernetes suporta múltiplos clusters virtuais apoiados pelo mesmo cluster físico. |
| 126 | + Esses clusters virtuais são chamados de [namespaces](/docs/tasks/administer-cluster/namespaces/). |
| 127 | + Eles permitem que você particione os recursos em grupos logicamente nomeados. |
| 128 | + |
| 129 | + O Dashboard oferece todos os namespaces disponíveis em uma lista suspensa e permite que você crie um novo namespace. |
| 130 | + O nome do namespace pode conter no máximo 63 caracteres alfanuméricos e hífens (-), mas não pode conter letras maiúsculas. |
| 131 | + Os nomes dos namespaces não devem consistir apenas de números. |
| 132 | + Se o nome for definido como um número, como 10, o pod será colocado no namespace padrão. |
| 133 | + |
| 134 | + Caso a criação do namespace seja bem-sucedida, ele será selecionado por padrão. |
| 135 | + Se a criação falhar, o primeiro namespace será selecionado. |
| 136 | + |
| 137 | +- **Image Pull Secret**: |
| 138 | + Caso a imagem do contêiner Docker especificada seja privada, pode ser necessário fornecer credenciais de |
| 139 | + [pull secret](/docs/concepts/configuration/secret/). |
| 140 | + |
| 141 | + O Dashboard oferece todos as secrets disponíveis em uma lista suspensa e permite que você crie uma nova secret. |
| 142 | + |
| 143 | + O nome da secret deve seguir a sintaxe do nome de domínio DNS, por exemplo `new.image-pull.secret`. |
| 144 | + The content of a secret must be base64-encoded and specified in a |
| 145 | + O conteúdo de uma secret deve ser codificado em base64 e especificado em um arquivo |
| 146 | + [`.dockercfg`](/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod). |
| 147 | + O nome da secret pode consistir em no máximo 253 caracteres. |
| 148 | + |
| 149 | + Caso a criação da secret de pull de imagem seja bem-sucedida, ele será selecionado por padrão. Se a criação falhar, nenhuma secret será aplicada. |
| 150 | + |
| 151 | +- **CPU requirement (cores)** and **Memory requirement (MiB)**: |
| 152 | + Você pode especificar os [resource limits](/docs/tasks/administer-cluster/manage-resources/memory-default-namespace/) |
| 153 | + para o contêiner. Por padrão, os Pods são executados com limits de CPU e memória ilimitados. |
| 154 | + |
| 155 | +- **Run command** and **Run command arguments**: |
| 156 | + Por padrão, seus contêiners executam a imagem Docker especificada por padrão |
| 157 | + [entrypoint command](/docs/tasks/inject-data-application/define-command-argument-container/). |
| 158 | + Você pode usar as opções e argumentos de comando para substituir o padrão. |
| 159 | + |
| 160 | +- **Run as privileged**: Esta configuração determina se os processos em |
| 161 | + [privileged containers](/docs/concepts/workloads/pods/#privileged-mode-for-containers) |
| 162 | + são equivalentes a processos executados como root no host. |
| 163 | + Contêiners privilegiados podem fazer uso de capacidades como manipular stack de rede e acessar dispositivos. |
| 164 | + |
| 165 | +- **Environment variables**: O Kubernetes expõe Services por meio |
| 166 | + de [environment variables](/docs/tasks/inject-data-application/environment-variable-expose-pod-information/). |
| 167 | + Você pode compor variáveis de ambiente ou passar argumentos para seus comandos usando os valores das variáveis de ambiente. |
| 168 | + Eles podem ser usados em aplicativos para encontrar um Service. |
| 169 | + Os valores podem referenciar outras variáveis usando a sintaxe `$(VAR_NAME)`. |
| 170 | + |
| 171 | +### Upload de um arquivo YAML ou JSON |
| 172 | + |
| 173 | +O Kubernetes suporta configuração declarativa. |
| 174 | +Nesse estilo, toda a configuração é armazenada em manifestos (arquivos de configuração YAML ou JSON). |
| 175 | +Os manifestos utilizam os esquemas de recursos da [API do Kubernetes](/docs/concepts/overview/kubernetes-api/). |
| 176 | + |
| 177 | +Como alternativa à especificação dos detalhes da aplicação no assistente de implantação, |
| 178 | +você pode definir sua aplicação em um ou mais manifestos e fazer o upload dos arquivos usando o Dashboard. |
| 179 | + |
| 180 | +## Usando a Dashboard |
| 181 | + |
| 182 | +As seções a seguir descrevem as visualizações da interface do Kubernetes Dashboard; o que elas fornecem e como podem ser usadas. |
| 183 | + |
| 184 | +### Navegação |
| 185 | + |
| 186 | +Quando há objetos do Kubernetes definidos no cluster, o Dashboard os exibe na visualização inicial. |
| 187 | +Por padrão, apenas objetos do namespace _default_ são exibidos e |
| 188 | +isso pode ser alterado usando o seletor de namespace localizado no menu de navegação. |
| 189 | + |
| 190 | +O Dashboard exibe a maioria dos tipos de objetos do Kubernetes e os agrupa em algumas categorias de menu. |
| 191 | + |
| 192 | +#### Visão geral do administrador |
| 193 | + |
| 194 | +Para administradores de cluster e namespace, o Dashboard lista Nodes, Namespaces e PersistentVolumes e possui visualizações detalhadas para eles. |
| 195 | +A visualização da lista de Nodes contém métricas de uso de CPU e memória agregadas em todos os Nodes. |
| 196 | +A visualização de detalhes mostra as métricas de um Node, sua especificação, status, |
| 197 | +recursos alocados, eventos e pods em execução no node. |
| 198 | + |
| 199 | +#### Workloads |
| 200 | + |
| 201 | +Mostra todas as aplicações em execução no namespace selecionado. |
| 202 | +A visualização lista as aplicações por tipo de workload (por exemplo: Deployments, ReplicaSets, StatefulSets). |
| 203 | +Cada tipo de workload pode ser visualizado separadamente. |
| 204 | +As listas resumem informações acionáveis sobre os workloads, como o número de |
| 205 | +pods ready para um ReplicaSet ou o uso de memória atual para um Pod. |
| 206 | + |
| 207 | +As visualizações detalhadas dos workloads mostram informações de status e especificação e |
| 208 | +revelam as relações entre objetos. |
| 209 | +Por exemplo, Pods que um ReplicaSet está controlando ou novos ReplicaSets e HorizontalPodAutoscalers para Deployments. |
| 210 | + |
| 211 | +#### Services |
| 212 | + |
| 213 | +Exibe recursos do Kubernetes que permitem expor services para o mundo externo e |
| 214 | +descobri-los dentro de um cluster. |
| 215 | +Por essa razão, as visualizações de Service e Ingress mostram os Pods direcionados por eles, |
| 216 | +endpoints internos para conexões de cluster e endpoints externos para usuários externos. |
| 217 | + |
| 218 | +#### Storage |
| 219 | + |
| 220 | +A visualização de armazenamento exibe recursos PersistentVolumeClaim que são usados por aplicações para armazenar dados. |
| 221 | + |
| 222 | +#### ConfigMaps e Secrets {#config-maps-and-secrets} |
| 223 | + |
| 224 | +Exibe todos os recursos do Kubernetes que são usados para a configuração ao vivo de aplicações em execução em clusters. |
| 225 | +A visualização permite editar e gerenciar objetos de configuração e exibe secrets ocultos por padrão. |
| 226 | + |
| 227 | +#### Visualizador de logs |
| 228 | + |
| 229 | +Listas de Pods e páginas de detalhes vinculam a um visualizador de logs integrado ao Dashboard. |
| 230 | +O visualizador permite explorar logs de contêiners pertencentes a um único Pod. |
| 231 | + |
| 232 | + |
| 233 | + |
| 234 | +## {{% heading "whatsnext" %}} |
| 235 | + |
| 236 | +Para mais informações, veja a |
| 237 | +[página do projeto Kubernetes Dashboard](https://github.com/kubernetes/dashboard). |
0 commit comments