Kubernetes — это ведущая платформа для оркестрации контейнеров, позволяющая эффективно управлять и масштабировать контейнеризованные приложения.
В этой статье мы подробно рассмотрим процесс создания кластера Kubernetes на Ubuntu 22.04. Мы охватим все этапы, начиная от подготовки серверов и заканчивая развертыванием приложений.
Шаг 1: Подготовка серверов
Минимальные требования
Для построения кластера Kubernetes вам понадобятся:
- Минимум три сервера (один Master Node и два Worker Nodes).
- Операционная система: Ubuntu 22.04.
- Минимум 2 ГБ ОЗУ на каждом узле.
- 2 CPU на Master Node и минимум 1 CPU на Worker Nodes.
- Доступ в интернет для загрузки необходимых пакетов.
Настройка сети и хостов
На каждом сервере настройте имена хостов и измените файл /etc/hosts
:
sudo hostnamectl set-hostname master
Добавьте имена и IP-адреса всех узлов в файл /etc/hosts
на каждом сервере:
192.168.1.100 master
192.168.1.101 worker1
192.168.1.102 worker2
Отключение swap
Kubernetes требует отключенного swap для стабильной работы. Отключите swap на каждом узле:
sudo swapoff -a
Для постоянного отключения swap, закомментируйте строку в /etc/fstab
, которая ссылается на swap-раздел:
#/swap.img none swap sw 0 0
Шаг 2: Установка Docker
Docker — это контейнерная платформа, которая необходима для работы Kubernetes. Установите Docker на всех узлах:
sudo apt-get update
sudo apt-get install -y docker.io
Запустите и включите Docker:
sudo systemctl enable docker
sudo systemctl start docker
Шаг 3: Установка Kubernetes (kubeadm, kubelet и kubectl)
Kubernetes состоит из нескольких компонентов: kubeadm
, kubelet
и kubectl
. Установите их на всех узлах:
-
Добавьте репозиторий Kubernetes:
bashsudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl sudo curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
-
Установите необходимые пакеты:
bashsudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl
Запустите и включите kubelet
:
sudo systemctl enable kubelet
sudo systemctl start kubelet
Шаг 4: Инициализация Master Node
На Master Node выполните команду инициализации кластера:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
После успешного выполнения команды вам будет предоставлен командный вывод с инструкциями по завершению настройки:
-
Настройте kubectl для управления кластером:
bashmkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
-
Запишите команду для присоединения Worker Nodes. Эта команда включает токен и хэш, необходимые для присоединения узлов к кластеру.
Установка сети для Pod
Kubernetes требует настройки сети для взаимодействия между Pod'ами. Установите Flannel в качестве сети:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Шаг 5: Присоединение Worker Nodes
На каждом Worker Node выполните команду, предоставленную на этапе инициализации Master Node:
sudo kubeadm join <master-node-ip>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
После успешного выполнения этой команды рабочие узлы будут добавлены в кластер.
Шаг 6: Проверка состояния кластера
Проверьте состояние узлов в кластере, используя kubectl на Master Node:
kubectl get nodes
Вы должны увидеть все узлы со статусом Ready
.
Шаг 7: Развертывание приложения
Теперь, когда кластер настроен и работает, давайте развернем простое приложение. В качестве примера развернем nginx.
Создание манифеста для nginx
Создайте файл nginx-deployment.yaml
со следующим содержимым:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
Применение манифеста
Примените манифест для развертывания nginx:
kubectl apply -f nginx-deployment.yaml
Проверка развертывания
Проверьте статус развертывания и убедитесь, что все Pod'ы работают:
kubectl get pods
Шаг 8: Создание сервиса для доступа к приложению
Чтобы сделать приложение доступным извне, создайте сервис:
kubectl expose deployment nginx-deployment --type=NodePort --port=80
Проверьте, на каком порту доступно приложение:
kubectl get services
Используйте IP-адрес любого Worker Node и указанный NodePort для доступа к вашему приложению.
Преимущества Vinchin Backup and Recovery для защиты Ubuntu
1. Гибкость и масштабируемость
Vinchin Backup and Recovery предлагает мощные инструменты для резервного копирования и восстановления, что особенно важно в средах с высокой нагрузкой, таких как Kubernetes-кластеры. Vinchin поддерживает масштабируемость, что позволяет эффективно управлять резервными копиями даже при увеличении числа узлов и данных.
2. Поддержка горячего резервного копирования
Vinchin позволяет выполнять горячее резервное копирование, не прерывая работу приложений и сервисов. Это особенно важно для Kubernetes-кластеров, где минимизация простоев имеет критическое значение.
3. Простота управления и автоматизация
Vinchin Backup and Recovery предлагает интуитивно понятный интерфейс и возможности автоматизации, что упрощает настройку и управление резервным копированием. Автоматизированные задачи и гибкое расписание позволяют администратору минимизировать ручную работу.
4. Надежная защита данных
С Vinchin Backup and Recovery вы получаете возможность шифрования данных и защиты от несанкционированного доступа. Это особенно важно для обеспечения безопасности данных в корпоративных средах, использующих Ubuntu и Kubernetes.
5. Универсальная совместимость
Vinchin поддерживает работу с различными виртуальными и физическими средами, что делает его отличным выбором для комплексных ИТ-инфраструктур, включающих Ubuntu и другие ОС.
Заключение
Создание кластера Kubernetes на Ubuntu 22.04 включает несколько шагов, начиная от подготовки инфраструктуры и заканчивая развертыванием приложения. Этот процесс охватывает установку Docker, Kubernetes-компонентов, настройку сети Pod и добавление рабочих узлов.
После выполнения всех шагов у вас будет готовый кластер, который вы сможете использовать для запуска и масштабирования контейнеризованных приложений.
|
Внимание! Данная статья не является официальной документацией.Использование информации необходимо выполнять с осторожностью, используя для этого тестовую среду.
Если у вас есть вопросы о построении современных систем резервного копирования, репликации, синхронизации данных и защиты от программ вымогателей обратитесь в нашу компанию для получения консультации о современных технологиях резервного копирования и восстановления данных. Наша компания имеет более чем 25-летний опыт в этой области. |