Статьи

Запуск Couchbase с Kubernetes: Часть 1

В этом посте мы рассмотрим, как выполнить настройку, используя Couchbase с Kubernetes и CoreOS. Существуют различные стратегии развертывания — от физических серверов до «голого железа» до виртуальных машин в облаке или с помощью полностью управляемого решения от крупных поставщиков облачных услуг. В этой серии мы будем устанавливать полностью готовое решение Kubernetes, запустив все компоненты на вашем локальном компьютере. Есть несколько предпосылок, и мы немного углубимся в каждую, чтобы понять общую картину. Среда, которую я использую для этого блога:

Сначала нам нужно настроить 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!