Aprenda Golang

Como integrar uma aplicação com Kubernetes

O Kubernetes se tornou uma ferramenta fundamental para a orquestração de contêineres em ambientes modernos de desenvolvimento.

Um dos recursos mais importantes dentro do Kubernetes é o Secrets, que permite o armazenamento seguro de informações sensíveis como credenciais de acesso, certificados e chaves de API.

No entanto, acessar e manipular esses dados diretamente pelo Kubernetes pode ser um desafio, especialmente quando se trata de automatização e integração com aplicações Go.

Neste post, exploraremos como utilizar o client-go para acessar e gerenciar Secrets diretamente a partir de um CLI escrito em Go.

O que é o recurso Secrets?

Secrets são recursos do Kubernetes usados para armazenar e gerenciar informações sensíveis, como senhas, tokens de autenticação e certificados. Diferente de ConfigMaps, os Secrets são tratados de maneira mais segura, sendo armazenados em formato base64 e criptografados no etcd (banco de dados do Kubernetes).

Tipos de Secrets

Existem vários tipos de Secrets no Kubernetes:

Por que usar Secrets?

Utilizar Secrets oferece diversas vantagens:

Como os Secrets são armazenados?

Os Secrets são armazenados no etcd, o banco de dados distribuído do Kubernetes. Embora sejam armazenados em formato base64, isso não significa que estejam criptografados. Para maior segurança, recomenda-se habilitar a criptografia de Secrets no etcd.

No entanto, como esse tipo de configuração não tem relação direta com a finalidade desse post, não entraremos em mais detalhes.

Acessando Secrets com Go

Agora, vamos implementar um CLI em Go que utiliza o client-go para acessar, descriptografar, editar e atualizar Secrets no Kubernetes.

Pré-requisitos

Implementação

💡Não se preocupe com os imports durante a explicação. Para deixar os trechos de código mais limpos, ao final, mostro como o arquivo deve ficar, incluindo os imports.

Para começar, vamos carregar o arquivo de configurações do Kubernetes. Caso você tenha alterado o caminho padrão do arquivo de configuração do Kubernetes, altere o segundo parâmetro da função BuildConfigFromFlags.

config, err := clientcmd.BuildConfigFromFlags("", clientcmd.RecommendedHomeFile)
if err != nil {
    panic(err.Error())
}

Para acessar o restante desse conteúdo, você deve ser um assinante do blog.

Se você ainda não é um assinante, clique aqui para conhecer nossos planos.

Conclusão

Com o client-go, você pode integrar a manipulação de vários recursos diretamente em suas aplicações Go, criando ferramentas poderosas de automação e gerenciamento.

Gostou do conteúdo?

  • Inscreva-se na nossa newsletter para receber mais dicas práticas sobre Go, Kubernetes e desenvolvimento de software diretamente no seu e-mail!
  • 🚀 Torne-se um assinante pago do blog e tenha acesso a conteúdos exclusivos, como tutoriais avançados, estudos de caso e muito mais!

Faça parte da comunidade!

Receba os melhores conteúdos sobre Go, Kubernetes, arquitetura de software, Cloud e esteja sempre atualizado com as tendências e práticas do mercado.

Livros Recomendados

Abaixo listei alguns dos melhores livros que já li sobre GO.

Sair da versão mobile