【发布时间】:2021-03-19 14:59:18
【问题描述】:
我在使用 fabric8io kubernetes-client 时遇到问题。
我想要什么:在 Kubernetes 中使用 Strimzi 运算符创建 Kafka 集群。 如果我使用 CLI 和 kubectl 从Strimzi quickstart guide 开始执行所有步骤,那一切都很好。
但是当我从 Java 代码中使用 kubernetes-client:5.2.1 库加载 yaml 资源时,会发生异常:
io.fabric8.kubernetes.client.KubernetesClientException: An error has occurred.
at io.fabric8.kubernetes.client.KubernetesClientException.launderThrowable(KubernetesClientException.java:64)
at io.fabric8.kubernetes.client.KubernetesClientException.launderThrowable(KubernetesClientException.java:53)
at io.fabric8.kubernetes.client.utils.Serialization.unmarshal(Serialization.java:140)
at io.fabric8.kubernetes.client.utils.Serialization.unmarshal(Serialization.java:101)
at io.fabric8.kubernetes.client.dsl.internal.NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableListImpl.<init>(NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableListImpl.java:272)
at io.fabric8.kubernetes.client.dsl.internal.NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableListImpl.<init>(NamespaceVisitFromServerGetWatchDeleteRecreateWaitApplicableListImpl.java:252)
at io.fabric8.kubernetes.client.DefaultKubernetesClient$1.<init>(DefaultKubernetesClient.java:175)
at io.fabric8.kubernetes.client.DefaultKubernetesClient.load(DefaultKubernetesClient.java:175)
at app.test.main(test.java:38)
Caused by: com.fasterxml.jackson.databind.JsonMappingException: No resource type found for:kafka.strimzi.io/v1#Kafka
at [Source: (String)"{"apiVersion":"kafka.strimzi.io/v1","kind":"Kafka","metadata":{"name":"my-cluster"},"spec":{"kafka":{"replicas":1,"listeners":[{"name":"plain","port":9092,"type":"internal","tls":false},{"name":"tls","port":9093,"type":"internal","tls":true,"authentication":{"type":"tls"}},{"name":"external","port":9094,"type":"nodeport","tls":false}],"storage":{"type":"jbod","volumes":[{"id":0,"type":"persistent-claim","size":"1Gi","deleteClaim":false}]},"config":{"offsets.topic.replication.factor":1,"transacti"[truncated 226 chars]; line: 1, column: 726]
加载此文件时出现问题:yaml config。
我像这样加载资源:
KubernetesClient client = new DefaultKubernetesClient();
InputStream is = ...;
client.load(is).inNamespace("my_namespace").createOrReplace();
请帮帮我!
P.S: 对不起我的英语。
【问题讨论】:
-
您好,
Kafka是一个自定义资源。请查看 Fabric8 Kubernetes Client CustomResource API:github.com/fabric8io/kubernetes-client/blob/master/doc/…
标签: java kubernetes fabric8