Kubernetes · 3 min read · Nov 03, 2025

Настройка кластера Kubernetes на экземпляре AWS EC2 с Ubuntu с использованием kubeadm

В этой статье мы рассмотрим, как настроить кластер Kubernetes с 2 рабочими узлами и 1 мастер-узлом на серверах Ubuntu 18.04 LTS. Мы будем использовать инструмент “ kubeadm “ для настройки кластера. Kubeadm — это инструмент, созданный для предоставления “ kubeadm init “ и “ kubeadm join “ для создания кластеров Kubernetes. Прежде чем мы продолжим создание кластера, давайте кратко разберем несколько терминов.

  1. Docker:
    Docker — это открытая платформа для разработки, доставки и запуска приложений. Docker позволяет вам отделить ваши приложения от вашей инфраструктуры, чтобы вы могли быстро доставлять программное обеспечение. С помощью Docker вы можете управлять своей инфраструктурой так же, как вы управляете своими приложениями.
  2. Image:
    Образ — это шаблон только для чтения с инструкциями по созданию контейнера Docker. Часто образ основан на другом образе с некоторой дополнительной настройкой.
  3. Container:
    Контейнер — это исполняемый экземпляр образа. Вы можете создать, запустить, остановить, переместить или удалить контейнер с помощью API или CLI Docker. Вы можете подключить контейнер к одной или нескольким сетям, прикрепить к нему хранилище или даже создать новый образ на основе его текущего состояния.
  4. Kubernetes:
    Kubernetes — это система оркестрации контейнеров с открытым исходным кодом для автоматизации развертывания, масштабирования и управления приложениями.
  5. Nodes:
    Узел представляет собой отдельную машину в кластере.
  6. Pods:
    ПОД — это группа контейнеров, которые развертываются вместе на одном хосте. Это основная единица выполнения приложения Kubernetes.
  7. Deployments:
    Deployment запускает несколько реплик вашего приложения и автоматически заменяет любые экземпляры, которые выходят из строя или становятся неотзывчивыми. Он предоставляет декларативные обновления для Pods и ReplicaSets.
  8. Replica Set:
    Он обеспечивает, сколько реплик пода должно работать. Его можно рассматривать как замену контроллеру репликации.
  • Replication Controller:
    Это супервайзер для длительно работающих подов. Он запустит указанное количество подов, называемых репликами, и следит за тем, чтобы они работали все время.
  1. Service:
    Это абстракция, которая определяет логический набор Pods и политику, по которой к ним можно получить доступ.

API Server, etcd, Controller Manager и Scheduler — это компоненты Мастера, а Docker, Kubelet Service и Kubernetes Proxy Service — это компоненты Рабочего узла. Мы не будем обсуждать эти компоненты в этом документе. Если вы хотите узнать о этих компонентах, вы можете посетить официальную страницу Kubernetes здесь.

Предварительные требования

  1. 3 сервера Ubuntu 18.04 с минимум 2 ГБ ОЗУ и 2 ЦП.
  2. Системный пользователь с доступом “sudo” на каждом сервере.

Что мы будем делать

  1. Настроить кластер Kubernetes с kubeadm

Настройка кластера Kubernetes с kubeadm

Здесь,

У нас есть 3 сервера Ubuntu 18.04 LTS.

Сервер 1= node1
Сервер 2= node2
Сервер 3= master

Прежде чем мы продолжим с фактической установкой, давайте изменим имя хоста серверов.

Вы можете использовать следующие команды, чтобы установить имя хоста на каждом сервере. После выполнения следующих команд на каждом сервере, повторно войдите на серверы, чтобы они получили новое имя хоста.

sudo hostnamectl set-hostname "master"  
sudo hostnamectl set-hostname "node1"  
sudo hostnamectl set-hostname "node2"

Следуйте шагам, указанным ниже, чтобы запустить работающий кластер Kubernets.

Получите gpg-ключ Docker *(выполните следующую команду на всех узлах):*

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Добавьте репозиторий Docker (выполните следующую команду на всех узлах):

sudo add-apt-repository    "deb [arch=amd64] https://download.docker.com/linux/ubuntu \  
   $(lsb_release -cs) \  
   stable"

Получите gpg-ключ Kubernetes (выполните следующую команду на всех узлах):

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

Добавьте репозиторий Kubernetes (выполните следующую команду на всех узлах):

cat << EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list  
deb https://apt.kubernetes.io/ kubernetes-xenial main  
EOF

Обновите ваши пакеты (выполните следующую команду на всех узлах):

sudo apt-get update

Установите Docker, kubelet, kubeadm и kubectl (выполните следующую команду на всех узлах):

sudo apt-get install -y docker-ce=18.06.1~ce~3-0~ubuntu kubelet=1.15.7-00 kubeadm=1.15.7-00 kubectl=1.15.7-00

Заблокируйте их на текущей версии (выполните следующую команду на всех узлах):

sudo apt-mark hold docker-ce kubelet kubeadm kubectl

Добавьте правило iptables в sysctl.conf (выполните следующую команду на всех узлах):

echo "net.bridge.bridge-nf-call-iptables=1" | sudo tee -a /etc/sysctl.conf

Включите iptables немедленно (выполните следующую команду на всех узлах):

sudo sysctl -p

На Мастере :

Инициализируйте кластер (выполните следующую команду только на мастер-узле):

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

Настройте локальный kubeconfig *(выполните следующую команду только на мастер-узле):*

mkdir -p $HOME/.kube  
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config  
sudo chown $(id -u):$(id -g) $HOME/.kube/config

Примените сетевой оверлей Flannel CNI (выполните следующую команду только на мастер-узле):

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

На Node1 и Node 2:

Присоедините рабочие узлы к кластеру (выполните следующую команду только на Node1 и Node2):

sudo kubeadm join 172.31.4.161:6443 --token 0y52t6.ffsj8jkjfcl1sq8h \  
   --discovery-token-ca-cert-hash sha256:7aa1825042d19d3e567f7e4b447634e942fe9ed7f18f78464a9c05f451551ed5

Проверьте, что рабочие узлы успешно присоединились к кластеру (выполните следующую команду на мастер-узле):

kubectl get nodes

Заключение:

В этой статье мы научились настраивать кластер Kubernetes с помощью инструмента kubeadm. Мы увидели, как легко можно создать кластер, если не пропустить шаги и правильно выполнить установку.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.