В этом посте мы рассмотрим, как выполнить настройку, используя Couchbase с Kubernetes и CoreOS. Существуют различные стратегии развертывания — от физических серверов до «голого железа» до виртуальных машин в облаке или с помощью полностью управляемого решения от крупных поставщиков облачных услуг. В этой серии мы будем устанавливать полностью готовое решение Kubernetes, запустив все компоненты на вашем локальном компьютере. Есть несколько предпосылок, и мы немного углубимся в каждую, чтобы понять общую картину. Среда, которую я использую для этого блога:
- Виртуальная коробка 5.0.8
- Бродяга 1.7.4
- Mac OSX 10.11.1
- Кубернетес 1.0.6
Сначала нам нужно настроить Kubernetes, и мы будем использовать Vagrant и CoreOS. Vagrant позволяет быстро создавать согласованные среды разработки для разных членов вашей команды. Вы можете прочитать больше о преимуществах использования Vagrant. Перейдите на страницу загрузок и выберите пакет по вашему выбору. На момент написания этой статьи мы ориентируемся на Vagrant 1.7.4 для MAC OSX и Virtual Box 5.0.8.
Откройте пакет vagrant .dmg и следуйте инструкциям по установке. Далее мы будем инициировать Vagrant.
Скачать Кубернетес
В приложении терминала создайте новую папку и перейдите к этой папке. Для примера я создал папку с именем «couchbase-kubernetes», и именно там мы будем проводить большую часть нашего времени. kubectl — это основной инструмент командной строки, который мы будем использовать для взаимодействия с API Kubernetes.
$mkdir couchbase-kubernetes
$cd couchbase-kubernetes/
Из папки «couchbase-kubernetes» мы загрузим двоичные файлы. Сначала установите менеджер пакетов Homebrew , если вы этого еще не сделали, и выполните команду wget:
$ARCH=darwin; wget https://storage.googleapis.com/kubernetes-release/release/v1.0.6/bin/$ARCH/amd64/kubectl
Вы увидите нечто похожее на приведенное ниже, где «kubectl» затем сохраняется. Я выбрал среду ‘darwin’, так как я нахожусь на MacOSX, и вы также можете выбрать ‘linux’ в зависимости от операционной системы вашей рабочей станции.
Проверьте, является ли исполняемый файл исполняемым, выполнив:
$file kubectl
Вы должны увидеть, что файл ‘kubectl’ существует и это исполняемый файл x86_64, как показано ниже.
Давайте переместим kubectl в наш путь, выполнив:
$chmod +x kubectl
$mv kubectl /usr/local/bin/kubectl
Запустите Kubernetes поверх CoreOS
Теперь мы готовы настроить виртуальные машины, которые будут работать с Kubernetes на CoreOS. Сначала мы клонируем репозиторий, содержащий Vagrantfile. «Vagrantfile» будет иметь конфигурации виртуальных машин Kubernetes. Выполните команду:
$git clone https://github.com/coreos/coreos-kubernetes.git
Теперь вы должны иметь репо ‘coreos-kubernetes’, увидев нечто подобное ниже
Старт Кубернетес
Теперь мы готовы запустить нашу машину. Чтобы сделать это, давайте сначала перейдем к папке «single-node», где мы запустим Vagrant.
$cd coreos-kubernetes/single-node/
Из папки ‘single-node’ мы теперь выполним приведенные ниже команды, чтобы иметь полностью работающую виртуальную машину в VirtualBox.
$vagrant init hashicorp/precise64
Ориентация на 64-битную версию приведена ниже в процессе настройки 64-битной версии Ubuntu 12.04 LTS.
Далее, давайте запустим виртуальную машину в VirtualBox, выполнив:
$vagrant up
Ниже мы видим процесс подготовки кластера со всеми зависимостями после того, как Vagrant завершит загрузку и подготовку нашего компьютера.
Конфигурирование kubectl
Из каталога ‘single-node’ мы затем настроим локального клиента Kubernetes с помощью следующих команд:
$kubectl config set-cluster vagrant --server=https://172.17.4.99:443 --certificate-authority=${PWD}/ssl/ca.pem
$kubectl config set-credentials vagrant-admin --certificate-authority=${PWD}/ssl/ca.pem --client-key=${PWD}/ssl/admin-key.pem --client-certificate=${PWD}/ssl/admin.pem
$kubectl config set-context vagrant --cluster=vagrant --user=vagrant-admin
$kubectl config use-context vagrant
Теперь, когда все готово, вы можете увидеть состояние вашего кластера и информацию о его конфигурации, выполнив:
$kubectl get nodes
Congrats! Теперь у вас есть кластер Kubernetes, работающий и настроенный. Это первый шаг перед запуском Couchbase. Далее мы рассмотрим, как запустить Couchbase в кластере Kubernetes.
Настройка Couchbase
Из каталога ‘single-node’ мы начнем вводить фрагменты Couchbase. Оттуда мы можем затем настроить Couchbase для определенной логики сервиса. Начнем с клонирования репо Couchbase-Kubernetes:
$git clone https://github.com/couchbase/kubernetes.git couchbase-kubernetes
$cd couchbase-kubernetes
В нашем следующем блоге о Couchbase и Kubernetes мы рассмотрим концепцию, настройку и способы запуска контроллеров службы и репликации для Couchbase!