Скопируйте файлы в модуль kubernetes с помощью deploy.yaml - PullRequest
0 голосов
/ 11 апреля 2020

У меня есть контейнерный микросервис, созданный с Java. Это приложение использует каталог по умолчанию / config-volume при поиске файлов свойств. Ранее я вручную развертывал с помощью Dockerfiles, и теперь я хочу автоматизировать этот процесс с помощью Kubernetes. Образ контейнера немедленно запускает микросервис, поэтому мне нужно немедленно добавить свойства в папку config-volume. Я выполнил это в Docker с помощью этого простого файла Dockerfile

FROM ########.amazon.ecr.url.us-north-1.amazonaws.com/company/image-name:1.0.0

RUN mkdir /config-volume
COPY path/to/my.properties /config-volume

Я пытаюсь скопировать этот тип поведения в kubernetes deploy.yaml, но я не нашел способа сделать это.

Я попытался выполнить команду kubectl cp сразу после применения развертывания, и иногда это работает, но это может привести к состоянию гонки, которое приводит к сбою микросервиса при запуске.

(я отредактировал ненужное parts)

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-service
spec:
  replicas: 1
  template:
    spec:
      containers:
      - env:
        image: ########.amazon.ecr.url.us-north-1.amazonaws.com/company/image-name:1.0.0
        name: my-service
        ports:
        - containerPort: 8080
        volumeMounts:
        - mountPath: /config-volume
          name: config-volume
      volumes:
        - name: config-volume
          emptyDir: {}
status: {}

Есть ли способ скопировать файлы в том в файле deploy.yaml?

1 Ответ

2 голосов
/ 11 апреля 2020

Вы пытаетесь эмулировать ConfigMap с использованием томов. Вместо этого поместите свою конфигурацию в ConfigMap и подключите ее к своим развертываниям. Документация есть:

https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/

Как только у вас будет конфигурация ConfigMap, смонтируйте ее следующим образом:

...
  containers:
    - name: mycontainer
      volumeMounts:
      - name: config-volume
        mountPath: /config-volume
  volumes:
    - name: config-volume
      configMap:
        name: nameOfConfigMap
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...