Проблема с использованием библиотеки io.kubernetes, работающей в образе докера внутри кластера.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Проблема с использованием библиотеки io.kubernetes, работающей в образе докера внутри кластера.

Сообщение Anonymous »

Я использую локальный кластер Kind для тестирования приложения, которое должно работать внутри модуля. Цель состоит в том, чтобы проверить, может ли приложение, работающее внутри модуля, аутентифицироваться на сервере API с учетной записью службы, которая Я уже создал. Я создал приложение с использованием Java, оставив библиотеку kubernetes.io следующим образом:

Код: Выделить всё

package com.example;
import io.kubernetes.client.openapi.ApiClient;
import io.kubernetes.client.openapi.Configuration;
import io.kubernetes.client.util.Config;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.logging.Level;
import java.util.logging.Logger;

public class KubernetesController {
private static final Logger LOGGER = Logger.getLogger(KubernetesController.class.getName());
private ApiClient client;

public KubernetesController() {

try {
String token = new String(Files.readAllBytes(Paths.get("/var/run/secrets/kubernetes.io/serviceaccount/token")));
ApiClient client = Config.fromToken("https://kubernetes.default.svc", token, false);
Configuration.setDefaultApiClient(client);
} catch (IOException e) {
throw new RuntimeException("Failed to initialize Kubernetes client", e);
}
}

public void start() throws Exception {
try {
LOGGER.info("Connected to cluster: "  + client.getBasePath());
} catch (Exception e) {
LOGGER.log(Level.SEVERE, "Error", e);
throw e;
}
}
}

это файл pom.xml:

Код: Выделить всё

         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0

com.example
my-maven-project
0.0.1-SNAPSHOT
jar

my-maven-project
http://maven.apache.org


UTF-8




junit
junit
3.8.1
test



io.kubernetes
client-java
14.0.0






org.apache.maven.plugins
maven-compiler-plugin
3.8.1

1.8
1.8



org.apache.maven.plugins
maven-jar-plugin
3.2.0



true
lib/
com.example.App








А это Dockerfile, который я создал и отправил в свой репозиторий:

Код: Выделить всё

FROM openjdk:11-jre-slim

COPY target/my-maven-project-0.0.1-SNAPSHOT.jar/ app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]

Я создал сервисную учетную запись с некоторыми ролями, которые будут использоваться внутри кластера, а затем создал развертывание для развертывания созданного мной образа Docker:

Код: Выделить всё

apiVersion: apps/v1
kind: Deployment
metadata:
name: my-maven-project
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: my-maven-project
template:
metadata:
labels:
app: my-maven-project
spec:
serviceAccountName: costum-controller
containers:
- name: my-maven-project
image: sasa001/salvo:my-maven-project
imagePullPolicy: Always
ports:
- containerPort: 8080

Когда я применяю развертывание к кластеру, модуль переходит в состояние «CrashLoopBackOff» и отображает журналы, вот проблемы:

Код: Выделить всё

Exception in thread "main" java.lang.NoClassDefFoundError: io/kubernetes/client/util/Config
at com.example.KubernetesController.(KubernetesController.java:20)
at com.example.App.main(App.java:7)
Caused by: java.lang.ClassNotFoundException: io.kubernetes.client.util.Config
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
...  2 more
Я не понимаю, почему он не может найти конфигурацию класса этой библиотеки, потому что VisualStudio не вызывает у меня никаких проблем с этим классом, а также я могу построить проект с maven.

Подробнее здесь: https://stackoverflow.com/questions/785 ... de-a-clust
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»