Kubernetes Fabric8 API

Sep 19 2020

В настоящее время я использую API-интерфейс fabric8 для чтения содержимого POD, служб и т. Д.

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

Есть ли способ получить содержимое HTTPProxy из httpproxies группы api projectcontour.io?

Заранее спасибо!!!

Ответы

1 RohanKumar Sep 20 2020 at 00:42

HTTPProxyпохоже, это настраиваемый ресурс . Клиент Kubernetes предоставляет типизированный API (где вам нужно предоставить POJO для вашего пользовательского ресурса) и API без типов (манипулирование пользовательскими ресурсами с использованием необработанных HashMaps). Вот пример того, как это можно сделать с помощью 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");
}

Вы можете выбрать любой подход, который, по вашему мнению, соответствует вашим потребностям. Если интересно, вы, вероятно, можете подробно ознакомиться с моими блогами об этих подходах:

  1. Обработка настраиваемых ресурсов Kubernetes в Java с использованием клиента Kubernetes Fabric8: Часть 1 (без типов)
  2. Обработка настраиваемых ресурсов Kubernetes в Java с использованием клиента Kubernetes Fabric8: Часть 2 (типизированная)