Установка и настройка кластера Kubernetes в Ubuntu Linux 22.04

Оцените статью

Давайте освежим как развернуть кластер Kubernetes в Ubuntu Linux 22.04 и у меня как раз появилось две небольшие (а главное дешевые) VPS в Adman.

Шаг 1. Подготовка

1.1. Убедитесь, что у вас есть доступ к компьютеру с операционной системой Ubuntu Linux.

~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.5 LTS
Release:        22.04
Codename:       jammy

1.2. Подготовьте необходимое оборудование: минимум один компьютер для мастера и один для узла (можно использовать виртуальные машины).

Установка базовых пакетов:

# apt-get install aptitude curl mc

Установите имя хоста в файлах:

  • /etc/hostname
  • /etc/hosts

Минимальные требования 2 ядра и 2 гигабайта оперативной памяти. Так-же обязательно отключите своп в /etc/fstab и выгрузите его содержимое в оперативную память.

# swapoff -a

1.3. Подготовка системы и сетевых параметров.

В файл /etc/modules-load.d/containerd.conf добавляем загрузку двух модулей:

overlay
br_netfilter

В файле /etc/sysctl.conf добавляем или изменяем параметры:

net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1

Шаг 2. Обновление системы

2.1. Откройте терминал и выполните команду для обновления списка пакетов и обновите установленные пакеты до последних версий:

# apt-get update && apt-get upgrade

Шаг 3. Установка Docker

Обратите внимание, что современные версии Kubernetes не поддерживают стандартный Docker-engine и вам лучше использовать CRI-O.

Установка CRI-O

3.1. Экспортируем требуемую версию Kubernetes и CRI-O:

# KUBERNETES_VERSION=v1.32
# CRIO_VERSION=v1.32

3.2. Подключаем репозиторий:

# curl -fsSL https://download.opensuse.org/repositories/isv:/cri-o:/stable:/$CRIO_VERSION/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/cri-o-apt-keyring.gpg
# echo "deb [signed-by=/etc/apt/keyrings/cri-o-apt-keyring.gpg] https://download.opensuse.org/repositories/isv:/cri-o:/stable:/$CRIO_VERSION/deb/ /" | tee /etc/apt/sources.list.d/cri-o.list

3.3. Устанавливаем необходимый пакет:

# apt-get update
# apt-get install -y cri-o

3.4. Запускаем сервис и проверяем, что все работает.


# systemctl start crio.service
# systemctl enable crio.service

Для работы с CRI-O используется утилита crictl и это бинарный файл который можно скачать на GitHub например по адресу https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.33.0/crictl-v1.33.0-linux-amd64.tar.gz и разместить его в каталог /usr/local/bin.

Проверяем, что служба работает:

# crictl ps
CONTAINER           IMAGE               CREATED             STATE               NAME                ATTEMPT             POD ID              POD                 NAMESPACE

Установка Docker Engine

Но если вам так хочется заморачиваться с отдельным уровнем абстракции, то установим Docker-engine.

3.1. Установите необходимые зависимости:

# apt install -y apt-transport-https ca-certificates curl software-properties-common

3.2. Добавьте ключ GPG репозитория Docker:

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

3.3. Добавьте репозиторий Docker в список источников:

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

3.4. Обновите список пакетов:

# apt update

3.5. Установите Docker:

# apt install -y docker-ce

Шаг 4. Установка Kubernetes

4.1. Добавьте ключ GPG репозитория Kubernetes:

# curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
# curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

4.2. Добавьте репозиторий Kubernetes в список источников:

# echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.30/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list

4.3. Обновите список пакетов:

# apt-get update

4.4. Установите kubeadm, kubelet и kubectl:

# apt install -y kubeadm kubelet kubectl

Шаг 5. Инициализация кластера

5.1. Инициализируйте кластер с помощью kubeadm:

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

5.2. Следуйте инструкциям на экране для настройки kubectl для работы с кластером.

Экспортируем файл конфигурации:

# export KUBECONFIG=/etc/kubernetes/admin.conf

Проверяем доступность управляющего узла:

# kubectl get nodes

Шаг 6. Установка сети для контейнеров

6.1. Установите плагин сети для Kubernetes, например, Calico:

# kubectl apply -f https://dev.hsrn.nyu.edu/hsrn-projects/kubernetes-bare-metal/-/raw/0717ca13879fe1c2ce60759cd4ef20f05edbf5eb/k8s/calico.yml

Шаг 7. Добавление узлов в кластер

7.1. На каждом узле выполните команду, полученную при инициализации кластера, чтобы добавить узлы в кластер.

# kubeadm join 185.173.93.43:6443 --token akm4ce.xxxxxxxx --discovery-token-ca-cert-hash sha256:xxxxxxxx

Шаг 8. Проверка кластера

8.1. Проверьте состояние кластера с помощью команды:

# kubectl get nodes

8.2. Убедитесь, что все узлы находятся в состоянии Ready.

# kubectl get nodes
NAME                STATUS   ROLES           AGE   VERSION
srv-prod-adman-01   Ready    control-plane   17m   v1.30.13
srv-prod-adman-02   Ready    <none>          51s   v1.30.13

Это общая инструкция по установке и настройке кластера Kubernetes в Ubuntu Linux. В зависимости от вашей конфигурации и требований, могут потребоваться дополнительные шаги или настройки.

Обратите внимание, что для работы с Kubernetes рекомендуется использовать последнюю версию Ubuntu Linux и актуальные версии компонентов Kubernetes.

Related Posts

Создание кластера Kubernetes в Yandex Cloud

Так как у меня сегодня последний день действия гранта, а я экспериментировал только с генеративными моделями и VPS, определенно надо пока есть возможность поиграть и с этой технологией. Создание кластера…

Шпаргалка по работе с утилитой OpenSSL в Linux

1. Генерация ключа RSA: 2. Создание запроса на подпись сертификата (CSR): 3. Создание самоподписанного сертификата: 4. Проверка сертификата: 5. Кодирование и декодирование данных: 6. Создание цифрового отпечатка (fingerprint) файла: 7.…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

You Missed

Создание кластера Kubernetes в Yandex Cloud

Создание кластера Kubernetes в Yandex Cloud

Шпаргалка по работе с утилитой OpenSSL в Linux

Шпаргалка по работе с утилитой OpenSSL в Linux

Установка и настройка кластера Kubernetes в Ubuntu Linux 22.04

Установка и настройка кластера Kubernetes в Ubuntu Linux 22.04

Немного усложним мое FTP-хранилище

Немного усложним мое FTP-хранилище

Настройка FTP-сервера в Ubuntu Linux

Настройка FTP-сервера в Ubuntu Linux

Шпаргалка по работе с SUDO

Шпаргалка по работе с SUDO