Kubernetes не может запустить образ из докера, если изображение выдвигается вручную - PullRequest
0 голосов
/ 09 апреля 2019

Я новичок в такого рода вещах, поэтому у меня есть эта проблема. Я хочу сделать и развернуть простой код на kubernetes. Я делаю сценарий на Docker и загружаю его на GitHub, и у меня нет проблем с его развертыванием через Kubernetes. Но затем, если я хочу попробовать что-то еще, например, вручную передать данные в докер-концентратор, я не могу запустить / развернуть код через kubernetes. Все, что я получил, является ошибкой CrashLoopBackOff. Может кто-нибудь помочь мне, как это исправить? Поскольку я пытался использовать kubectl logs (имя моего файла), я получаю это сообщение:

/bin/sh: 1: Syntax error: Unterminated quoted string

Как я помню вначале, если я получу такую ​​ошибку (CrashLoopBackOff), она все равно будет завершена и выведет привет мир. Но я вижу, что сначала выводится сообщение об ошибке, а затем выдается ошибка CrashLoopBackOff.

Вот как выглядел мой Dockerfile:

FROM openjdk:8
COPY helloworld.java
RUN javac helloworld.java
ENTRYPOINT ["java", "helloworld"]

Это простая Java helloworld.java:

.
public class helloworld {
    public static void main (String[] args ) {
        System.out.println("Hello World!");
    }
}

Я ожидал, что он даст тот же результат, когда я использую Github или перенесу его вручную в концентратор Docker.

1 Ответ

0 голосов
/ 09 апреля 2019

Вы можете запустить kubectl describe pod <id-of-the-pod> для [отладки того, что вызывает проблему]. 1

Но если бы мне пришлось угадывать, то это проверка вашего здоровья.Kubernetes по умолчанию проверяет работоспособность работающих модулей, чтобы иметь возможность перезапустить приложение, если оно становится нездоровым (например, из-за утечки памяти).Но у вас есть приложение, которое перестает работать после распечатки Hello world!.В Kubernetes вы бы не использовали Pod для этого, так как этот ресурс предназначен для долго работающих приложений (например, веб-серверов).Если вы хотите развернуть процесс, который заканчивается в определенный момент (когда он печатает hello world в этом случае), вам следует использовать ресурс Job .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...