Перейти к основному контенту

Руководство по Kubernetes

В статье мы расскажем, что такое Kubernetes, покажем, как установить Kubernetes с нуля, и опишем начало работы с Kubernetes.

Введение в Kubernetes: что это такое и как устроено

Kubernetes (Кубернетис) — это платформа для автоматизации управления контейнерами приложений с помощью кластеров на Ubuntu, CentOS и других ОС семейства Linux. Кластеры подключены к высокоуровневому API. Благодаря этому можно системно группировать контейнеры, балансировать нагрузку и активировать задачи одновременно из сотен приложений.

Настройка Kubernetes-кластера будет интересна крупным компаниям с разработками формата Big Data или команде программистов, которым нужна крупная производственная среда. Для таких масштабных проектов хорошо подойдёт инфраструктурная платформа на основе Kubernetes. Kubernetes требователен к приложениям, с которыми работает — они должны функционировать строго по принципу микросервисов. Также кластер Кубернетес расходует много ресурсов, поэтому запускать его в небольших проектах невыгодно.

Облачные серверы нового поколения

Виртуализация KVM, почасовая оплата, резервные копии, готовые шаблоны, 10 доступных ОС на выбор!

Выбрать тариф

Основные компоненты архитектуры Kubernetes

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

  • Nodes (нода или узел) — виртуальная или физическая машина, на которой работают контейнеры приложений. Каждая нода содержит компоненты, которые позволяют запускать сервисы контейнеризации (например, Docker).

  • Pods или поды — базовые модули для управления приложениями. Могут состоять из одного или нескольких контейнеров.

  • Volume или том — ресурс для единовременного использования нескольких контейнеров.

  • Kube-proxy — совокупность балансировщика нагрузки и прокси-сервера, которые позволяют маршрутизировать входящий трафик для конкретных контейнеров пода.

  • Kubelet — транслирует статус подов на узле и следит за корректностью работы конкретного контейнера, образа и других компонентов.

Kubernetes можно установить с помощью готового инструмента или самостоятельно, добавляя каждый компонент архитектуры вручную. Мы расскажем, как установить полный функционал Kubernetes на Ubuntu вторым способом.

Сначала необходимо установить Docker и Kubernetes для каждого узла (нода) сервера, а затем развернуть Kubernetes. Для этого выполните этапы инструкции ниже.

Этап 1. Как установить Docker для узла

Важно!

Перед началом установки проверьте системные требования:

  • 64-битная архитектура,

  • ядро не ниже версии 3.10 — подойдёт Ubuntu версии 16.04 и выше.

  1. 1.
  2. 2.

    Обновите пакеты apt:

    sudo apt update
  3. 3.

    Установите Docker:

    sudo apt install docker.io
  4. 4.

    Активируйте Docker:

    sudo systemctl enable docker
  5. 5.

    Запустите Docker:

    sudo systemctl start docker
  6. 6.

    Проверьте работоспособность:

    sudo systemctl status docker

    В терминале должна появиться информация о том, что Docker активен:

    установка-Kubernetes-1

Готово, вы установили Docker для узла. Установите Docker для остальных узлов по этой же инструкции, а затем переходите к установке Kubernetes.

Этап 2. Как установить Kubernetes для узла

  1. 1.

    Добавьте ключ репозитория Kubernetes:

    curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add
  2. 2.

    Затем добавьте репозиторий Kubernetes:

    sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
  3. 3.

    Установите дополнительные утилиты:

    sudo apt install kubeadm kubelet kubectl
    sudo apt-mark hold kubeadm kubelet kubectl
  4. 4.

    Проверьте установленную версию kubeadm:

    kubeadm version

    установка-Kubernetes-3 Kubernetes: установка

Готово, вы установили Kubernetes для одного узла. Используйте эту инструкцию для остальных узлов, а затем переходите к развёртыванию Kubernetes

Этап 3. Как развернуть Kubernetes

  1. 1.

    Отключите подкачку памяти:

    sudo swapoff –a
  2. 2.

    Назначьте один из серверов мастер-нодой (главной нодой/узлом). Этот сервер будет отвечать за управление состоянием кластера. Для этого введите:

    sudo hostnamectl set-hostname kubernetes-master

    Где kubernetes-master — имя мастер-ноды.

  3. 3.

    Теперь назначьте один из серверов рабочей нодой. На этом сервере будут выполняться приложения и рабочие задачи. Введите команду:

    sudo hostnamectl set-hostname kubernetes-worker

    Где kubernetes-worker — имя рабочей ноды.

  4. 4.

    Затем инициализируйте мастер-ноду:

    sudo kubeadm init
  5. 5.

    В консоли появится информация о команде kubeadm join. Скопируйте и сохраните вывод этой команды. Он пригодится для присоединения рабочих нод к кластеру.

    установка-Kubernetes-2 Подключение к кластеру

  6. 6.

    Создайте директорию для кластера командами:

    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

    и

    sudo chown $(id -u):$(id -g) $HOME/.kube/config
  7. 7.

    Теперь разверните сеть подов — она используется для коммуникации между несколькими нодами в кластере. Чтобы развернуть виртуальную сеть Flannel pod network, введите:

    sudo kubectl apply -f 
    https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
  8. 8.

    После установки проверьте, что сеть развёрнута:

    sudo kubectl apply -f 
    kubectl get pods --all-namespaces

    установка-Kubernetes-4 Kubernetes: настройка

  9. 9.

    Переключитесь в рабочую ноду, которую вы создали на шаге 3. Затем введите скопированную ранее команду kubeadm join с параметрами (из шага 5):

    sudo kubeadm join --token символы --discovery-token-ca-cert-hash sha256:символы
  10. 10.

    Вернитесь в мастер-ноду и введите:

    kubectl get nodes

    Система выведет рабочие узлы, которые вы присоединили к кластеру.

    установка-Kubernetes-5 Kubernetes в действии

Готово, вы развернули Kubernetes. Теперь вы можете начать работу с платформой.

Итак, в руководстве мы объяснили, зачем нужен Kubernetes, дали описание основ функционирования архитектуры и показали, как установить Kubernetes на Ubuntu.

Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 1 из 1