База знаний

Список статей
Наверх

Kubernetes в VPC

Kubernetes – это программное обеспечение с открытым исходным кодом для развертывания и управления приложениями на базе контейнеров.

Kubernetes позволяет управлять кластерами серверов Виртуального приватного облака, упрощая процесс развертывания, масштабирования и обслуживания контейнерной инфраструктуры. Сервис Виртуальное приватное облако построен на базе OpenStack. Компонент OpenStack Magnum позволяет быстро создавать приватные кластеры Kubernetes требуемой конфигурации.

Kubernetes в VPC – это отличное решение для проектов с большим количеством приложений, запущенных в виде контейнеров.

Возможности Kubernetes в VPC:

  • Быстрое и простое создание кластера

  • Мониторинг состояния кластера системами Prometheus и Grafana

  • Поддержка Ingress Controller

  • Управление через преднастроенный Kubernetes Dashboard или при помощи kubectl

В качестве нод кластера используются виртуальные машины. Конфигурация кластера может быть выполнена как через интерфейс панели управления, так и через API.

Создание кластера Kubernetes

Для создания кластера Kubernetes в существующем проекте VPC:

  1. В панели управления перейдите в карточку проекта на вкладку Kubernetes

  2. Нажмите кнопку Создать кластер

  3. Выберите локацию, указав Регион и Зону

  4. При необходимости можно изменить сгенерированное по умолчанию Имя кластера

  5. Задайте количество ресурсов для Мастер-ноды и для Ноды

  6. Введите SSH-ключ

  7. При необходимости можно добавить дополнительные диски и указать дополнительные параметры, развернув блок Диски и дополнительные параметры:

    1. Для добавления дополнительного диска укажите его тип и размер

    2. Также можно добавить функцию создания плавающего IP для каждой ноды

  8. Нажмите кнопку Создать

Будет создан готовый к работе кластер Kubernetes.

Примечание: в существующем проекте можно создавать несколько независимых друг от друга кластеров.

Начало работы с Kubernetes CLI

Для получения доступа к кластеру Kubernetes скачайте конфигурационный файл config.yaml, нажав кнопку Скачать config.yaml на вкладке Доступ в карточке созданного кластера.

Экспортируйте переменную окружения KUBECONFIG, которая будет содержать путь к этому файлу:

export KUBECONFIG=~/config.yaml

Скачайте и установите консольный клиент kubectlИнструкцию по установке можно найти в официальной документации.

После запуска kubectl для просмотра статус объектов кластера Kubernetes введите:

kubectl get nodes                                                                                                                                                      366ms Tue Sep 11 11:27:18 2018
NAME                                STATUS ROLES AGE VERSION
k8s-cluster-y7x4r3ga2u3b-minion-0   Ready <none> 24d v1.11.1
k8s-cluster-y7x4r3ga2u3b-minion-1   Ready <none> 24d v1.11.1

Управлять созданным кластером можно через все доступные опции kubectl, описанные в официальной документации.


Работа с Kubernetes Dashboard и Grafana


Для доступа к Kubernetes Dashboard требуется знать значение токена для аккаунта администратора, который автоматически создается в кластере.


Найдите соответствующий объект типа “Secret”, введя команду:


kubectl get secret --namespace=kube-system | grep "admin-user-token"
admin-user-token-*****  kubernetes.io/service-account-token 3    8sD"


Для того чтобы просмотреть значение токена у найденного объекта “Secret” с именем admin-user-token-***** введите:


kubectl describe secret admin-user-token-***** --namespace=kube-system | grep "token:"
token:      XXXXXX...


В ответ будет выведено значение токена.


Для того чтобы открыть веб-интерфейс управления кластером Kubernetes откройте консольный клиент kubectl. Для запуска локального proxy введите:


kubectl proxy


Для перехода в интерфейс управления кластером откройте в браузере следующую ссылку:


http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/


Откроется окно аутентификации в панели управления.


image


Укажите токен, полученный ранее. После аутентификации панель управления Kubernetes Dashboard готова к работе.


image


Аналогично описанным действиям для Kubernetes Dashboard можно получить доступ к Grafana. Для этого используйте ссылку:


http://localhost:8001/api/v1/proxy/namespaces/kube-system/services/monitoring-grafana:80


После аутентификации откроется интерфейс Grafana.


image

Запуск приложения в кластере Kubernetes

Для запуска простого приложения создайте его описание в формате YAML:

# nginx-basic.yaml
apiVersion: v1
kind: Pod
metadata:
 name: nginx
spec:
 containers:
 - name: nginx
   image: library/nginx:1.14-alpine
   ports:
   - containerPort: 80

Запустите консольный клиент kubectl:

kubectl create \
 -f https://raw.githubusercontent.com/selectel/kubernetes-examples/master/pods/nginx-basic.yaml

Для проверки состояния запущенного пода с nginx введите:

kubectl get pod nginx                                                                                                                                              148ms Tue Sep 11 11:41:40 2018
NAME      READY  STATUS    RESTARTS AGE
nginx     1/1    Running   0        14s

О том, как управлять другими объектами кластера, вы можете узнать из нашей статьи.