Руководство по Kubernetes
В статье мы расскажем, что такое Kubernetes, покажем, как установить Kubernetes с нуля, и опишем начало работы с Kubernetes.
Введение в Kubernetes: что это такое и как устроено
Kubernetes (Кубернетис) — это платформа для автоматизации управления контейнерами приложений с помощью кластеров на Ubuntu, CentOS и других ОС семейства Linux. Кластеры подключены к высокоуровневому API. Благодаря этому можно системно группировать контейнеры, балансировать нагрузку и активировать задачи одновременно из сотен приложений.
Настройка Kubernetes-кластера будет интересна крупным компаниям с разработками формата Big Data или команде программистов, которым нужна крупная производственная среда. Для таких масштабных проектов хорошо подойдёт инфраструктурная платформа на основе Kubernetes. Kubernetes требователен к приложениям, с которыми работает — они должны функционировать строго по принципу микросервисов. Также кластер Кубернетес расходует много ресурсов, поэтому запускать его в небольших проектах невыгодно.
Облачные серверы нового поколения
Виртуализация KVM, почасовая оплата, резервные копии, готовые шаблоны, 10 доступных ОС на выбор!
Выбрать тариф
Основные компоненты архитектуры Kubernetes
Архитектура Kubernetes состоит из следующих компонентов:
- Nodes (нода или узел) — виртуальная или физическая машина, на которой работают контейнеры приложений. Каждая нода содержит компоненты, которые позволяют запускать сервисы контейнеризации (например, Docker или Containerd).
- Pods или поды — базовые модули для управления приложениями. Могут состоять из одного или нескольких контейнеров.
- Volume или том — ресурс для единовременного использования нескольких контейнеров.
- Kube-proxy — совокупность балансировщика нагрузки и прокси-сервера, которые позволяют маршрутизировать входящий трафик для конкретных контейнеров пода.
- Kubelet — транслирует статус подов на узле и следит за корректностью работы конкретного контейнера, образа и других компонентов.
Kubernetes можно установить с помощью готового инструмента или самостоятельно, добавляя каждый компонент архитектуры вручную. Мы расскажем, как установить полный функционал Kubernetes на Ubuntu вторым способом.
Для настройки Kubernetes:
- измените имена хостов,
- установите Kubernetes,
- включите модули ядра,
- настройте sysctl,
- установите Containerd,
- разверните Kubernetes.
В инструкции мы опишем установку для мастер-ноды и для одной рабочей ноды. Мастер-ноду назовем kube-master, а рабочую ноду — kube-worker.
Подготовка к установке
-
1.
На каждой ноде откройте файл hosts с помощью команды:
sudo nano /etc/hosts
-
2.
В файле удалите строку, в которой указан IP вашего сервера. Добавьте записи:
IP_ADDRESS kube-master IP_ADDRESS kube-worker
Где
IP_ADDRESS
— IP-адрес каждого узла. -
3.
Сохраните и закройте файл. Для этого нажмите Ctrl+X, затем Y и Enter.
-
4.
Зайдите в мастер-ноду и измените имя хоста:
sudo hostnamectl set-hostname kube-master
-
5.
Войдите в рабочую ноду и введите команду:
sudo hostnamectl set-hostname kube-worker
-
6.
Перезайдите на каждый из серверов.
Как установить Kubernetes
-
1.
Войдите в мастер-ноду и запустите обновление с помощью команд:
sudo apt update
sudo apt upgrade -y
-
2.
После завершения обновления введите команду:
sudo apt install curl apt-transport-https -y
-
3.
Затем добавьте GPG-ключ командой:
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
-
4.
Добавьте репозиторий Kubernetes:
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
-
5.
Введите команду:
sudo apt update
-
6.
Установите необходимое программное обеспечение:
sudo apt -y install vim git curl wget kubelet kubeadm kubectl
-
7.
Отключите автоматическое обновление kubelet, kubeadm и kubectl:
sudo apt-mark hold kubelet kubeadm kubectl
-
8.
Включите службу kubelet:
sudo systemctl enable --now kubelet
-
9.
Проверьте установленную версию kubeadm:
kubeadm version
Kubernetes: установка
-
10.
Отключите подкачку памяти:
sudo swapoff -a
Повторите проделанные шаги на kube-worker.
Как включить модули ядра и изменить настройки в sysctl
На всех узлах внесите следующие настройки:
-
1.
Включите модули overlay и br_netfliter:
sudo modprobe overlay
sudo modprobe br_netfilter
-
2.
Теперь измените настройки sysctl. Откройте файл kubernetes.conf:
sudo nano /etc/sysctl.d/kubernetes.conf
-
3.
Вставьте в него следующие строки:
net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1
-
4.
Сохраните и закройте файл. Для этого нажмите Ctrl+X, затем Y и Enter.
-
5.
Перезагрузите sysctl командной:
sudo sysctl --system
Как установить Containerd
Теперь на каждой машине нужно установить среду для запуска контейнеров — Containerd.
-
1.
Настройте постоянную загрузку модулей Containerd с помощью команды (нужно скопировать и вставить сразу все 4 строки):
cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf overlay br_netfilter EOF
-
2.
Перезагрузите sysctl командной:
sudo sysctl --system
-
3.
Установите необходимые пакеты:
sudo apt install curl gnupg2 software-properties-common apt-transport-https ca-certificates -y
-
4.
Добавьте GPG-ключ:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
-
5.
Добавьте необходимый репозиторий при помощи команды:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
-
6.
Установите Сontainerd:
sudo apt update
sudo apt install containerd.io -y
-
7.
Зайдите под пользователем root:
sudo su -
-
8.
Создайте новый каталог для Сontainerd:
mkdir -p /etc/containerd
-
9.
Создайте файл конфигурации:
containerd config default>/etc/containerd/config.toml
-
10.
Выйдите из-под пользователя root:
exit
-
11.
Перезапустите Containerd:
sudo systemctl restart containerd
-
12.
Включите автоматический запуск службы Containerd:
sudo systemctl enable containerd
Как развернуть Kubernetes
-
1.
Перейдите в kube-master и извлеките необходимые образы контейнеров:
sudo kubeadm config images pull
-
2.
Инициализируйте кластер при помощи команды:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
-
3.
В консоли появится информация о команде kubeadm join. Скопируйте и сохраните вывод этой команды. Подключение к кластеру
Введите эту команду на ноде kube-worker, чтобы присоединить ее к кластеру.
Если не сохранили команду добавления в кластер, получите ее повторно:
sudo kubeadm token create --print-join-command
-
4.
Создайте директорию для кластера на мастер-ноде с помощью следующих команд:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
-
5.
Теперь разверните сеть подов — она используется для коммуникации между несколькими нодами в кластере. Чтобы развернуть виртуальную сеть Flannel pod network, введите:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
-
6.
После установки проверьте, что сеть развёрнута:
kubectl get pods --all-namespaces
Kubernetes: настройка
-
7.
Присвойте узлу kube-worker роль worker при помощи команды (команду нужно вводить в мастер-ноде):
sudo kubectl label node kube-worker node-role.kubernetes.io/worker=worker
-
8.
После завершения настроек выполните команду в kube-master:
kubectl get nodes
Kubernetes в действии
Вы должны увидеть в списке мастер-ноду и рабочую ноду.
Готово, вы развернули Kubernetes. Теперь вы можете начать работу с платформой.
Итак, в руководстве мы объяснили, зачем нужен Kubernetes, дали описание основ функционирования архитектуры и показали, как установить Kubernetes на Ubuntu.
помогла
Нужна помощь?
Напишите в службу поддержки!