Como começar a gerenciar um cluster Kubernetes com o Portainer

0
35


O Portainer é uma das interfaces de gerenciamento de contêineres mais populares. Embora o Portainer tenha começado com foco no Docker e no Docker Compose, ele também funciona com clusters gerenciados por orquestradores, incluindo Docker Swarm e Kubernetes.

Install and Integrate Rancher + K3S...
Install and Integrate Rancher + K3S - Kubernetes Lab

Neste artigo, você aprenderá como conectar o Portainer a um cluster Kubernetes. Você poderá usar o Portainer para visualizar e interagir com objetos do Kubernetes, como Pods, Deployments e ConfigMaps. O Portainer pode implementar gráficos Helm e expor informações básicas no nível do cluster também. É uma alternativa viável ao painel oficial e outras opções como o Lens para gerenciamento simples do Kubernetes.

Implante o Portainer em seu cluster

Certifique-se de ter acesso a um cluster Kubernetes funcional antes de continuar. Você pode provisionar um usando [a managed cloud service] ou execute seu próprio localmente usando uma solução como MicroK8s ou Minikube. Você também precisará ter o Helm instalado para simplificar o processo de instalação do Portainer.

Adicione o repositório Portainer ao Helm usando os seguintes comandos:

$ helm repo add portainer https://portainer.github.io/k8s/ 
$ helm repo update

Em seguida, execute um dos seguintes comandos para implantar o aplicativo Portainer.

Expor Portainer com um NodePort

$ helm install --create-namespace -n portainer portainer portainer/portainer

Este é o método mais simples. Você poderá acessar o Portainer por HTTP usando a porta 30777 no nó que executa o Portainer Pod. O tráfego HTTPS será servido na porta 30779 usando um certificado autoassinado. Consulte a documentação do Portainer se desejar fornecer seu próprio certificado SSL ao implantar com este método.

Expor Portainer com um balanceador de carga

$ helm install --create-namespace -n portainer portainer portainer/portainer 
    --set service.type=LoadBalancer

Esse método é semelhante ao NodePort, mas você usará um balanceador de carga na frente de seus nós. Visite a porta 9000 no IP do balanceador de carga para se comunicar com o Portainer por HTTP. HTTPS é suportado na porta 9443.

Expor portainer com um caminho de entrada

helm install --create-namespace -n portainer portainer portainer/portainer 
  --set service.type=ClusterIP 
  --set ingress.enabled=true 
  --set ingress.annotations.'kubernetes.io/ingress.class'=nginx 
  --set ingress.annotations."nginx.ingress.kubernetes.io/backend-protocol"=HTTPS 
  --set ingress.hosts[0].host=portainer.example.com 
  --set ingress.hosts[0].paths[0].path="https://www.howtogeek.com/"

Este método expõe o Portainer por meio de um caminho de entrada. Você precisará de um controlador Ingress, como NGINX Ingress, em seu cluster. Modifique o host S path variáveis ​​no comando para personalizar a rota do Portainer. Neste exemplo, você poderá acessar o Portainer visitando portainer.example.comdepois de configurar um registro DNS adequado.

Configurar um caminho de entrada é a melhor maneira de servir o Portainer a longo prazo, pois suporta balanceamento de carga entre nós e permite atribuir um domínio específico. As opções NodePort ou LoadBalancer são opções mais fáceis quando você está experimentando clusters que não têm um controlador de entrada disponível.

Depois de concluir sua implantação, carregue o Portainer em seu navegador visitando o host do Ingress ou o endereço IP e o número da porta apropriados. Preencha a tela de configuração para criar sua conta de usuário.

Imagem da página de configurações do Portainer

O Portainer agora está pronto para ser usado com seu cluster Kubernetes – a implantação direta no Kubernetes descobre automaticamente seu ambiente. Clique no botão “Iniciar” para concluir a instalação.

imagem da operadora "iniciando" tela

Adicionando um cluster Kubernetes a uma instalação existente do Portainer

Você pode adicionar um cluster Kubernetes a uma instalação existente do Portainer. Você pode optar por executar o Portainer fora do seu host para que ele não consuma recursos do cluster.

Comece fazendo login na sua instância do Portainer. Clique no link “Ambientes” na parte inferior da barra lateral esquerda. Clique no botão azul “Adicionar ambiente” na parte superior da tela.

imagem de adicionar um ambiente ao Portainer

Em seguida, pressione o bloco “Kubernetes” e depois o botão “Iniciar assistente” na parte inferior da tela.

imagem de adicionar um ambiente ao Portainer

A próxima tela exibirá as instruções de instalação do agente Portainer Kubernetes. Este componente é instalado em seu cluster. O Portainer se comunica com o agente para extrair informações do Kubernetes e aplicar as ações solicitadas.

Você pode escolher entre implantar o agente com um NodePort ou um LoadBalancer. Selecione a guia apropriada e copie o comando mostrado. Execute isso em seu terminal para adicionar o Portainer Agent ao seu cluster. O Agente Portainer é protegido por uma assinatura digital que recebe na primeira vez que o aplicativo Portainer faz contato. O Agente rejeitará comunicações de clientes que não fornecerem a assinatura correta.

Em seguida, preencha os campos “Nome” e “URL do ambiente” exibidos na interface da web do Portainer. Você pode escolher qualquer nome que identifique seu cluster.

Imagem da tela de configuração do agente Portainer K8s

Se você estiver usando uma conexão NodePort, a URL do ambiente deve ser a porta 30778 no endereço IP do seu nó. Para conexões LoadBalancer, encontre o IP externo do balanceador de carga executando kubectl get services -n portainer. O agente será exposto na porta 9001 neste IP.

$ kubectl get services -n portainer
NAMESPACE     NAME              TYPE            CLUSTER-IP      EXTERNAL-IP       PORT(S)
portainer     portainer-agent   LoadBalancer    10.245.110.27   139.59.198.245    9001:30343/TCP

Clique no botão “Conectar” para concluir sua conexão. Você deverá ver um alerta pop-up verde confirmando que o ambiente foi adicionado. Pressione o botão “Concluir” na parte inferior da tela para retornar à lista de ambientes.

Usando o Portainer para gerenciar o Kubernetes

A tela inicial do Portainer exibe todos os seus ambientes configurados. Podem ser clusters do Kubernetes, instalações locais do Docker Engine ou qualquer outro endpoint compatível. Clique em seu cluster para começar a gerenciá-lo.

imagem mostrando diferentes endpoints conectados no Portainer

A tela do painel do cluster fornece uma visão geral do número de recursos em seu cluster. Atualmente, o Portainer se concentra em interações com namespaces, aplicativos (seus pods e implementações), ConfigMaps e segredos e volumes. Fornece uma camada de abstração sobre alguns conceitos do Kubernetes.

Imagem da tela de visão geral do cluster Portainer

Clique no bloco Aplicativos ou no link da barra lateral para ver seus pods e implantações em execução. A tela mostra todos os aplicativos em seu cluster, incluindo a imagem que eles estão usando e sua URL externa quando um caminho de entrada é configurado.

Imagem de visualização do aplicativo Kubernetes com Portainer

Você pode adicionar um novo aplicativo fazendo upload de um arquivo de manifesto do Kubernetes ou clicando no botão “Adicionar aplicativo com formulário” para configurar interativamente seus pods.

imagem da operadora "adicionar um novo aplicativo Kubernetes" Formato

O Portainer também fornece uma visão geral básica da utilização de recursos do seu cluster. Clique no item da barra lateral “Cluster” para visualizar os nós em seu cluster e suas reservas de memória e CPU.

imagem de visualização do uso do cluster Kubernetes com o Portainer

Por fim, a tela de configuração do cluster, acessada navegando até Cluster > Configuration, controla os recursos do Portainer para habilitar em seu ambiente Kubernetes. Você pode usar isso para informar ao Portainer quais balanceadores de carga, drivers de entrada e classes de armazenamento devem estar disponíveis para os usuários. Outras configurações incluem a capacidade de alterar a permissão de compromissos excessivos de recursos (onde mais recursos podem ser solicitados do que o cluster pode fornecer) e habilitar a API de métricas para acessar informações de utilização mais detalhadas. Isso requer que a API Metrics já esteja instalada em seu cluster.

imagem de uma configuração de cluster Kubernetes com Portainer

Resumo

O Portainer é uma das interfaces de gerenciamento de contêineres mais populares. As versões modernas do Portainer têm suporte integrado para clusters Kubernetes. Você pode implantar o Portainer em seu cluster ou usar o agente Portainer para conectar o Kubernetes a uma instância de aplicativo existente.

Uma vez configurado, você pode usar o Portainer para visualizar e interagir com os pods do Kubernetes e outros objetos. Isso pode ser mais conveniente do que executar comandos Kubectl complexos em seu terminal. O Portainer permite agregar todos os seus ambientes de contêiner em uma única plataforma, de clusters Kubernetes a instalações Docker de nó único.