API Kubernetes Fabric8

Sep 19 2020

Saat ini saya menggunakan API fabric8 untuk membaca konten POD, Layanan, dll.

KubernetesClient client = new DefaultKubernetesClient();
client.configMaps().withName("ConfigMapName");

Apakah ada cara untuk mengambil konten HTTPProxy dari httpproxies grup api projectcontour.io?

Terima kasih sebelumnya!!!

Jawaban

1 RohanKumar Sep 20 2020 at 00:42

HTTPProxytampaknya adalah Sumber Daya Kustom . Klien Kubernetes menyediakan Typed API (di mana Anda perlu menyediakan POJO untuk Sumber Daya Kustom Anda) dan API Tanpa Jenis (manipulasi Sumber Daya Kustom menggunakan HashMaps mentah). Berikut adalah contoh bagaimana Anda dapat melakukan ini menggunakan Typeless API:

try (KubernetesClient client = new DefaultKubernetesClient()) {
    CustomResourceDefinitionContext httpProxyContext = new CustomResourceDefinitionContext.Builder()
            .withGroup("projectcontour.io") // <-  Group of Custom Resource
            .withVersion("v1")              // <-  Version of Custom Resource
            .withPlural("httpproxies")      // <-  Plural form as specified in CRD
            .withScope("Namespaced")        // <-  Whether Custom Resource is Cluster Scoped or Namespaced
            .build();

    // List all HTTPProxies
    Map<String, Object> httpProxyList = client.customResource(httpProxyContext).list("ns1");
    // Get a specific HTTPProxy
    Map<String, Object> myHttpProxy = client.customResource(httpProxyContext).get("ns1", "tls-example");
}

Anda dapat memilih pendekatan apa pun yang menurut Anda sesuai dengan kebutuhan Anda. Jika tertarik, Anda mungkin dapat melihat blog saya tentang pendekatan ini secara detail:

  1. Menangani Sumber Daya Kustom Kubernetes di Java menggunakan Fabric8 Kubernetes Client: Part-1 (Typeless)
  2. Menangani Sumber Daya Kustom Kubernetes di Java menggunakan Fabric8 Kubernetes Client: Part-2 (Diketik)