Visão geral
O cliente Java™ do Kubernetes é uma biblioteca cliente que permite o uso de linguagem de programação Java para interagir com o Kubernetes. Criado com base na API REST do Kubernetes, o cliente Java fornece acesso programático ao Kubernetes e permite criar, modificar e excluir vários recursos em um cluster do Kubernetes. Com ele, também é possível escalar implantações, executar comandos e monitorar eventos.
O Kubernetes é uma plataforma open source de orquestração de containers que automatiza a implantação, o gerenciamento e a escala de aplicações em containers. As bibliotecas cliente do Kubernetes podem lidar com tarefas como autenticação e tornar mais fácil para os desenvolvedores escreverem aplicativos usando a API do Kubernetes.
O framework de cliente mais antigo e amplamente usado é o cliente Go oficial do Kubernetes, chamado client-go. O client-go é usado pelo próprio Kubernetes e por outras distribuições e plataformas como o Red Hat® OpenShift. Outros clientes conhecidos incluem bibliotecas clientes oficiais e mantidas pela comunidade para diversas linguagens de programação. Embora existam vários clientes Java desenvolvidos pela comunidade para o Kubernetes, o cliente Java do Kubernetes é a biblioteca cliente oficial mantida pelo Kubernetes API Machinery Special Interest Group.
Por que usar o cliente Java do Kubernetes?
Nos últimos anos, os desenvolvedores abandonaram as arquiteturas monolíticas para priorizar aplicações mais versáteis e nativas em nuvem. Ao modernizar as aplicações Java legadas, muitas organizações optam por fazer a transição usando um modelo de implantação em nuvem. Essencial para a modernização de aplicações Java, o Java nativo em nuvem frequentemente envolve o uso de uma plataforma de orquestração de containers, como o Kubernetes, para gerenciar, implantar e escalar aplicações com eficiência.
Nem sempre as aplicações em containers precisam se comunicar com a API do Kubernetes, mas há diversos casos de uso que requerem chamadas de API para realizar uma tarefa específica. Caso tenha adotado uma abordagem de "faça você mesmo" para gerenciar clusters do Kubernetes, em vez de usar uma plataforma como o Red Hat OpenShift e um componente como o Red Hat Advanced Cluster Management for Kubernetes, você pode utilizar o cliente Java oficial para se comunicar com a API do Kubernetes nos seguintes casos de uso:
- Gerenciamento de aplicações
- Escala e escalabilidade automática
- Monitoramento, criação de alertas e geração de logs
- Configuração da implantação contínua
- Extensão da API do Kubernetes com operadores personalizados
- Administração de clusters
- Gerenciamento da nuvem híbrida
Como o Kubernetes e muitas de suas ferramentas e bibliotecas são escritas em Golang, a migração para o desenvolvimento nativo em nuvem no Kubernetes pode exigir treinamento e recursos adicionais caso os desenvolvedores atuais da empresa não tenham experiência nessa linguagem. Nas organizações que já têm aplicações Java ou desenvolvedores com experiência em Java, o cliente Kubernetes Java elimina a necessidade de aprender uma nova linguagem de programação e simplifica a transição para o desenvolvimento nativo em nuvem.
Recursos da Red Hat
Quais são as alternativas para o cliente Java do Kubernetes?
Embora o cliente Java oficial do Kubernetes pareça a melhor escolha para desenvolvedores Java, há várias outras opções disponíveis para ajudar você a operar e gerenciar clusters do Kubernetes.
API REST do Kubernetes e kubectl
A API REST do Kubernetes atua como interface do control plane do Kubernetes e é usada para gerenciar, criar e configurar clusters do Kubernetes. Você pode interagir com a API usando a ferramenta de linha de comando do Kubernetes (kubectl) para fazer chamadas de API e gerenciar recursos do Kubernetes. Você também pode acessar a API REST diretamente usando um cliente http, como curl ou Wget.
Fabric8 Java Client
Mantido pela comunidade, o Fabric8 Java Client é a biblioteca Java para Kubernetes mais antiga. Seu diferencial em relação ao cliente Java oficial é oferecer uma linguagem de domínio específico (DSL) robusta, diversas extensões e suporte para recursos personalizados sem a necessidade de adicionar dependências.
Operadores do Kubernetes
O operador do Kubernetes é um controlador personalizado para a aplicação que usa a API do Kubernetes e as ferramentas do kubectl para criar, configurar e gerenciar aplicações. Ao contrário da maioria dos controladores, os operadores do Kubernetes incluem conhecimento específico do domínio ou da aplicação para automatizar todo o ciclo de vida de uma aplicação em containers. Assim, é mais fácil para os desenvolvedores implantarem e escalarem os processos necessários para as aplicações.
Outras bibliotecas de terceiros
Embora o Fabric8 e os clientes Java oficiais sejam as bibliotecas Java mais conhecidas para Kubernetes, elas não são as únicas opções disponíveis. Outros clientes Java incluem o Amdatu Labs do framework OSGI e o YAKC do Kubernetes.
Desenvolvedores com especialização em outra linguagem de programação podem escolher o cliente diferente de Java que melhor atenda às suas necessidades. Outras bibliotecas oficiais e de terceiros estão disponíveis para diversas linguagens, incluindo C, dotnet, Haskell, Javascript, Perl, Python, Ruby e muito mais.
Como a Red Hat pode ajudar?
O Kubernetes é uma plataforma open source de orquestração de containers poderosa. No entanto, ele não tem a capacidade de integrar outros componentes necessários para desenvolver aplicações com agilidade, como rede, armazenamento, monitoramento e CI/CD. Baseado no Kubernetes, o Red Hat OpenShift oferece uma plataforma empresarial de orquestração de containers que incorpora esses componentes e acelera a entrega de aplicações em containers.
Você pode usar o cliente Java oficial do Kubernetes e outras bibliotecas do Kubernetes, mas existem outros clientes que permitem aproveitar os recursos e endpoints de API que o Red Hat OpenShift adiciona. Assim como os clientes do Kubernetes, as bibliotecas cliente API REST do OpenShift estão disponíveis para Java e para várias outras linguagens de programação.
Além de oferecer o know-how em tecnologias de container, a Red Hat ajuda você a lidar com a complexidade da modernização das aplicações, combinando o Red Hat OpenShift, o Red Hat Ansible Automation Platform e os operadores do Kubernetes para automatizar o gerenciamento da infraestrutura. A Red Hat também disponibiliza outras ferramentas para automatizar o gerenciamento de aplicações em vários clusters e diferentes infraestruturas com o Red Hat Advanced Cluster Management for Kubernetes, permitindo a você a acelerar a entrega de aplicações e modernizar suas cargas de trabalho.
Blog da Red Hat
Tudo relacionado à Red Hat: soluções, treinamentos e certificações Red Hat, casos de sucesso de clientes, novidades dos nossos parceiros e notícias sobre projetos das comunidades open source.