Cliente Java de Kubernetes

Cliente Java para la API de kubernetes.
Versionado del cliente
El cliente Java utiliza Versionado Semántico. Incrementamos el número de versión principal cada vez que regeneramos el cliente para una nueva versión de Kubernetes (consulta la tabla a continuación). Cada vez que hacemos esto, se añaden nuevas APIs y posiblemente cambios importantes en los Stubs de la API de Kubernetes generados. Siempre que actualices una versión principal, prepárate para posibles cambios importantes.
Instalación
Para instalar la biblioteca del cliente Java en tu repositorio local de Maven, simplemente ejecuta:
git clone --recursive https://github.com/kubernetes-client/java
cd java
mvn install
Consulta la documentación oficial para obtener más información.
Usuarios de Maven
Añade esta dependencia al POM de tu proyecto:
<dependency>
<groupId>io.kubernetes</groupId>
<artifactId>client-java</artifactId>
<version>8.0.2</version>
</dependency>
Usuarios de Gradle
compile 'io.kubernetes:client-java:8.0.2'
Otros
Primero genera el JAR ejecutando:
git clone --recursive https://github.com/kubernetes-client/java
cd java/kubernetes
mvn package
Luego instala manualmente los siguientes JARs:
- target/client-java-api-8.0.3-SNAPSHOT.jar
- target/lib/*.jar
Ejemplo
Hemos preparado algunos ejemplos para casos de uso comunes que se muestran a continuación:
- Configuración:
- Básicos:
- SimpleExample:
Ejemplo mínimo simple de cómo usar el cliente.
- ProtoExample:
Solicitar/recibir payloads en el protocolo de serialización protobuf.
- (5.0.0+) PatchExample:
Parchea objetos de recurso en varios formatos de parche admitidos, equivalente a
kubectl patch.
- FluentExample:
Construye recursos arbitrarios con un estilo de builder fluido.
- YamlExample:
Forma recomendada de cargar o volcar recursos en Yaml.
- Streaming:
- WatchExample:
Suscríbete a eventos de watch de ciertos recursos, equivalente a
kubectl get <resource> -w.
- LogsExample:
Obtén los logs de los contenedores en ejecución, equivalente a
kubectl logs.
- ExecExample:
Establece una sesión "exec" con contenedores en ejecución, equivalente a
kubectl exec.
- PortForwardExample:
Mapea un puerto local a un puerto del pod, equivalente a
kubectl port-forward.
- AttachExample:
Conéctate a un proceso que ya se está ejecutando dentro de un contenedor existente, equivalente a
kubectl attach.
- CopyExample:
Copia archivos y directorios hacia y desde contenedores, equivalente a
kubectl cp.
- WebSocketsExample:
Establece una sesión de web-socket arbitraria con ciertos recursos.
- Avanzado: (NOTA: El siguiente ejemplo requiere el módulo
client-java-extended)
- (5.0.0+) InformerExample:
Construye un informer que observa listas de recursos (list-watch) y refleja las notificaciones en una caché local.
- (5.0.0+) PagerExample:
Soporta paginación (solo para la solicitud de listado) para aliviar las cargas del servidor y la congestión de la red.
- (6.0.0+) ControllerExample:
Construye un controlador que reconcilia el estado del mundo mediante list-watch de uno o varios recursos.
- (6.0.0+) LeaderElectionExample:
Utilidades de elección de líder para ayudar a implementar controladores de alta disponibilidad (HA).
- (9.0.0+) SpringIntegrationControllerExample:
Construcción de un controlador de Kubernetes basado en la inyección de beans del framework Spring.
- (9.0.0+) GenericKubernetesClientExample:
Construye una interfaz de cliente genérica para cualquier tipo de Kubernetes, incluidos los CRDs.
listar todos los pods: