Что такое Kubernetes

В этой статье мы расскажем, что такое и зачем нужен Kubernetes. А также покажем, как установить Docker и Kubernetes на Ubuntu.

Что такое Kubernetes

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

Контейнер ― это изолированный образ приложения, в который помещено как само приложение, так и все необходимые для его запуска зависимости. Контейнеры не привязаны к определённой среде выполнения, поэтому их можно легко перенести между разными машинами и ОС. Подробнее о контейнерах читайте в статье Что такое контейнер и контейнерная виртуализация.

Основные объекты Kubernetes

  • Node ― это либо физическая, либо виртуальная машина, на которой находятся контейнеры приложений. Эта машина содержит все необходимые для контейнерной виртуализации компоненты.
  • Pods ― это один или несколько взаимосвязанных контейнеров. 
  • Volume ― каталог с файлами, которые доступны для контейнеров в поде.
  • Kubelet ― агент, который следит за состоянием подов и работой контейнеров. Присутствует на каждом узле.
  • Kube-proxy ― это прокси, который управляет сетевыми правилами на узлах и балансирует сетевой трафик. Он отвечает за разрешение подключений как внутри кластера кубернетес, так и извне.

Docker: установка на узел

Обратите внимание: Docker поддерживается только 64-битными версиями Ubuntu 18.04 и выше.

  1. Обновите доступные пакеты:
    sudo apt update
  2. Установите Docker:
    sudo apt install docker.io
  3. Добавьте Docker в автозагрузку:
    sudo systemctl enable docker
  4. Проверьте статус сервиса Docker:
    sudo systemctl status docker
  5. Если статус «active (running)», Docker корректно установлен и запущен:

Kubernetes в действии

Готово, Docker для создания кластера Kubernetes установлен. Повторите установку на других узлах.

Kubernetes: установка на узел

Системные требования для каждого узла:

  • 2 ГБ оперативной памяти или больше, 
  • 2 ядра процессора или больше.

Чтобы установить Kubernetes:

  1. Добавьте в систему ключ репозитория:
    curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add
  2. Добавьте репозиторий Kubernetes в систему:
    sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
  3. Установите утилиты Kubernetes:
    sudo apt install kubeadm kubelet kubectl
  4. Закрепите версии установленных утилит:
    sudo apt-mark hold kubeadm kubelet kubectl

Готово, вы установили Kubernetes на отдельный узел. Чтобы установить Kubernetes на другие узлы, повторите действия.

Kubernetes: как развернуть на узле

  1. Отключите механизм SWAP:
    sudo swapoff -a
  2. Сервер, который будет управлять состоянием кластера, называется мастером. Назначьте его командой:
    sudo hostnamectl set-hostname kubernetes-master
  3. В кластере должна быть хотя бы одна рабочая нода. Назначьте её командой:
    sudo hostnamectl set-hostname kubernetes-worker
  4. Инициализируйте мастер-ноду:
    sudo kubeadm init
  5. Сохраните выделенную часть в выводе команды в текстовом файле:
  6. Создайте директорию:
    mkdir -p $HOME/.kube
  7. Скопируйте конфигурационный файл в эту директорию:
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  8. Смените владельца для директории:
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
  9. Для связи нескольких узлов в кластере, разверните поды:
    sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
  10. Проверьте, развёрнута ли сеть:
    sudo kubectl apply -f
    kubectl get pods --all-namespaces
  11. Перейдите в рабочий узел, который вы создали на 3 шаге. 
  12. Введите команду, которую вы скопировали на 5 шаге.
  13. Вернитесь в мастер и проверьте список рабочих нод: 
    kubectl get nodes

Готово, теперь вы знаете, как установить Kubernetes на узлах.

Если вы не нашли ответ, спросите у нас!
Написать в поддержку