Разверните виртуальную машину BOSH быстрее с помощью BoshLite
23 мая 2022 г.Я снова пришел поговорить с тобой
Фотография Шубхам Дхаге на Unsplash
Я написал целую кучу блогов о запуске Cloud Foundry в Kubernetes. Все они работают с разной степенью успеха и имеют поддержку небольшого числа сообществ (читай: компании с большими бюджетами + инженеры + идеалы открытого исходного кода).
Иногда хочется просто BOSH. Эта милая, милая, знакомая чушь. Введите bosh-lite
.
Что такое `легкомысленный
?
bosh-lite
работает, запуская виртуальную машину и размещая на ней BOSH. Оттуда вы можете использовать его для вращения cf-deployment
, zookeeper
или чего-либо еще, что имеет манифест BOSH.
Директор BOSH настроен с конфигурациями времени выполнения, облачными конфигурациями, стволовыми ячейками, выпусками и всеми другими функциями, подобными BOSH, которые вы ожидаете.
Установка
Этот инструмент существует всегда, а очень хорошее руководство по установке и настройке bosh-lite
находится по адресу https://bosh.io/docs/bosh-lite/. В остальной части этого блога предполагается, что вы следовали этим инструкциям вплоть до шага № 7.
У меня возникла проблема с более новой версией VirtualBox (6.1.28). У меня сработала версия 6.1.26, доступная [здесь] (https://www.virtualbox.org/wiki/Download_Old_Builds_6_1).
Он заканчивается примером развертывания zookeeper
, который я считаю крутым, но я предполагаю, что большинство директоров BOSH связаны с развертыванием Cloud Foundry. Читайте советы, которые, возможно, не очевидны из документации!
Развертывание Cloud Foundry
В cf-deployment
-land есть документация по использованию BBL для развертывания bosh-lite
и CF для [GCP или AWS] (https://github.com/cloudfoundry/cf-deployment/tree/main/iaas- поддержка/бош-лайт). Я указываю эти инструкции на случай, если у вас неограниченный бюджет IAAS, однако я покажу вам, как развернуть это на вашем Mac.
В cf-deployment также есть ознакомительный файл [Для операторов, развертывающих CF на локальном bosh-lite] (https://github.com/cloudfoundry/cf-deployment/blob/1b2367f37cea2dffa1ab35d5935c08937096bc72/texts/deployment-guide.md#for -operators-deploying-cf-to-local-bosh-lite). Я буду использовать это как основу для сценария ниже.
Клонировать cf-deployment
Для этих примеров я предположил, что вы клонируете репозиторий CF в свою домашнюю папку:
компакт-диск ~
git-клон https://github.com/cloudfoundry/cf-deployment.git
Настройка переменных среды BOSH
Это разбросано по нескольким местам в документации, я собрал их все вместе:
экспорт CREDHUB_SERVER=https://192.168.56.6:8844
экспорт CREDHUB_CLIENT=credhub-admin
экспортировать CREDHUB_SECRET=$(чушь интерполировать ~/deployments/vbox/creds.yml --path=/credhub_admin_client_secret)
export CREDHUB_CA_CERT="$(чушь интерполировать ~/deployments/vbox/creds.yml --path=/credhub_tls/ca )"$'
'"$(чушь интерполировать ~/deployments/vbox/creds.yml --path =/uaa_ssl/ca)"
экспорт BOSH_CLIENT=admin
export BOSH_CLIENT_SECRET="$(bosh int ~/deployments/vbox/creds.yml --path /admin_password)"
export BOSH_CA_CERT="$(чушь интерполировать ~/deployments/vbox/creds.yml --path /director_ssl/ca)"
экспорт BOSH_ENVIRONMENT=vbox
bosh alias-env vbox -e 192.168.56.6 --ca-cert <(bosh int ~/deployments/vbox/creds.yml --path /director_ssl/ca)
Вы можете добавить это в свой профиль bash/zsh.
Загрузите Stemcell, Cloud Config и Runtime Config
bosh upload-stemcell --sha1 f399044d2ebe3351f0f1b0b3f97ef11464d283b4 "https://bosh.io/d/stemcells/bosh-warden-boshlite-ubuntu-xenial-go_agent?v=621.125"
bosh update-runtime-config ~/workspace/bosh-deployment/runtime-configs/dns.yml --name dns
Bosh update-cloud-config ~/cf-deployment/iaas-support/bosh-lite/cloud-config.yml
Со временем CF может пожаловаться на более новую версию стволовой клетки, обновите команду bosh upload-stemcell
, указав запрошенную версию. Версия и sha1 перечислены [здесь] (https://bosh.io/stemcells/bosh-warden-boshlite-ubuntu-bionic-go_agent), обратите внимание, что bosh-lite использует стволовые клетки warden.
Иди выпей
Эта часть займет около 45 минут, если вы не изменили IP-адрес директора BOSH, следующая команда развернет CF.
cd ~/cf-развертывание
bosh -e 192.168.56.6 -d cf развернуть \
cf-развертывание.yml \
-o операции/bosh-lite.yml \
-v системный_домен=bosh-lite.com
Войти в CF
Это делается в два этапа: нацеливание на API, а затем вход в систему, получение пароля администратора из credhub без вывода его на экран:
cf API https://api.bosh-lite.com --skip-ssl-validation
cf login -u admin -p $(credhub get -n $(credhub find -n admin | grep cf_admin | cut -d: -f2) | значение grep | cut -d: -f2) -o system -s test
Тада!
Создайте пространство и начните продвигать приложения.
(Необязательно) Настройка SSH для BOSH Director
Почему? Мне нравится иметь возможность подключиться по SSH к моему директору BOSH, чтобы поковыряться. Я странный. Это не требуется для развертывания CF, но неплохо иметь:
bosh int ~/deployments/vbox/creds.yml --path /jumpbox_ssh/private_key > ~/deployments/vbox/jumpbox.key
chmod 600 ~/deployments/vbox/jumpbox.key
ssh jumpbox@192.168.56.6 -i ~/deployments/vbox/jumpbox.key
Остерегайтесь драконов
Проблема №1 – Перезагрузка
Перезагрузка вашего Mac приводит к неправильной работе bosh-lite
, если вы не выполните пару простых шагов.
Перед отключением:
- В Oracle VM VirtualBox Manager выберите виртуальную машину, щелкните правой кнопкой мыши и выберите «Закрыть» > «Сохранить состояние».
После перезагрузки:
- В Oracle VM VirtualBox Manager выберите виртуальную машину, щелкните правой кнопкой мыши и выберите «Пуск» > «Безголовый запуск».
Даже выполняя эти шаги, я не всегда могу вернуть BOSH Director в онлайн.
Если вы случайно перезагрузили хост, вы можете воссоздать директор BOSH, используя файл состояния, и использовать bosh cck
, чтобы восстановить сломанное развертывание CF:
компакт-диск ~/развертывания/vbox
bosh create-env ~/workspace/bosh-deployment/bosh.yml \
--состояние ./состояние.json \
-o ~/workspace/bosh-deployment/virtualbox/cpi.yml \
-o ~/workspace/bosh-deployment/virtualbox/outbound-network.yml \
-o ~/рабочая область/bosh-deployment/bosh-lite.yml \
-o ~/workspace/bosh-deployment/bosh-lite-runc.yml \
-o ~/рабочая область/бош-развертывание/uaa.yml \
-o ~/workspace/bosh-deployment/credhub.yml \
-o ~/workspace/bosh-deployment/jumpbox-user.yml \
--vars-store ./creds.yml \
-v имя_директора=бош-лайт \
-v внутренний_ip=192.168.56.6 \
-v внутренний_gw=192.168.56.1 \
-v внутренний_cidr=192.168.50.0/24 \
-v outbound_network_name=NatNetwork --пересоздать
чушь
Если это не сработает, вы можете полностью стереть и воссоздать развертывание BOSH и CF, выполнив следующие действия:
- Войдите в Oracle VM VirtualBox Manager, выберите виртуальную машину, щелкните правой кнопкой мыши и выберите «Удалить» > «Удалить все файлы».
- Удалите файл состояния в
~/deployments/vbox/state.json
.
- Повторно запустите команду bosh create-env, а затем повторно разверните CF.
Проблема 2 – Проблемы с сетью
Если вы получаете:
Развертывание:
Создание экземпляра 'bosh/0':
Ожидание готовности экземпляра:
Сообщение "https://mbus:<отредактировано>@192.168.56.6:6868/agent": набрать tcp 192.168.56.6:6868: соединение: соединение отклонено
Код выхода 1
Вероятно, вы пропустили шаг по добавлению маршрутизации хоста:
sudo маршрут добавить -net 10.244.0.0/16 192.168.56.6
Заключительная мысль
Мы все заслуживаем хороших вещей. bosh-lite
– одна из приятных вещей для тех, кто любит BOSH и хочет использовать его на своем компьютере.
Наслаждаться!
Также опубликовано [здесь] (https://www.starkandwayne.com/blog/hello-bosh-lite-my-old-friend/).
Оригинал