Изменение тегов изображения и имени с помощью kustomization.yaml - PullRequest
0 голосов
/ 20 февраля 2020

В соответствии с официальной документацией я могу легко переопределить теги и имена моих docker изображений, используя отличный синтаксис kustomization. Я попытался воспроизвести это.

В моем deployment.yaml у меня есть следующее:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  labels:
    service: my-app
  name: my-app
spec:
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        service: my-app
    spec:
      imagePullSecrets:
      - name: my-docker-secret
      containers:
      - name: my-app
        image: the-my-app
        imagePullPolicy: Always
        ports:
        - containerPort: 1234
      restartPolicy: Always

В моем kustomization.yaml У меня есть следующее :

bases:
- ../base
resources:
- deployment.yaml
namespace: my-namespace

images:
- name: the-my-app
- newName: my.docker.registry.com/my-project/my-app
  newTag: test

Однако, когда я делаю это:

kubectl apply -k my-kustomization-dir

и ждем, пока развертывание ускорится, а затем выполните

kubectl describe pod/my-app-xxxxxxxxx-xxxxx

События выглядят так:

Events:
  Type     Reason                  Age                From                                              Message
  ----     ------                  ----               ----                                              -------
  Successfully assigned my-namespace/my-app-xxxxxxxxxx-xxxxx to default-pool-xxxxxxxxxx-xxxxx
  Normal   Pulling                 2s                 kubelet, default-pool-xxxxxxxxxx-xxxxx  pulling image "the-my-app"
  Warning  Failed                  0s                 kubelet, default-pool-xxxxxxxxxx-xxxxx  Failed to pull image "the-my-app": rpc error: code = Unknown desc = Error response from daemon: pull access denied for the-my-app, repository does not exist or may require 'docker login'
  Warning  Failed                  0s                 kubelet, default-pool-xxxxxxxxxx-xxxxx  Error: ErrImagePull
  Normal   BackOff                 0s                 kubelet, default-pool-xxxxxxxxxx-xxxxx  Back-off pulling image "the-my-app"
  Warning  Failed                  0s                 kubelet, default-pool-xxxxxxxxxx-xxxxx  Error: ImagePullBackOff

Указывает, что это не сработало, как ожидалось (он пытается получить оригинальное имя, указанное в deployment.yaml).

Итак, мой вопрос, что я здесь не так делаю?

Ответы [ 2 ]

1 голос
/ 21 февраля 2020

Вы должны удалить «-» в строке newName под разделом изображений. Так должно быть, все работает.

 images:
 - name: the-my-app
   newName: my.docker.registry.com/my-project/my-app
   newTag: test
0 голосов
/ 21 февраля 2020

Вы можете запустить kustomize build my-kustomization-dir, чтобы проверить, заменено ли изображение в файле yaml. Эта команда позволяет увидеть, что будет применено в вашем кластере.

...