* [Topics](/en/topics "Topics")
* [Containers](/en/topics/containers "Containers")
* What is the Java client for Kubernetes?
What is the Java client for Kubernetes?
=======================================
Published  May 14, 2024•*3*-minute read
Copy URL
Jump to section
---------------
OverviewWhy use the Java client?AlternativesHow can Red Hat help?
Overview
--------
The Kubernetes Java™ client is a client library that enables the use of the Java programming language to interface with Kubernetes. Built on top of the Kubernetes REST API, the Java client provides programmatic access to Kubernetes and grants the ability to create, modify, and delete various resources within a Kubernetes cluster, scale deployments, execute commands, and monitor events.
[Kubernetes](/en/topics/containers/what-is-kubernetes) is an open source container orchestration platform that automates the deployment, management, and scaling of containerized applications. Kubernetes client libraries can handle tasks like authentication and make it easier for developers to write applications that use the Kubernetes API.
The oldest and most widely used client framework is the official Kubernetes Go client, called client-go. Client-go is used by Kubernetes itself, as well as other distributions and platforms like Red Hat® OpenShift. Other popular clients include both official and community-maintained client libraries for a variety of programming languages. While several community Java clients exist for Kubernetes, the Kubernetes Java client is the official client library maintained by the Kubernetes API Machinery Special Interest Group.
Why use the Kubernetes Java client?
-----------------------------------
In recent years, developers have moved away from monolithic architectures in favor of more versatile, cloud-native applications. Many organizations looking to modernize legacy Java applications choose to transition to a cloud deployment model. A crucial part of [Java application modernization](/en/topics/application-modernization/what-is-java-application-modernization), cloud-native Java often involves the use of a container orchestration platform like Kubernetes to efficiently manage, deploy, and scale applications.
While containerized applications don’t always need to communicate with the Kubernetes API, there are plenty of use cases where API calls are necessary to accomplish a particular task. If you are taking a DIY approach to managing Kubernetes clusters, rather than using a platform like Red Hat OpenShift and a component like Red Hat Advanced Cluster Management for Kubernetes, you can use the official Java client to talk to the Kubernetes API for the following use cases:
* Managing applications
* Scaling and autoscaling
* Monitoring, alerting, and logging
* Setting up continuous deployment
* Extending the Kubernetes API with custom operators
* Cluster administration
* Managing your hybrid cloud
Since Kubernetes and many of its tools and libraries are written in Golang, moving to cloud-native development in Kubernetes may require additional training and resources if an organization’s existing developers do not have a Golang background. For organizations with existing Java applications or developers with backgrounds in Java, the Kubernetes Java client eliminates the need to learn a new programming language and simplifies the transition to cloud-native development.
Red Hat resources
-----------------
[Keep reading](/en/resources "Keep reading")
What are alternatives to using the Kubernetes Java client?
----------------------------------------------------------
Although the official Kubernetes Java client may seem like the best choice for Java developers, there are several other options available to help operate and manage Kubernetes clusters.
**Kubernetes REST API & kubectl**  
The [Kubernetes REST API](/en/topics/containers/what-is-the-kubernetes-api) serves as the front end of the Kubernetes control plane and is used to manage, create, and configure Kubernetes clusters. You can interact with the API using the Kubernetes command line tool, kubectl, to make API calls and manage Kubernetes resources. You can also access the REST API directly by using an http client like curl or Wget.
**Fabric8 Java Client**  
The Fabric8 Java client is a community-maintained client library and the oldest Java library for Kubernetes. It differentiates itself from the official Java client by providing a robust domain-specific language (DSL), a variety of extensions, and support for custom resources without the need to add additional dependencies.
**Kubernetes operators**  
A [Kubernetes operator](/en/topics/containers/what-is-a-kubernetes-operator) is a custom, application-specific controller that uses the Kubernetes API and kubectl tooling to create, configure, and manage applications. Unlike most controllers, Kubernetes operators include domain or application-specific knowledge to automate the entire lifecycle of a containerized application, making it easier for developers to deploy and scale processes that these applications rely on.
**Other third-party libraries**  
Although the Fabric8 and official Java clients are the most popular Java libraries for Kubernetes, they are by no means the only options available. Other Java clients include the Amdatu Labs Java client for the OSGI Java framework and the YAKC Java client for Kubernetes.
Alternatively, developers with expertise in other programming language may choose a non-Java client that better suits their needs. Other official and third-party libraries are available for numerous languages including C, dotnet, Haskell, Javascript, Perl, Python, Ruby, and more.
How can Red Hat help?
---------------------
Kubernetes is a powerful open source container orchestration platform, but it lacks the functionality to integrate other components like networking, storage, monitoring, and CI/CD, which are necessary for quicker application development. Red Hat OpenShift builds on Kubernetes and provides an enterprise container orchestration platform while incorporating all of these components and accelerating the delivery of containerized applications.
While you can still use the official Kubernetes Java client and any other Kubernetes libraries, there are other clients available that allow you to take advantage of the additional resources and API endpoints added by Red Hat OpenShift. Like the Kubernetes clients, REST API client libraries for OpenShift are available for Java and numerous other programming languages.
In addition to providing expertise in container technologies, Red Hat can help you overcome the complexity of modernizing applications by automating infrastructure management with a combination of [Red Hat OpenShift](/en/technologies/cloud-computing/openshift), [Red Hat Ansible Automation Platform](/en/technologies/management/ansible), and Kubernetes operators. Red Hat also offers additional tooling for automating application management across multiple clusters and different infrastructures with [Red Hat Advanced Cluster Management for Kubernetes](/en/technologies/management/advanced-cluster-management), helping you speed up application delivery and modernize your workloads.
Hub
The official Red Hat blog
-------------------------
Get the latest information about our ecosystem of customers, partners, and communities.
[Keep reading](/en/blog "The official Red Hat blog")
All Red Hat product trials
--------------------------
Our no-cost product trials help you gain hands-on experience, prepare for a certification, or assess if a product is right for your organization.
[Keep reading](/en/products/trials "All Red Hat product trials")
Keep reading
------------
### What is a Linux container?
Find out more about Linux containers, which are a set of 1 or more processes that are isolated from the rest of the system.
[Read the article](/en/topics/containers/whats-a-linux-container "article | what is a linux container?")
### What is container orchestration?
Container orchestration automates the deployment, management, scaling, and networking of containers.
[Read the article](/en/topics/containers/what-is-container-orchestration "article | what is container orchestration?")
### What is Kubernetes?
Kubernetes is a container orchestration platform that eliminates many manual processes involved in deploying and scaling containerized applications.
[Read the article](/en/topics/containers/what-is-kubernetes "article | what is kubernetes?")
Containers resources
--------------------
### Related content
* Blog post
  [From core to tactical edge: A unified platform for defense innovation](/en/blog/core-tactical-edge-unified-platform-defense-innovation)
* Checklist
  [4 key considerations in modernizing industrial controls](/en/resources/considerations-modernizing-industrial-controls-checklist)
* Overview
  [Modernize Citrix virtual desktops with OpenShift Virtualization](/en/resources/citrix-virtual-desktops-overview)
* Overview
  [Simplify industrial control modernization with Red Hat](/en/resources/simplify-industrial-control-overview)
### Related articles
* [What is a Linux container?](/en/topics/containers/whats-a-linux-container)
* [What is container orchestration?](/en/topics/containers/what-is-container-orchestration)
* [Stateful vs stateless applications](/en/topics/cloud-native-apps/stateful-vs-stateless)
* [What is Kubernetes?](/en/topics/containers/what-is-kubernetes)
* [Red Hat OpenShift on VMware](/en/technologies/cloud-computing/openshift/vmware)
* [What is application migration?](/en/topics/cloud-native-apps/application-migration)
* [What is KubeVirt?](/en/topics/virtualization/what-is-kubevirt)
* [Why use Red Hat Ansible Automation Platform with Red Hat OpenShift?](/en/technologies/cloud-computing/openshift/ansible-on-openshift)
* [What is Podman Desktop?](/en/topics/containers/what-is-podman-desktop)
* [What is Podman?](/en/topics/containers/what-is-podman)
* [What are hosted control planes?](/en/topics/containers/what-are-hosted-control-planes)
* [What is kubernetes security?](/en/topics/containers/kubernetes-security)
* [Why use Red Hat Consulting?](/en/topics/application-modernization/the-value-of-red-hat-consulting)
* [Red Hat OpenShift for developers](/en/technologies/cloud-computing/openshift/developers)
* [Containers vs VMs](/en/topics/containers/containers-vs-vms)
* [Edge computing with Red Hat OpenShift](/en/technologies/cloud-computing/openshift/edge-computing)
* [Explore Joint Warfighting Cloud Capability with Red Hat](/en/topics/cloud-computing/joint-warfighting-cloud-capability-with-red-hat)
* [Modernizing defense software factories](/en/topics/cloud-computing/modernize-defense-software-factories)
* [How Kubernetes can help AI/ML](/en/topics/cloud-computing/how-kubernetes-can-help-ai)
* [What is Kubeflow?](/en/topics/cloud-computing/what-is-kubeflow)
* [What are microservices?](/en/topics/microservices/what-are-microservices)
* [What is container security?](/en/topics/security/container-security)
* [OpenShift vs. OpenStack: What are the differences?](/en/technologies/cloud-computing/openshift/openshift-vs-openstack)
* [What are sandboxed containers](/en/topics/containers/sandboxed-containers)
* [what is Buildah?](/en/topics/containers/what-is-buildah)
* [How to accelerate modernizing legacy banking systems](/en/topics/financial-services/how-to-accelerate-modernizing-legacy-banking)
* [What is IT modernization?](/en/topics/application-modernization/what-is-it-modernization)
* [Kubernetes vs OpenStack](/en/topics/openstack/kubernetes-vs-openstack)
* [What are validated patterns?](/en/topics/cloud-computing/what-are-validated-patterns)
* [Kubernetes on AWS: Self-Managed vs. Managed Applications Platforms](/en/topics/containers/kubernetes-on-aws)
* [What is an image builder?](/en/topics/linux/what-is-an-image-builder)
* [Red Hat OpenShift vs. OKD](/en/topics/containers/red-hat-openshift-okd)
* [Red Hat OpenShift vs. Kubernetes: What's the difference?](/en/technologies/cloud-computing/openshift/red-hat-openshift-kubernetes)
* [Spring on Kubernetes with Red Hat OpenShift](/en/technologies/cloud-computing/openshift/spring)
* [Why run Apache Kafka on Kubernetes?](/en/topics/integration/why-run-apache-kafka-on-kubernetes)
* [What is high availability and disaster recovery for containers?](/en/topics/containers/high-availability-containers)
* [What is Java application modernization](/en/topics/application-modernization/what-is-java-application-modernization)
* [What is .NET application modernization?](/en/topics/application-modernization/what-is-dotnet-modernization)
* [What is a golden image?](/en/topics/linux/what-is-a-golden-image)
* [What are Red Hat OpenShift cloud services?](/en/technologies/cloud-computing/openshift/what-are-red-hat-openshift-cloud-services)
* [VNF and CNF, what’s the difference?](/en/topics/cloud-native-apps/vnf-and-cnf-whats-the-difference)
* [What is a container registry?](/en/topics/cloud-native-apps/what-is-a-container-registry)
* [What is Skopeo?](/en/topics/containers/what-is-skopeo)
* [What are Red Hat OpenShift Operators?](/en/technologies/cloud-computing/openshift/what-are-openshift-operators)
* [Using Helm with Red Hat OpenShift](/en/technologies/cloud-computing/openshift/helm)
* [Kubernetes security best practices](/en/topics/containers/kubernetes-security-best-practices)
* [Orchestrating Windows containers on Red Hat OpenShift](/en/technologies/cloud-computing/openshift/windows-containers-on-red-hat-openshift)
* [What is a Kubernetes operator?](/en/topics/containers/what-is-a-kubernetes-operator)
* [High performance computing with Red Hat OpenShift](/en/technologies/cloud-computing/openshift/high-performance-computing)
* [Advantages of Kubernetes-native security](/en/topics/containers/advantages-of-kubernetes-native-security)
* [What is KubeLinter?](/en/topics/containers/what-is-kubelinter)
* [Intro to Kubernetes security](/en/topics/containers/intro-kubernetes-security)
* [Container and Kubernetes compliance considerations](/en/topics/containers/compliance)
* [How microservices support IT integration in healthcare](/en/topics/microservices/microservices-in-healthcare)
* [Kubernetes cluster management](/en/technologies/cloud-computing/openshift/kubernetes-cluster-management)
* [Red Hat OpenShift on IBM IT infrastructure](/en/technologies/cloud-computing/openshift/what-is-red-hat-openshift-on-IBM-IT-infrastructure)
* [Red Hat OpenShift for business leaders](/en/technologies/cloud-computing/openshift/business-leaders)
* [How to deploy Red Hat OpenShift](/en/technologies/cloud-computing/openshift/deploy-red-hat-openshift)
* [Cost management for Kubernetes on Red Hat OpenShift](/en/technologies/cloud-computing/openshift/cost-management)
* [What is enterprise Kubernetes?](/en/topics/containers/what-is-enterprise-kubernetes)
* [What makes Red Hat OpenShift the right choice for IT operations?](/en/technologies/cloud-computing/openshift/it-operations)
* [What makes Red Hat OpenShift the right choice for SAP?](/en/technologies/cloud-computing/openshift/sap)
* [Why choose Red Hat for Kubernetes?](/en/topics/containers/why-choose-red-hat-kubernetes)
* [Kubernetes-native Java development with Quarkus](/en/technologies/cloud-computing/openshift/quarkus)
* [What is Kubernetes role-based access control (RBAC)](/en/topics/containers/what-kubernetes-role-based-access-control-rbac)
* [What is digital transformation consulting](/en/topics/digital-transformation/what-is-digital-transformation-consulting)
* [What is containerization?](/en/topics/cloud-native-apps/what-is-containerization)
* [What was CoreOS and CoreOS container Linux](/en/technologies/cloud-computing/openshift/what-was-coreos)
* [Learning Kubernetes basics](/en/topics/containers/learning-kubernetes-tutorial)
* [What is service-oriented architecture?](/en/topics/cloud-native-apps/what-is-service-oriented-architecture)
* [What is payments infrastructure?](/en/topics/financial-services/what-is-payments-infrastructure)
* [What is the Kubernetes API?](/en/topics/containers/what-is-the-kubernetes-api)
* [What is Kubernetes cluster management?](/en/topics/containers/what-is-kubernetes-cluster-management)
* [What is a Kubernetes deployment?](/en/topics/containers/what-is-kubernetes-deployment)
* [Why choose the Red Hat build of Quarkus?](/en/topics/cloud-native-apps/why-choose-red-hat-quarkus)
* [Introduction to Kubernetes architecture](/en/topics/containers/kubernetes-architecture)
* [What is CaaS?](/en/topics/cloud-computing/what-is-caas)
* [Introduction to Kubernetes patterns](/en/topics/cloud-native-apps/introduction-to-kubernetes-patterns)
* [What is a Kubernetes cluster?](/en/topics/containers/what-is-a-kubernetes-cluster)
* [What is Quarkus?](/en/topics/cloud-native-apps/what-is-quarkus)
* [What is Jaeger?](/en/topics/microservices/what-is-jaeger)
* [What is container-native virtualization?](/en/topics/containers/what-is-container-native-virtualization)
* [What is Clair?](/en/topics/containers/what-is-clair)
* [What is Knative?](/en/topics/microservices/what-is-knative)
* [What is etcd?](/en/topics/containers/what-is-etcd)
* [Why choose Red Hat for microservices?](/en/topics/microservices/why-choose-red-hat-microservices)
* [What is digital transformation?](/en/topics/digital-transformation/what-is-digital-transformation)
* [Why choose Red Hat for containers?](/en/topics/containers/why-choose-red-hat-containers)
* [What is Docker?](/en/topics/containers/what-is-docker)
* [What is a Kubernetes pod?](/en/topics/containers/what-is-kubernetes-pod)
[More about this topic](/en/topics/containers "More about this topic")