Истории успеха наших клиентов — лучшие проекты
Вход/ Регистрация

Кластер Kubernetes: установка, настройка и управление

4961
8 минут чтения
Средний рейтинг статьи: 5

Kubernetes или K8s — это программная платформа с открытым исходным кодом для оркестрации контейнеров, созданная Google. Основная концепция работы Kubernetes заключается в следующем: пользователь устанавливает его на сервер или, что более вероятно, кластер и развертывает на нем различные рабочие нагрузки. Kubernetes решает проблемы, связанные с созданием контейнеров, их масштабированием, пространствами имен, правами доступа и т.п. В основном взаимодействие с кластером осуществляется с помощью YAML-файлов — файлов с конфигурацией. В этой статье вы узнаете, как создать кластер Kubernetes и как развернуть кластер Kubernetes локально.

Kubernetes

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

Создание виртуальных машин

Установку кластера Kubernetes будем осуществлять на две виртуальные машины. Одна из них будет выполнять роль мастер-ноды, а другая — рабочей. При реальном использовании Kubernetes развертывание кластера из двух узлов не имеет смысла, но в качестве учебной установки подойдет. Если вы хотите создать кластер из большего числа узлов, то выполните аналогичные действия для них.

Для создания виртуальных машин будем использовать VirtualBox от Oracle. Скачать его можно по этой ссылке. После установки переходим к созданию виртуальных машин.

В качестве операционной системы для ВМ выберем Ubuntu Server. Дистрибутив находится здесь. Загружаем его и открываем VirtualBox.

Image3

Для создания ВМ нажимаем на кнопку «Создать»:

Image2

Теперь Virtual Box предложит вам выбрать параметры ВМ. В нашем случае оставляем всё стандартным, но для мастер-ноды, которая отвечает за управление Kubernetes-кластером, выделяем 3 ГБ оперативной памяти и 2 CPU, а для рабочей 2 ГБ. Технические требования к кластеру Kubernetes подразумевают, что мастер-ноде нужно как минимум 2 CPU. Создаём таким образом 2 виртуальные машины.

После создания ВМ нужно создать образ с дистрибутивом Ubuntu Server. Переходим в «Носители» и нажимаем «Выбрать/создать образ диска»:

Image1

В открывшемся окне нажмите «Добавить» и выберите дистрибутив Ubuntu Server. После этого запускаем обе машины и устанавливаем операционную систему, выбрав для этого пункт «Try or Install Ubuntu». Во время установки создаем пользователей для каждой системы и выбираем стандартные настройки. 

После установки необходимо выключить обе виртуальные машины и перейти в их настройки. Переходим в раздел «Сеть» и меняем тип подключения на «Сетевой мост» для каждой системы, чтобы виртуальные машины были доступны между собой по сети:

Image4

Подготовка систем

Настройка сети

Зададим имена узлам кластера. В мастер ноде выполним эту команду:

    

А в рабочей эту:

    

Если рабочих нод несколько, то выполните для каждой из них команду с новым именем: worker1.local, worker2.local и т.д.

Чтобы узлы были доступны по именам, изменим файл hosts на каждом из узлов. В нашем случае необходимо добавить в него такие строки:

    

192.168.43.80 и 192.168.43.77 — это IP-адреса каждого из узлов. Чтобы узнать IP-адрес, используем команду ip addr:

    

Вывод:

    

IP-адрес находится рядом с inet. Откроем файл hosts и внесем правки:

    

Чтобы убедиться, что ВМ могут обращаться друг к другу, пропингуем их:

    

Если все хорошо, то вы получите вывод, подобный этому:

    

Обновление пакетов и установки дополнительных утилит

После этого перейдем к установке необходимых утилит и пакетов на каждом из узлов. Указанные действия применяем для каждого узла, если не указано обратное. Для начала обновим список пакетов и сами системы:

    

Теперь установим пакеты: 

    

Файл подкачки

Kubernetes не запустится с файлом подкачки, его нужно отключить: 

    

Чтобы он не включился после перезагрузки, необходимо изменить файл fstab:

    

Закомментируем эту строку с помощью # :

    

Ядро

Загрузим дополнительные модули ядра:

    

В k8s.conf добавим 2 строки:

    

Теперь добавим модули в ядро:

    

Проверим успешность действий:

    

Должен быть примерно такой вывод:

    

Создадим конфигурационный файл для обработки трафика через bridge в netfilter:

    

В файл вносим 2 строки:

    

Применим настройки:

    

Установка Docker

Прописываем в консоли:

    

Подробнее о том, как установить Docker на Ubuntu, читайте здесь

После установки включаем автозапуск и перезапускаем Docker:

    

Установка Kubernetes

Добавим GPG-ключ:

    

Теперь создадим файл с настройкой репозитория:

    

И добавим в него такую запись:

    

Используем последнюю версию репозитория для Ubuntu: Kubernetes-xenial. Это версия для Ubuntu 16.04, возможно в скором времени появится версия для Ubuntu 22.04 — jammy.

Обновим список пакетов apt-get:

    

Установим пакеты:

    

Установка завершена. Можем проверить версию клиента Kubernetes:

    

Вывод:

    

Настройка и создание кластера 

Мастер-нода

Выполняем команду для начальной настройки и подготовки узла:

    

Ключ --pod-network-cidr задает адрес внутренней подсети. 10.244.0.0/16 — значение по умолчанию.

Процесс займет несколько минут. По его завершению в консоли появится такая запись:

    

Данную команду сохраняем для подключения рабочих нод к мастер-ноде.

Создадим переменную окружения KUBECONFIG:

    

Также выполним установку CNI (сетевой интерфейс контейнеров):

    

Рабочая нода

На рабочей ноде выполняем команду kubeadm join, полученную при настройке мастер-ноды. После этого введем на мастер-ноде:

    

Вывод:

    

Теперь кластер развернут и готов к работе.

Облачные серверы

Масштабируемые вычислительные ресурсы
по всему миру с почасовой оплатой.

Заключение

Мы рассмотрели, как создать кластер Kubernetes и развернуть кластер Kubernetes локально. А если вы хотите быстро получить уже настроенный и полностью готовый к работе кластер, воспользуйтесь управляемым сервисом Kubernetes от Timeweb Cloud.

Кстати, в официальном канале Timeweb Cloud собрали комьюнити из специалистов, которые говорят про IT-тренды, делятся полезными инструкциями и даже приглашают к себе работать. 

4961
8 минут чтения
Средний рейтинг статьи: 5
Хотите внести свой вклад?
Участвуйте в нашей контент-программе за
вознаграждение или запросите нужную вам инструкцию
img-server