Что такое Kubernetes
- Что такое Kubernetes
- Основные объекты Kubernetes
- Docker: установка на узел
- Kubernetes: установка на узел
- Kubernetes: как развернуть на узле
В этой статье мы расскажем, что такое и зачем нужен Kubernetes. А также покажем, как установить Docker и Kubernetes на Ubuntu.
Что такое Kubernetes
Kubernetes ― это платформа для автоматизации управления кластерами, которые состоят из контейнеров приложений. Благодаря высокоуровневому API, кубернетис позволяет балансировать, масштабировать и запускать контейнеры на большом количестве машин.
Контейнер ― это изолированный образ приложения, в который помещено как само приложение, так и все необходимые для его запуска зависимости. Контейнеры не привязаны к определённой среде выполнения, поэтому их можно легко перенести между разными машинами и ОС. Подробнее о контейнерах читайте в статье Что такое контейнер и контейнерная виртуализация.
Основные объекты Kubernetes
- Node ― это либо физическая, либо виртуальная машина, на которой находятся контейнеры приложений. Эта машина содержит все необходимые для контейнерной виртуализации компоненты.
- Pods ― это один или несколько взаимосвязанных контейнеров.
- Volume ― каталог с файлами, которые доступны для контейнеров в поде.
- Kubelet ― агент, который следит за состоянием подов и работой контейнеров. Присутствует на каждом узле.
- Kube-proxy ― это прокси, который управляет сетевыми правилами на узлах и балансирует сетевой трафик. Он отвечает за разрешение подключений как внутри кластера кубернетес, так и извне.
Docker: установка на узел
Обратите внимание: Docker поддерживается только 64-битными версиями Ubuntu 18.04 и выше.
- Обновите доступные пакеты:
sudo apt update
- Установите Docker:
sudo apt install docker.io
- Добавьте Docker в автозагрузку:
sudo systemctl enable docker
- Проверьте статус сервиса Docker:
sudo systemctl status docker
- Если статус «active (running)», Docker корректно установлен и запущен:
Kubernetes в действии
Готово, Docker для создания кластера Kubernetes установлен. Повторите установку на других узлах.
Kubernetes: установка на узел
Системные требования для каждого узла:
- 2 ГБ оперативной памяти или больше,
- 2 ядра процессора или больше.
Чтобы установить Kubernetes:
- Добавьте в систему ключ репозитория:
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add
- Добавьте репозиторий Kubernetes в систему:
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
- Установите утилиты Kubernetes:
sudo apt install kubeadm kubelet kubectl
- Закрепите версии установленных утилит:
sudo apt-mark hold kubeadm kubelet kubectl
Готово, вы установили Kubernetes на отдельный узел. Чтобы установить Kubernetes на другие узлы, повторите действия.
Kubernetes: как развернуть на узле
- Отключите механизм SWAP:
sudo swapoff -a
- Сервер, который будет управлять состоянием кластера, называется мастером. Назначьте его командой:
sudo hostnamectl set-hostname kubernetes-master
- В кластере должна быть хотя бы одна рабочая нода. Назначьте её командой:
sudo hostnamectl set-hostname kubernetes-worker
- Инициализируйте мастер-ноду:
sudo kubeadm init
- Сохраните выделенную часть в выводе команды в текстовом файле:
- Создайте директорию:
mkdir -p $HOME/.kube
- Скопируйте конфигурационный файл в эту директорию:
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
- Смените владельца для директории:
sudo chown $(id -u):$(id -g) $HOME/.kube/config
- Для связи нескольких узлов в кластере, разверните поды:
sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
- Проверьте, развёрнута ли сеть:
sudo kubectl apply -f kubectl get pods --all-namespaces
- Перейдите в рабочий узел, который вы создали на 3 шаге.
- Введите команду, которую вы скопировали на 5 шаге.
- Вернитесь в мастер и проверьте список рабочих нод:
kubectl get nodes
Готово, теперь вы знаете, как установить Kubernetes на узлах.