Найти в Дзене

Установка Kubernetes на CentOS/RHEL 7 и Amazonlinux 2

Оглавление

Сегодня мы рассмотрим вопрос установки Kubernetes кластера в среде операционных систем, основанных на RHEL7: RedHat Enterprise Linux 7, CentOS 7 и Amazonlinux 2.

Мы будем рассматривать установку простого кластера: один мастер-узел + несколько рабочих узлов.

Базовая установка

Первые шаги являются общими для всех узлов кластера: мастеров и рабочих.

Подготовка узлов

Для начала необходимо обновить часть системных настроек на всех узлах будущего кластера.

Выключаем selinux

setenforce 0

Также необходимо отключить selinux при следующей загрузке: открываем /etc/selinux/config и прописываем SELINUX=disabled

Kubernetes требует использования честной памяти, поэтому выключаем swap

swapoff -a

Для правильной маршрутизации сетевых запросов во внутренней сети кластера необходимо включить следующие настройки iptables

sysctl net.bridge.bridge-nf-call-iptables=1
sysctl net.bridge.bridge-nf-call-ip6tables=1

Установка среды исполнения контейнеров

На первом этапе нам необходимо установить среду исполнения и управления контейнерами. Мы будем использовать связку Docker+ContainerD.

В случае RHEL/CentOS: добавляем репозиторий docker и устанавливаем необходимые пакеты

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io

В случае Amazonlinux процесс немного отличается

amazon-linux-extras install -y epel docker
yum install docker containerd

Установка пакетов Kubernetes

Теперь мы можем приступить к установке системных пакетов Kubernetes.

Добавляем репозиторий с kubernetes

yum-config-manager --add-repo https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64

Устанавливаем пакеты

yum install kubelet kubeadm kubectl

На этом этапе базовая установка считается законченной и следующие шаги будут направленны на настройку узлов в соответствии с их ролями.

Инициализация кластера

Инициализация мастер-узла

Первым этапом инициализации кластера является инициализация мастер-узла.

Скачиваем образы системных контейнеров

kubeadm config images pull

Инициализируем мастер, где 10.0.1.1 - ip-адрес мастер-узла

kubeadm init --apiserver-advertise-address="10.0.1.1" \ --apiserver-cert-extra-sans="10.0.1.1" \ --node-name k8s-master \ --pod-network-cidr="192.168.0.0/16"

Теперь пора инициализировать сетевой драйвер. В этой статье мы будем использовать Calico версии 3.8 (последняя на момент написания).

kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml

Затем необходимо сгенерировать и сохранить команду для присоединения рабочих узлов

kubeadm token create --print-join-command

Подключение рабочих узлов

Теперь заходим по ssh на каждый рабочий узел и выполняем там полученную на предыдущем шаге команду.

Создание пользователя для управления кластером

Теперь создадим специального пользователя для управления кластером.

Для этого создадим нового пользователя на мастер-узле

useradd kube

Добавляем настройки для подключения к кластеру

mkdir -p /home/kube/.kube
cp -i /etc/kubernetes/admin.conf /home/kube/.kube/config
chown kube:kube /home/kube/.kube/config

Теперь можно проверить

sudo su kube
kubectl get all -A

Всё, на этом установку кластера можно считать выполненной.

Надеюсь, данная статья была вам полезна и до новых встреч.