Skaffold dev работает только с миникубом. Другие локальные кластеры выходят из строя - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть приложение Spring Boot с настроенным jib-maven

POM

<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>2.1.0</version>
<configuration>
    <from>
        <image>openjdk:11-jre-slim</image>
    </from>
    <to>
        <image>registry.demo/${project.artifactId}</image>
        <tags>
            <tag>${project.version}</tag>
        </tags>
        <tags>
            <tag>latest</tag>
        </tags>
    </to>
    <container>
        <jvmFlags>
            <jvmFlag>-XX:+UseContainerSupport</jvmFlag>
            <jvmFlag>-XX:MinRAMPercentage=60.0</jvmFlag>
            <jvmFlag>-XX:MaxRAMPercentage=90.0</jvmFlag>
            <jvmFlag> -XshowSettings:vm</jvmFlag>
        </jvmFlags>
        <mainClass>com.demo.DemoApplication</mainClass>
    </container>
</configuration>

SKAFFOLD.YAML

        apiVersion: skaffold/v2beta1
        kind: Config
        metadata:
        name: springtokube
        build:
        artifacts:
        - image: registry.demo/springtokube
            jib:
            project: com.demo:springtokube
        local:
            push: true
            concurrency: 1
            useBuildkit: false
            useDockerCLI: true
        deploy:
        kubectl:
            manifests:
            - deployment.yaml

ТАКЖЕ УСТАНОВИТЬ НЕПРАВИЛЬНУЮ РЕГИСТРАЦИЮ

skaffold config set --global insecure-registries  registry.demo

Но при использовании minikube я могу запустить успешно

skaffold dev

При использовании другого кластера (ON-PREM) я получаю

FATA[0016] exiting dev mode because first build failed: build failed: building [registry.demo/springtokube]: build artifact: getting image: GET http://registry.demo/v2/: : Not Found

В чем может быть проблема?

Я перезапустил сегодня с помощью kubectl context

skaffold debug --no-prune=false --cache-artifacts=false

И это не удалось

        Listing files to watch...
        Generating tags...
        - registry.demo/springtokube -> registry.demo/springtokube:cf60c31
        Found [minikube] context, using local docker daemon.
        Building [registry.demo/springtokube]...
        .............
        ...............

        [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.294 s - in com.demo.springtokube.SpringtokubeApplicationTests
        2020-04-15 08:45:48.277  INFO 30662 --- [extShutdownHook] o.s.s.concurrent.ThreadPoolTaskExecutor  : Shutting down ExecutorService 'applicationTaskExecutor'
        [INFO] 
        [INFO] Results:
        [INFO] 
        [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
        [INFO] 
        [INFO] 
        [INFO] --- maven-jar-plugin:3.1.2:jar (default-jar) @ springtokube ---
        [INFO] Building jar: ....../springtokube/target/springtokube.jar
        [INFO] 
        [INFO] --- spring-boot-maven-plugin:2.2.6.RELEASE:repackage (repackage) @ springtokube ---
        [INFO] Replacing main artifact with repackaged archive
        [INFO] 
        [INFO] --- jib-maven-plugin:2.1.0:build (default-cli) @ springtokube ---
        [INFO] 
        [INFO] Containerizing application to registry.demo/springtokube:cf60c31, registry.demo/springtokube...
        [WARNING] Base image 'openjdk:11-jre-slim' does not use a specific image digest - build may not be reproducible
        [INFO] Getting manifest for base image openjdk:11-jre-slim...
        [INFO] Building dependencies layer...
        [INFO] Building resources layer...
        [INFO] Building classes layer...
        [INFO] Using credentials from Docker config (~/.docker/config.json) for registry.demo/springtokube:cf60c31
        [WARNING] Cannot verify server at https://registry.demo/v2/. Attempting again with no TLS verification.
        [WARNING] Cannot verify server at https://registry.demo/v2/springtokube/blobs/sha256:1fb3fb86aa52691fa3705554da5ba07dcb556f62a93ba7efab0e397ca3db092c. Attempting again with no TLS verification.
        [WARNING] Cannot verify server at https://registry.demo/v2/springtokube/blobs/sha256:88a7d9887f9fdeb5a4736d07c64818453e00e71fe916b13f413eb6e545445a68. Attempting again with no TLS verification.
        [WARNING] Cannot verify server at https://registry.demo/v2/springtokube/blobs/sha256:a6c851c4b90b9eb7af89d240dd4f438dba9feba5c78600fed7eadddf8cb7b647. Attempting again with no TLS verification.
        [INFO] The base image requires auth. Trying again for openjdk:11-jre-slim...
        [INFO] Using credentials from Docker config (~/.docker/config.json) for openjdk:11-jre-slim
        [INFO] Using base image with digest: sha256:01669f539159a1b5dd69c4782be9cc7da0ac1f4ddc5e2c2d871ef1481efd693e
        [INFO] 
        [INFO] Container entrypoint set to [java, -XX:+UseContainerSupport, -XX:MinRAMPercentage=60.0, -XX:MaxRAMPercentage=90.0, -XshowSettings:vm, -cp, /app/resources:/app/classes:/app/libs/*, com.demo.springtokube.SpringtokubeApplication]
        [INFO] 
        [INFO] Built and pushed image as registry.demo/springtokube:cf60c31, registry.demo/springtokube
        [INFO] 
        [INFO] ------------------------------------------------------------------------
        [INFO] BUILD SUCCESS
        [INFO] ------------------------------------------------------------------------
        [INFO] Total time:  20.058 s
        [INFO] Finished at: 2020-04-15T08:45:57+03:00
        [INFO] ------------------------------------------------------------------------
        Pruning images...
        FATA[0024] exiting dev mode because first build failed: build failed: building [registry.demo/springtokube]: build artifact: getting image: GET http://registry.demo/v2/: : Not Found 

Я думал, что мини-куб работает. Но отключение кеша не дает построить

, если я запускаю

 skaffold debug OR  skaffold dev

Работает нормально

Но если я запускаю с отключенным кешем

skaffold debug --no-prune=false --cache-artifacts=false

FAILS показывает журналы выше

1 Ответ

0 голосов
/ 25 апреля 2020

После нескольких дней борьбы я нашел решение.

После Брайана де Алвиса предложений я смог заставить Скаффолд работать с Самоподписанным сертификатом .

Skaffold build или dev не использует вставленный сертификат.

/etc/docker/certs.d/myregistrydomain.com/ca.crt

Путь используется docker клиентом только.

Решением было поместить сертификат реестра в

 /usr/local/share/ca-certificates/myregistrydomain.com.crt

Затем

update-ca-certificates

Проверить Ссылка для получения дополнительной информации

Если вы используете самозаверяющий сертификат нет необходимости в небезопасном реестре в файле yaml скаффолда

apiVersion: skaffold/v2beta1
kind: Config
metadata:
  name: springtokube
build:
#  insecureRegistries:
#    - myregistrydomain.com

или работает скаффолд с

skaffold dev --insecure-registry=myregistrydomain.com

Надеюсь, что это поможет кому-то еще изо всех сил сделать скаффолд работает с самозаверяющим сертификатом

...