OpenShift запускает один и тот же контейнер дважды, когда он должен запускать два разных контейнера - PullRequest
0 голосов
/ 22 ноября 2018

Я хочу, чтобы OpenShift 3.10 создал модуль (console), состоящий из двух контейнеров (api и console).Соответствующее описание в шаблоне приложения (под dc.spec.template.spec.containers) для DeploymentConfig console выглядит следующим образом:

containers:
- image: console:api
  imagePullPolicy: Always
  name: api
  terminationMessagePolicy: File
- image: console:console
  imagePullPolicy: Always
  name: console
  ports:
  - containerPort: 80
    protocol: TCP
  terminationMessagePolicy: File

oc describe is/console выглядит хорошо для меня и сообщает следующее (BuildConfig sдля двух контейнеров, выводимых в ImageStreamTag s console:api и console:console соответственно):

api
  no spec tag
  * docker-registry.default.svc:5000/registry/console@sha256:96...66
console
  no spec tag
  * docker-registry.default.svc:5000/registry/console@sha256:8a...02

Но oc describe pods --selector deploymentconfig=console показывает, что одно и то же изображение было извлечено дважды, и, следовательно, один и тот же контейнер работает дважды внутристручок:

Successfully pulled image "docker-registry.default.svc:5000/registry/console@sha256:8a...02"
Successfully pulled image "docker-registry.default.svc:5000/registry/console@sha256:8a...02"

Как я могу убедиться, что стручок действительно состоит из двух отдельных контейнеров?И почему тег потока изображения console:api, по-видимому, порой относится не к изображению 96...66, а к 8a...02, в отличие от того, что предлагает os describe is/console?

ОБНОВЛЕНИЕ Несоответствие также очевидно в oc describe dc/console, что указывает на то, что оба тега потока изображения console:api и console:console, очевидно, были разрешены в одном и том же изображении контейнера 8a...02:

Containers:
 api:
  Image: docker-registry.default.svc:5000/registry/console@sha256:8a...02
 console:
  Image: docker-registry.default.svc:5000/registry/console@sha256:8a...02

1 Ответ

0 голосов
/ 23 ноября 2018

Следующее изменение в dc.spec.triggers, похоже, разрешило ситуацию:

- type: ConfigChange
- imageChangeParams:
    automatic: true
    containerNames:
    - api
    from:
      kind: ImageStreamTag
      name: console:api
      namespace: registry
  type: ImageChange
- imageChangeParams:
    automatic: true
    containerNames:
    - console
    from:
      kind: ImageStreamTag
      name: console:console
      namespace: registry
  type: ImageChange

Ранее для console:console был только один imageChangeParams.Стручок теперь состоит из двух отдельных контейнеров.

...