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

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

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

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

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

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

Основные компоненты архитектуры 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.

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