Ресурс службы Kubernetes нуждается в манифесте ресурсов развертывания, который должен быть применен первым для пересылки трафика

#kubernetes #fiware-orion

Вопрос:

У меня есть следующий манифест yaml для развертывания механизма Pub/Sub контекстного брокера Orion NGSI:

 apiVersion: apps/v1
kind: Deployment
metadata:
    name: orion
    namespace: kostas
    labels:
        app: orion
spec:
    replicas: 1
    selector:
        matchLabels:
            app: orion
    template:
        metadata:
            labels:
                app: orion
        spec:
            containers:
              - name: orion
                image: fiware/orion:latest
                imagePullPolicy: IfNotPresent
                ports:
                 - containerPort: 1026
                args: ["-dbhost", "mongo:27017", "-logLevel", "INFO"]
 

А ниже приведен манифест yaml для соответствующей службы Nodeport

 apiVersion: v1
kind: Service
metadata:
  name: orion
  namespace: kostas
spec:
  selector:
    app: orion
  clusterIP: 10.48.0.8
  type: NodePort
  ports:
  - protocol: TCP
    port: 1026
    targetPort: 1026
    nodePort: 32001
 

Проблема в том, что манифест службы должен быть применен после манифеста развертывания, чтобы попасть в модуль.

С другой стороны, если я сначала применю манифест службы, он не сможет быть сопоставлен с развертыванием при его применении.

Есть какие-нибудь идеи о том, почему это происходит?

Для других микросервисов такой проблемы нет.

Должен ли я включить поле контейнера инициализации в манифест развертывания? Как я должен изменить свой манифест развертывания для такого случая?

Комментарии:

1. Я не понимаю, что вы подразумеваете под «это не может быть сопоставлено с развертыванием, когда оно применяется». Вы получаете сообщение об ошибке ?

2. Нет, мой сервис не отвечает никакой рабочей нагрузке. Как будто это не связано с блоками, созданными в ходе развертывания. Но если я применю сначала развертывание, а во-вторых, сервис, все будет выглядеть нормально. Мне нужно дождаться запуска модуля, прежде чем я применю свой манифест службы.

3. Там написано, что соединение отказало!

4. Это странное поведение, со мной никогда раньше не случалось :/ Вы уверены, что еще одно приложение с селектором «орион» еще не было создано ? Я не знаю тбх

5. Эта служба, по сути, предлагает API REST для операций CRUD с mongodb. Итак, если я сначала применю сервис orion, он соединится с mongo без базового модуля. Так что, может быть, кажется, что тайм-аут существует. Но если я сначала разверну Orion , он будет готов правильно установить соединение с mongo. Поэтому мне нужен способ отложить соединение с монго до того, как капсула ориона будет запущена и запущена. Вы можете подумать, что когда я захожу в контейнер orion и делаю запрос curl с localhost, он снова не отвечает. Итак, проблема в соединении Orion и Mongo db.