Неоднозначное предупреждение: изображение WARN [0064] [gcr.io/wired-benefit-XXXXX/demoapp] не используется при развертывании.

Ожидаемое поведение

Заявленное предупреждение НЕ должно отображаться.

Фактическое поведение

Каждый раз, когда я вношу изменения и запускаю повторное развертывание, я получаю сообщение об ошибке:

WARN [0064] Образ [gcr.io/wired-benefit-XXXXX/demoapp] не используется при развертывании

Тем не менее, изображение изменено обновленным изменением, поэтому я не уверен, на что указывает ошибка,

Информация

  • Версия Skaffold: версия ... v1.15.0
  • Операционная система: ... MacOS Catilina 10.15.16
  • Содержание skaffold.yaml:
apiVersion: skaffold/v2beta8
kind: Config
metadata:
  name: demoapp
build:
  artifacts:
  - image: gcr.io/wired-benefit-293406/demoapp
deploy:
  kubectl:
    manifests:
    - k8*.yml

Содержание манифеста K8s:

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: demoapp
  name: demoapp
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: demoapp
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: demoapp
    spec:
      containers:
      - image: gcr.io/wired-benefit-293406/demoapp
        imagePullPolicy: IfNotPresent
        name: demoapp
      restartPolicy: Always

apiVersion: v1
kind: Service
metadata:
  labels:
    app: demoapp
  name: demoapp-svc
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 3000
  selector:
    app: demoapp
  type: LoadBalancer

apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: demoapp
spec:
  maxReplicas: 5
  minReplicas: 1
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: demoapp
  targetCPUUtilizationPercentage: 80

Шаги по воспроизведению поведения

  1. очень простое стартовое демонстрационное приложение
  2. skaffold dev
  3. Любое изменение ... сборка докеров успешна с помощью скаффолда и даже путем нажатия в реестр

Но изменения не отражаются. Возможно, проблема связана с тегом. Когда я вручную устанавливаю имя образа как последнее для развертывания, смена приложения работает.


person Dhrubo    schedule 25.10.2020    source источник
comment
Является ли ваш K8S manifests одним файлом, внутри которого находятся Deployment, Service и HPA? Я запустил точно так же, как вы его вставили (обнаружил такое же предупреждение), и ему не хватало --- между ресурсами. Скажите, была ли проблема в этом.   -  person Dawid Kruk    schedule 26.10.2020


Ответы (1)


Как я сказал в комментарии:

Является ли ваш K8S manifests одним файлом, внутри которого находятся Deployment, Service и HPA? Я запустил точно так же, как вы его вставили (обнаружил такое же предупреждение), и ему не хватало --- между ресурсами.

Если говорить конкретно о содержании, включенном в Content of K8s manifests, в этом файле отсутствуют три дефиса (---) между ресурсами.

Это можно исправить:

  • spliting the resources in multiple files (by following skaffold.yaml and it's template k8*.yml):
    • k8s-deployment.yaml
    • k8s-service.yaml
    • k8s-hpa.yaml
  • добавление --- между каждым ресурсом в Content of K8s manifests (пример):
DEPLOYMENT
---
SERVICE
--- 
HPA

Вы можете узнать больше о --- в файлах YAML, следуя этому ответу StackOverflow:


Что касается репродукции. Я использовал официальное руководство по началу работы:

Я скопировал Content of K8s manifests в k8s-pod.yaml и изменил строку (в этом файле нет --- между ресурсами):

      - image: gcr.io/PROJECT-NAME/demoapp

Выполнение команды ниже с помощью:

  • $ skaffold dev
Listing files to watch...
 - gcr.io/PROJECT-NAME/demoapp
Generating tags...
 - gcr.io/PROJECT-NAME/demoapp -> gcr.io/PROJECT-NAME/demoapp:<--REDACTED-->
Checking cache...
 - gcr.io/PROJECT-NAME/demoapp: Not found. Building
Building [gcr.io/PROJECT-NAME/demoapp]...
Sending build context to Docker daemon  3.072kB
<--REDACTED-->
<--REDACTED-->: Pushed 
<--REDACTED-->: Layer already exists 
<--REDACTED-->: digest: <--REDACTED--> size: 739
Tags used in deployment:
 - gcr.io/PROJECT-NAME/demoapp -> gcr.io/PROJECT-NAME/demoapp:<--REDACTED-->
Starting deploy...
WARN[0023] image [gcr.io/PROJECT-NAME/demoapp] is not used by the deployment 
 - horizontalpodautoscaler.autoscaling/demoapp created
Waiting for deployments to stabilize...
Deployments stabilized in 198.216977ms
Press Ctrl+C to exit
Watching for changes...

Сфокусироваться на:

WARN[0023] image [gcr.io/PROJECT-NAME/demoapp] is not used by the deployment 
 - horizontalpodautoscaler.autoscaling/demoapp created

Как видите, был создан только объект HPA. Deployment и Service не были созданы. Он также показывает такое же предупреждение, как и ваше.

Запуск $ kubectl apply -f k8s-pod.yaml даст такие же результаты!

Редактирование файла k8s-pod.yaml для включения --- и повторный запуск $ skaffold dev должны привести к выводу, аналогичному приведенному ниже:

Listing files to watch...
 - gcr.io/PROJECT-NAME/demoapp
Generating tags...
 - gcr.io/PROJECT-NAME/demoapp -> gcr.io/PROJECT-NAME/<--REDACTED-->
Checking cache...
 - gcr.io/PROJECT-NAME/demoapp: Not found. Building
<--REDACTED-->
<--REDACTED-->: Pushed 
<--REDACTED-->: Layer already exists 
<--REDACTED-->: digest: <--REDACTED--> size: 739
Tags used in deployment:
 - gcr.io/PROJECT-NAME/demoapp -> gcr.io/PROJECT-NAME/demoapp:<--REDACTED-->
Starting deploy...
 - deployment.apps/demoapp created
 - service/demoapp-svc created
 - horizontalpodautoscaler.autoscaling/demoapp created
Waiting for deployments to stabilize...
 - deployment/demoapp is ready.
Deployments stabilized in 5.450197785s
Press Ctrl+C to exit
Watching for changes...
[demoapp] Hello World with ---!
[demoapp] Hello World with ---!
[demoapp] Hello World with ---!

Как вы можете видеть выше, все ресурсы были созданы, не было предупреждений о развертывании без использования образа, а также приложение ответило.


Дополнительные ресурсы:

person Dawid Kruk    schedule 27.10.2020