Kubernetes каталог configMap и свойства системы Java - PullRequest
1 голос
/ 18 марта 2019

Я пытаюсь использовать карту конфигурации каталогов в качестве смонтированного тома внутри моего док-контейнера, на котором запущено приложение весенней загрузки.Я передаю некоторые смонтированные пути таким вещам, как spring application.yaml, но не похоже, что монтирование работает должным образом, так как не может найти конфигурацию.Например,

Создайте конфигурационную карту примерно так:

kubectl create configmap example-config-dir \
 --from-file=/example/config/

Kubernetes yaml

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: example
  labels:
   app: example
spec:
  replicas: 1
  selector:
   matchLabels:
     app: example
  template:
    metadata:
      labels:
        app: example
    spec:
     containers:
     - name: example
       image: example:latest
       ports:
         - containerPort: 8443
       volumeMounts:
          - name: config-vol
            mountPath: /config
     volumes:
       - name: config-vol
         configMap:
           name: example-config-dir

и Dockerfile (есть другие шаги, которые копируют файл JAR, в который у меня естьне подробно)

VOLUME /tmp
RUN echo "java -Dspring.config.location=file:///config/ -jar myjarfile.jar" > ./start-spring-boot-app.sh"
CMD ["sh", "start-spring-boot-app.sh"]

1 Ответ

2 голосов
/ 18 марта 2019

Как описано в Создание ConfigMaps из каталогов и Создание ConfigMaps из файлов , когда вы создаете ConfigMap с использованием --from-file, , имя файла становится ключом, хранящимся в данных раздел ConfigMap . Содержимое файла становится значением ключа.

Чтобы сделать так, как вы хотите, лучшим способом было бы создать yml, как это

apiVersion: v1
kind: ConfigMap
metadata:
  name: special-config
  namespace: default
data:
  SPECIAL_LEVEL: very
  SPECIAL_TYPE: charm

и затем примените это так:

kubectl create -f https://k8s.io/examples/configmap/configmap-multikeys.yaml

Когда модуль запускается, команда ls /config выдает следующие данные:

special.level
special.type

Таким образом, вы должны сгенерировать файл с тем же именем, что и ваши исходные файлы, и внутри него содержимое файла.

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