Как развернуть BOSH Director на BOSH Lite

В настоящее время я пытаюсь установить BOSH Director на BOSH Lite — мне ясно, что BOSH Lite уже поставляется с Director, но я хотел бы протестировать выпуск, содержащий Director «помимо этого». Вот моя установка:

введите здесь описание изображения

Все работает нормально, пока я не добавлю задание warden_cpi. Я хотел бы настроить CPI Warden для подключения к Warden, работающему на виртуальной машине, на которой размещена BOSH Lite, и по-прежнему доступной для Director. Итак, что я пробовал, так это:

releases:
- name: bosh-warden-cpi
  url: https://bosh.io/d/github.com/cppforlife/bosh-warden-cpi-release?v=29
  sha1: 9cc293351744f3892d4a79479cccd3c3b2cf33c7
  version: latest

instance_groups:
- name: bosh-components
  jobs:
  - name: warden_cpi
    release: bosh-warden-cpi
    properties:
      warden_cpi:
        host_ip: 10.254.50.4  # host IP of BOSH Lite Vagrant Box
        warden:
          connect_network: tcp
          connect_address: 10.254.50.4:7777 # again host IP and Port of garden-linux on BOSH Lite Vagrant Box
        agent:
          mbus: nats://user:[email protected]:4222 
          blobstore:
            provider: dav
            options:
              endpoint: http://127.0.0.1:25250
              user: user
              password: password

где 10.254.50.4 — это IP-адрес Vagrant Box, а 7777 — порт garden-linux.

Во время развертывания я получаю это сообщение от bosh vms

+----------------------------------------------------------+--------------------+-----+---------+--------------+
| VM                                                       | State              | AZ  | VM Type | IPs          |
+----------------------------------------------------------+--------------------+-----+---------+--------------+
| bosh-components/0 (37a1938e-e1df-4650-bec6-460e4bc3916e) | unresponsive agent | n/a | small   |              |
| bosh-director/0 (2bb47ce1-0bba-49aa-b9a3-86e881e91ee9)   | running            | n/a | small   | 10.244.102.2 |
| jumpbox/0 (51c895ae-3563-4561-ba3f-d0174e90c3f4)         | running            | n/a | small   | 10.244.102.4 |
+----------------------------------------------------------+--------------------+-----+---------+--------------+

В качестве сообщения об ошибке от bosh deploy я получаю следующее:

Ошибка 450002: истекло время ожидания отправки `get_state' на адрес e1ed3839-ade4-4e12-8f33-6ee6000750d0 через 45 секунд.

После возникновения ошибки я вижу виртуальную машину с bosh vms:

+----------------------------------------------------------+---------+-----+---------+--------------+
| VM                                                       | State   | AZ  | VM Type | IPs          |
+----------------------------------------------------------+---------+-----+---------+--------------+
| bosh-components/0 (37a1938e-e1df-4650-bec6-460e4bc3916e) | running | n/a | small   | 10.244.102.3 |
| bosh-director/0 (2bb47ce1-0bba-49aa-b9a3-86e881e91ee9)   | failing | n/a | small   | 10.244.102.2 |
| jumpbox/0 (51c895ae-3563-4561-ba3f-d0174e90c3f4)         | running | n/a | small   | 10.244.102.4 |
+----------------------------------------------------------+---------+-----+---------+--------------+

Но когда я подключаюсь по ssh к виртуальной машине bosh-components, в /var/vcap/jobs нет заданий.

Когда я удаляю блок warden_cpi из списка заданий, все работает, как и ожидалось. Полный список вакансий для моей ВМ компонентов BOSH:

  • нац
  • постгрес
  • реестр
  • хранилище больших двоичных объектов

Сам директор работает на другой машине. Без Warden CPI две машины могут обмениваться данными, как и ожидалось.

Может ли кто-нибудь указать мне, как мне настроить CPI Warden, чтобы он подключался к Vagrant Box, как и ожидалось?


person Michael Lihs    schedule 23.12.2016    source источник
comment
В BOSH-Lite директор ограничен одним пользователем, можно попробовать установив директора в другого пользователя. дайте мне знать результат   -  person BruceWayne    schedule 03.01.2017


Ответы (1)


Вопрос очень старый, это CLI BOSH v1, тогда как сейчас BOSH v2 является установленным стандартом, Garden Linux давно устарел в пользу Garden runC, но все же, много экспериментируя с BOSH-Lite, я бы хотел бы ответить на этот.

Во-первых, семантическое замечание: вы не должны говорить «помимо этого», а вместо этого должны говорить «как указано», потому что BOSH-директор просто инструктирует некоторые базовые (API -основанная) инфраструктура, чтобы что-то делать, что в конечном итоге заставляет ее выполнять некоторые рабочие нагрузки.

Во-вторых, здесь вы можете столкнуться с двумя препятствиями:

  1. Основная проблема заключается в том, что CPI Warden взаимодействует с как серверной частью Garden, и с локальным ядром Linux для настройки различных вещей вокруг этих контейнеров Garden. Как прямое следствие, вы не можете запустить CPI Warden внутри контейнера BOSH-Lite.

  2. Используемая файловая система (здесь — давно ушедшая Garden Linux, но в настоящее время проблема будет аналогична Garden runC) может не работать внутри контейнера Garden, так как управляется ранее существовавшим Warden CPI.

В общем, главное, о чем следует помнить, это идея о том, что CPI Warden общается не только с бэкэндом Garden через какой-то его REST API. Более того, Warden CPI должен быть совмещен с ядром Linux, на котором работает Garden, чтобы выполнять системные вызовы и запускать локальные команды для монтирования постоянного хранилища и других вещей.

person Benjamin Gandon    schedule 07.10.2019