A logo showing the text blog.marcnuri.com
English
Inicio»Java»Cliente de Kubernetes para Java: Cómo configurar el cliente HTTP subyacente

Entradas Recientes

  • Fabric8 Kubernetes Client 7.2.0 está disponible!
  • Conectarse a un servidor MCP con JavaScript y AI SDK
  • Conectarse a un servidor MCP con JavaScript y LangChain.js
  • El Futuro de las Herramientas para Desarrolladores en la era de la IA
  • Conectarse a un servidor Model Context Protocol (MCP) con Java y LangChain4j

Categorías

  • Antiguo
  • Front-end
  • Go
  • Herramientas
  • Industria y negocios
  • Inteligencia Artificial
  • Java
  • JavaScript
  • Operaciones
  • Personal
  • Proyectos personales

Archivos

  • mayo 2025
  • abril 2025
  • marzo 2025
  • febrero 2025
  • enero 2025
  • diciembre 2024
  • noviembre 2024
  • agosto 2024
  • junio 2024
  • mayo 2024
  • abril 2024
  • marzo 2024
  • febrero 2024
  • enero 2024
  • diciembre 2023
  • noviembre 2023
  • octubre 2023
  • septiembre 2023
  • agosto 2023
  • julio 2023
  • junio 2023
  • mayo 2023
  • abril 2023
  • marzo 2023
  • febrero 2023
  • enero 2023
  • diciembre 2022
  • noviembre 2022
  • octubre 2022
  • agosto 2022
  • julio 2022
  • mayo 2022
  • marzo 2022
  • febrero 2022
  • enero 2022
  • diciembre 2021
  • noviembre 2021
  • octubre 2021
  • septiembre 2021
  • agosto 2021
  • julio 2021
  • diciembre 2020
  • octubre 2020
  • agosto 2020
  • junio 2020
  • mayo 2020
  • marzo 2020
  • febrero 2020
  • enero 2020
  • noviembre 2019
  • octubre 2019
  • julio 2019
  • diciembre 2018
  • agosto 2018
  • julio 2018
  • junio 2018
  • mayo 2018
  • marzo 2018
  • febrero 2018
  • noviembre 2017
  • octubre 2017
  • agosto 2017
  • julio 2017
  • enero 2017
  • julio 2016
  • enero 2016
  • diciembre 2015
  • noviembre 2015
  • diciembre 2014
  • marzo 2014
  • febrero 2011
  • junio 2008
  • mayo 2008
  • abril 2008
  • enero 2008
  • junio 2007
  • mayo 2007
  • abril 2007
  • marzo 2007

Cliente de Kubernetes para Java: Cómo configurar el cliente HTTP subyacente

2023-09-01 en Java etiquetado Kubernetes / Cliente / Java / Cloud / Fabric8 / OpenShift por Marc Nuri | Última actualización: 2024-03-21
English version

Introducción

El cliente de Kubernetes de Fabric8 destaca como uno de los clientes Java más populares para Kubernetes. Si lo comparas con otros clientes de Kubernetes, tiene un conjunto de características adicionales y optimizaciones de rendimiento que lo diferencian de los demás.

Una característica notable introducida en la versión 6.0 te permite configurar el cliente HTTP subyacente utilizado por el cliente de Kubernetes. Esta característica única convierte al cliente de Fabric8 en una opción increíblemente flexible.

La opción de elegir el cliente HTTP adecuado es particularmente valiosa cuando deseas alinear tu cliente de Kubernetes con el cliente HTTP que ya está utilizando tu aplicación. Por ejemplo, la instancia del cliente de Kubernetes de Fabric8 proporcionada por Quarkus se configura por defecto con Eclipse Vert.x.

El cliente de Kubernetes de Fabric8 ofrece múltiples implementaciones de cliente HTTP integradas. Es probable que encuentres una que se adapte a tus necesidades. Veamos estas opciones en detalle y aprendamos cómo configurarlas.

Implementaciones de cliente HTTP disponibles

Actualmente, el cliente de Kubernetes de Fabric8 proporciona las siguientes implementaciones de cliente HTTP:

  • OkHttp
  • Vanilla Java JDK HttpClient
  • Eclipse Vert.x
  • Eclipse Jetty

OkHttp es la implementación de cliente HTTP predeterminada proporcionada por Fabric8. Esta ha sido tradicionalmente la opción desde las primeras versiones del cliente. Esta es también la razón principal por la que todavía se emplea por defecto y por la que se proporciona como una dependencia transitiva del módulo kubernetes-client.

Siempre que agreguemos una dependencia a una implementación de cliente HTTP diferente, esta tendrá prioridad sobre OkHttp. Sin embargo, se recomienda que excluyamos la dependencia kubernetes-httpclient-okhttp para mejorar el rendimiento de la compilación de nuestro proyecto. Ahora continuemos aprendiendo cómo configurar el cliente HTTP vanilla JDK.

Cómo configurar el cliente JDK HTTP vanilla

A partir de Java 11, el JDK proporciona un cliente HTTP integrado. Esto es extremadamente conveniente porque hoy en día, la mayoría de las aplicaciones necesitan comunicarse con servicios y aplicaciones externas a través de HTTP.

Desde el punto de vista del cliente de Kubernetes de Java, poder confiar en un cliente HTTP sin agregar dependencias adicionales es una gran ventaja. Cuándo liberamos la versión 6.0, consideramos cambiar la implementación predeterminada al cliente HTTP JDK vanilla. No obstante, el cliente HTTP JDK tiene algunos problemas que no se solucionaron hasta Java 16. Puedes encontrar más información sobre esto en el readme del módulo.

En cualquier caso, si estás utilizando Java 16 o cualquiera de las nuevas versiones LTS, puedes configurar el cliente de Kubernetes para usar el cliente HTTP JDK. El siguiente fragmento muestra cómo configurar el archivo pom.xml de tu proyecto para usar el cliente HTTP JDK:

pom.xml
<project>
  <dependencies>
    <dependency>
      <groupId>io.fabric8</groupId>
      <artifactId>kubernetes-client</artifactId>
      <exclusions>
        <exclusion>
          <groupId>io.fabric8</groupId>
          <artifactId>kubernetes-httpclient-okhttp</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>io.fabric8</groupId>
      <artifactId>kubernetes-httpclient-jdk</artifactId>
    </dependency>
  </dependencies>
</project>

En caso de que estés utilizando Gradle:

build.gradle
dependencies {
  implementation("io.fabric8:kubernetes-client") {
    exclude group: "io.fabric8", module: "kubernetes-httpclient-okhttp"
  }
  implementation("io.fabric8:kubernetes-httpclient-jetty")
}

Continuemos ahora aprendiendo cómo configurar el cliente HTTP Eclipse Vert.x.

Cómo configurar el cliente de Kubernetes para usar Eclipse Vert.x

Eclipse Vert.x es un conjunto de herramientas para crear aplicaciones reactivas en la JVM. También proporciona un cliente HTTP no bloqueante que se puede utilizar para comunicarse con servicios y aplicaciones externas. Dado que este es uno de los clientes más eficientes de los disponibles, es una excelente opción para el cliente de Kubernetes.

El siguiente fragmento muestra cómo configurar el archivo pom.xml de tu proyecto para usar el cliente HTTP Vert.x:

pom.xml
<project>
  <dependencies>
    <dependency>
      <groupId>io.fabric8</groupId>
      <artifactId>kubernetes-client</artifactId>
      <exclusions>
        <exclusion>
          <groupId>io.fabric8</groupId>
          <artifactId>kubernetes-httpclient-okhttp</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>io.fabric8</groupId>
      <artifactId>kubernetes-httpclient-vertx</artifactId>
    </dependency>
  </dependencies>
</project>

En caso de que estés utilizando Gradle:

build.gradle
dependencies {
  implementation("io.fabric8:kubernetes-client") {
    exclude group: "io.fabric8", module: "kubernetes-httpclient-okhttp"
  }
  implementation("io.fabric8:kubernetes-httpclient-vertx")
}

Cómo configurar el cliente de Kubernetes para usar Eclipse Jetty

Eclipse Jetty es principalmente un servidor HTTP Java y un contenedor de servlets. Sin embargo, Jetty también proporciona un cliente HTTP de alto rendimiento que se puede utilizar para comunicarse con servicios y aplicaciones externas.

Jetty es una excelente opción si tu proyecto está utilizando JDK 11 o una versión más reciente. El siguiente fragmento muestra cómo configurar el cliente de Kubernetes para usar el cliente HTTP Jetty:

pom.xml
<project>
  <dependencies>
    <dependency>
      <groupId>io.fabric8</groupId>
      <artifactId>kubernetes-client</artifactId>
      <exclusions>
        <exclusion>
          <groupId>io.fabric8</groupId>
          <artifactId>kubernetes-httpclient-okhttp</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>io.fabric8</groupId>
      <artifactId>kubernetes-httpclient-jetty</artifactId>
    </dependency>
  </dependencies>
</project>

En caso de que estés utilizando Gradle:

build.gradle
dependencies {
  implementation("io.fabric8:kubernetes-client") {
    exclude group: "io.fabric8", module: "kubernetes-httpclient-okhttp"
  }
  implementation("io.fabric8:kubernetes-httpclient-jetty")
}

Cómo hemos visto, el cliente de Kubernetes de Fabric8 proporciona múltiples implementaciones de cliente HTTP. En el siguiente apartado, aprenderemos qué hacer en caso de que quieras utilizar un cliente HTTP diferente.

Cómo puedo usar un cliente HTTP diferente

En caso de que el cliente HTTP que quieras utilizar no lo proporcione cliente de Kubernetes de Fabric8, aún puedes usarlo implementando las interfaces HttpClient. A pesar de que no es una tarea muy sencilla, aún es posible hacerlo.

Por ejemplo, los desarrolladores de Armeria ya están trabajando en una implementación propia de la interfaz HttpClient para el cliente de Kubernetes de Fabric8.

Conclusión

En este artículo, te he enseñado cómo configurar el cliente de Kubernetes de Fabric8 para usar diferentes clientes HTTP. Poder elegir el cliente HTTP subyacente es una característica única que te permite reutilizar el cliente HTTP que ya estás utilizando en tu aplicación.

El cliente de Kubernetes de Fabric8 ya proporciona múltiples implementaciones de cliente HTTP. También hemos aprendido que puedes implementar la interfaz HttpClient en caso de que quieras utilizar un cliente HTTP diferente.

The logo of Fabric8 Kubernetes Client
The logo of Fabric8 Kubernetes Client
Twitter iconFacebook iconLinkedIn iconPinterest iconEmail icon

Navegador de artículos
Bash: Cómo iterar a través de una lista de cadenas de textoEclipse JKube 1.14 está disponible!
© 2007 - 2025 Marc Nuri