Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
kubernetes-client__java_CVE-2020-8570_client-java-parent-9_0_2_fixed | Kitploit
Strumenti/GitHubGitHub/shoucheng3/kubernetes-client__java_cve-2020-8570_client-java-parent-9_0_2_fixed
Autenticazione e AutorizzazioneSicurezza dell'Infrastruttura CloudUtilità GenericheSicurezza dei ContenitoriSicurezza CloudSicurezza delle API
GitHubshoucheng3/kubernetes-client__java_cve-2020-8570_client-java-parent-9_0_2_fixed

kubernetes-client__java_CVE-2020-8570_client-java-parent-9_0_2_fixed

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository
9 mesi faNon ancora revisionato

Client Java per Kubernetes

Build Status Client Capabilities Client Support Level

Client Java per l'API di kubernetes.

Versionamento del client

Il client Java utilizza il Semantic Versioning. Incrementiamo il numero di versione major ogni volta che rigeneriamo il client per una nuova versione di Kubernetes (vedi la tabella sotto). Ogni volta che lo facciamo, vengono aggiunte nuove API e possibilmente modifiche sostanziali (breaking changes) negli stub dell'API Kubernetes generati. Ogni volta che si aggiorna una versione major, bisogna essere preparati a potenziali modifiche sostanziali.

Installazione

Per installare la libreria del client Java nel tuo repository Maven locale, esegui semplicemente:

root@kitploit:~
git clone --recursive https://github.com/kubernetes-client/java
cd java
mvn install

Fai riferimento alla documentazione ufficiale per maggiori informazioni.

Utenti Maven

Aggiungi questa dipendenza al POM del tuo progetto:

root@kitploit:~
<dependency>
    <groupId>io.kubernetes</groupId>
    <artifactId>client-java</artifactId>
    <version>8.0.2</version>
</dependency>

Utenti Gradle

root@kitploit:~
compile 'io.kubernetes:client-java:8.0.2'

Altri

Per prima cosa genera il JAR eseguendo:

root@kitploit:~
git clone --recursive https://github.com/kubernetes-client/java
cd java/kubernetes
mvn package

Quindi installa manualmente i seguenti JAR:

  • target/client-java-api-8.0.3-SNAPSHOT.jar
  • target/lib/*.jar

Esempio

Abbiamo preparato alcuni esempi per i casi d'uso comuni, mostrati di seguito:

  • Configurazione:
    • InClusterClientExample: Configura un client mentre si è in esecuzione all'interno del cluster Kubernetes.
    • KubeConfigFileClientExample: Configura un client per accedere a un cluster Kubernetes dall'esterno.
  • Nozioni di base:
    • SimpleExample: Esempio minimo e semplice di come usare il client.
    • ProtoExample: Invia/ricevi payload nel protocollo di serializzazione protobuf.
    • (5.0.0+) PatchExample: Applica patch agli oggetti risorsa in vari formati supportati, equivalente a kubectl patch.
    • FluentExample: Costruisci risorse arbitrarie in stile fluent builder.
    • YamlExample: Metodo consigliato per caricare o esportare risorse in Yaml.
  • Streaming:
    • WatchExample: Sottoscrivi gli eventi watch di determinate risorse, equivalente a kubectl get <resource> -w.
    • LogsExample: Recupera i log dai container in esecuzione, equivalente a .

elenca tutti i pod:

root@kitploit:~
import io.kubernetes.client.openapi.ApiClient;
import io.kubernetes.client.openapi.ApiException;
import io.kubernetes.client.openapi.Configuration;
import io.kubernetes.client.openapi.apis.CoreV1Api;
import io.kubernetes.client.openapi.models.V1Pod;
import io.kubernetes.client.openapi.models.V1PodList;
import io.kubernetes.client.util.Config;

import java.io.IOException;

public class Example {
    public static void main(String[] args) throws IOException, ApiException{
        ApiClient client = Config.defaultClient();
        Configuration.setDefaultApiClient(client);

        CoreV1Api api = new CoreV1Api();
        V1PodList list = api.listPodForAllNamespaces(null, null, null, null, null, null, null, null, null);
        for (V1Pod item : list.getItems()) {
            System.out.println(item.getMetadata().getName());
        }
    }
}

osserva (watch) l'oggetto namespace:

root@kitploit:~
import com.google.gson.reflect.TypeToken;
import io.kubernetes.client.openapi.ApiClient;
import io.kubernetes.client.openapi.ApiException;
import io.kubernetes.client.openapi.Configuration;
import io.kubernetes.client.openapi.apis.CoreV1Api;
import io.kubernetes.client.openapi.models.V1Namespace;
import io.kubernetes.client.util.Config;
import io.kubernetes.client.util.Watch;

import java.io.IOException;

public class WatchExample {
    public static void main(String[] args) throws IOException, ApiException{
        ApiClient client = Config.defaultClient();
        Configuration.setDefaultApiClient(client);

        CoreV1Api api = new CoreV1Api();

        Watch<V1Namespace> watch = Watch.createWatch(
                client,
                api.listNamespaceCall(null, null, null, null, null, 5, null, null, Boolean.TRUE, null, null),
                new TypeToken<Watch.Response<V1Namespace>>(){}.getType());

        for (Watch.Response<V1Namespace> item : watch) {
            System.out.printf("%s : %s%n", item.type, item.object.getMetadata().getName());
        }
    }
}

Altri esempi si trovano nella cartella examples. Per eseguire gli esempi, esegui questo comando:

root@kitploit:~
mvn exec:java -Dexec.mainClass="io.kubernetes.client.examples.Example"

Documentazione

La documentazione di tutte le API e dei Modelli è disponibile nella documentazione del client generato

Compatibilità

Legenda:

  • ✓ Stesse caratteristiche / stessi oggetti API sia nel client Java che nella versione di Kubernetes.
  • + Il client Java ha caratteristiche o oggetti API che potrebbero non essere presenti nel cluster Kubernetes, ma tutto ciò che hanno in comune funzionerà.
  • - Il cluster Kubernetes ha caratteristiche che la libreria del client Java non può utilizzare (oggetti API aggiuntivi, ecc.).

Consulta il CHANGELOG per una descrizione dettagliata delle modifiche tra le versioni del client Java.

Come contribuire

Consulta CONTRIBUTING.md per le istruzioni su come contribuire.

Codice di condotta

La partecipazione alla community di Kubernetes è regolata dal Codice di condotta CNCF.

Sviluppo

Aggiornare il codice generato.

Il codice è generato dal progetto openapi-generator.

Abbiamo creato strumenti general-purpose cross-language per la generazione di codice, ospitati nel repository kubernetes-client/gen.

Per iniziare, in una directory radice che non sia la tua directory del client java, ad esempio la struttura delle tue directory potrebbe essere:

root@kitploit:~
${HOME}/
        src/
             gen/
             java/
...

Quindi, per clonare il repository gen, esegui:

root@kitploit:~
cd ${HOME}/src
git clone https://github.com/kubernetes-client/gen
export GEN_ROOT=${PWD}

Quindi, per aggiornare il client:

root@kitploit:~
cd ${HOME}/src/java
${GEN_ROOT}/gen/openapi/java.sh kubernetes ./settings

Questo dovrebbe avviare un processo di build piuttosto lungo che coinvolge docker e alla fine produrrà un nuovo set di codice generato nella directory kubernetes.

Scarica lo strumento
kubectl logs
  • ExecExample: Stabilisci una sessione "exec" con i container in esecuzione, equivalente a kubectl exec.
  • PortForwardExample: Mappa una porta locale su una porta del pod, equivalente a kubectl port-forward.
  • AttachExample: Agganciati a un processo già in esecuzione all'interno di un container esistente, equivalente a kubectl attach.
  • CopyExample: Copia file e directory da e verso i container, equivalente a kubectl cp.
  • WebSocketsExample: Stabilisci una sessione web-socket arbitraria verso determinate risorse.
  • Avanzato: (NOTA: l'esempio seguente richiede il modulo client-java-extended)
    • (5.0.0+) InformerExample: Costruisci un informer che esegue list-watch delle risorse e riflette le notifiche in una cache locale.
    • (5.0.0+) PagerExample: Supporta la paginazione (solo per le richieste di list) per alleggerire i carichi lato server e la congestione di rete.
    • (6.0.0+) ControllerExample: Costruisci un controller che riconcilia lo stato del mondo eseguendo list-watch su una o più risorse.
    • (6.0.0+) LeaderElectionExample: Utilità di leader election per aiutare a implementare controller HA.
    • (9.0.0+) SpringIntegrationControllerExample: Costruisci un controller Kubernetes basato sull'iniezione dei bean del framework Spring.
    • (9.0.0+) GenericKubernetesClientExample: Costruisci un'interfaccia client generica per qualsiasi tipo Kubernetes, incluse le CRD.
  • versione client1.111.121.131.141.151.16
    3.0.0✓-----
    4.0.0+✓----
    5.0.0++✓---
    6.0.1+++✓--
    7.0.0++++✓✓
    8.0.2+++++✓