Как минимизировать количество деплоев в кубернетесе, как привязать поды к конфигмапам?

Хочу начать с того, что я новичок в Kubernetes, и мне трудно сформулировать правильный вопрос.

Реализация k8s, которую я использую, — microk8s.

У меня есть приложение, которое анализирует изображение с камеры. URL-адрес канала камеры можно настроить.

На данный момент у меня 10 камер. Мое текущее решение состоит в том, чтобы иметь 10 разных развертываний и 10 разных конфигурационных карт, выглядящих следующим образом:

      apiVersion: apps/v1
kind: Deployment
metadata:
  name: camera-1-10
spec:
  replicas: 1
  selector:
    matchLabels:
      app: camera-1-10
  strategy: {}
  template:
    metadata:
      labels:
        app: camera-1-10
    spec:
      volumes:
        - name: camera-config
          configMap:
            name: camera1.json
      containers:
      - image: xxxxx.azurecr.io/camera-application:0.0.14
        name: myrepo
        ports:
          - containerPort: 3000
        volumeMounts:
          - name: camera-config
            mountPath: "/config/camera.json"
            subPath: "data"
      imagePullSecrets:
        - name: acrsecret

Что мне не нравится в этом решении, так это то, что у меня есть 10 файлов развертывания, и если я хочу обновить номер версии приложения, мне придется изменить 10 разных файлов. Также такое ощущение, что работы по добавлению новой камеры больше, чем хотелось бы.

Есть ли более простой способ решить эту проблему? Могу ли я иметь 1 развертывание, в котором описывается, какой контейнер использовать. Тогда 10 модулей просто ссылаются на разные карты конфигурации? Есть ли способ добавить новую камеру, просто используя конфиги? Чтобы определить количество различных модулей камер, настроив что-то в k8s?

0 ответов

Другие вопросы по тегам