Контейнеры init запускаются на том же узле, что и их контейнер приложений в GKE - PullRequest
0 голосов
/ 05 марта 2019

Я просто пытаюсь понять, для чего я могу использовать контейнеры init в kubernetes.

У меня есть контейнер приложения, который работает на узле с локальным ssd.Я планирую сделать это через статического провайдера локальных томов, и у меня есть постоянные требования к тому, что у модуля есть постоянное отношение к узлу 1: 1, и я хотел бы иметь возможностьиспользовать автоматическое масштабирование узла / модуля.Моему контейнеру приложения нужны некоторые данные, извлекаемые из внешнего хранилища, чтобы это работало, и именно это я и планирую сделать моим контейнером инициализации.

Мой вопрос таков;гарантируется ли, что мои init-контейнер и app-контейнер будут выполняться на одном узле?Если это так, я предполагаю, что они могут монтировать один и тот же диск без статической инициализации, стирая диск между ними, монтируя его?

1 Ответ

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

Да, они работают на одном узле, контейнеры init являются частью Pod :

Контейнеры в модуле Pod совместно используют IP-адрес и пространство порта, всегда находятся в одном месте и совместно планируются и выполняются в общем контексте на одном и том же узле.

и

Модуль может иметь несколько Контейнеров, в которых выполняются приложения, но он также может иметь один или несколько Инициативных Контейнеров, которые запускаются до запуска Контейнеров приложений.

Вы можете разделить том между init контейнером и вашим модулем:

apiVersion: apps/v1beta2
kind: Deployment
metadata:
  name: deploy
spec:
  replicas: 1
  template:
    spec:
      volumes:
      - name: shared-data
        emptyDir: {}
      initContainers:
      - name: init
        image: <xxx>
        volumeMounts:
        - name: shared-data
          mountPath: /env
      containers:
      - name: <my-container>
        image: <my-image>
        volumeMounts:
        - name: shared-data
          mountPath: /env

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

...