Привет, друзья! С вами снова Merion Academy — место, где IT-образование становится доступным и даже веселым. Сегодня мы поговорим о Kubernetes — той самой штуке, которую Google подарил миру Open Source, и которая теперь рулит контейнерами так уверенно, что Docker уже подумывает о пенсии.
Представьте себе: Kubernetes — это такой дирижер оркестра контейнеров, который не только управляет Docker’ами, но и дружит с Rkt и прочими контейнерными зверушками.
Если вы думаете, что Kubernetes — это какой-то инопланетный язык программирования или новая соцсеть для айтишников, то спешу вас разочаровать (или обрадовать!) — это всего лишь система управления кластерами. Кластер звучит как название рок-группы из 80-х, но на деле это просто набор серверов: главный узел — он же босс всего этого дела — и несколько рабочих узлов, которые выполняют приказы главного.
Как в армии: командир сказал «А», солдаты должны сказать «Б» и выполнить.
Но если у вас нет армии из серверов, то можно начать с одного узла. Для этого есть Minikube — небольшой виртуальный помощник для тех, кто только учится ходить по киберпространству. Это как ездить на велосипеде с поддерживающими колесами: удобно и безопасно.
Теперь давайте представим наш учебный кластер из трех узлов на CentOS 7 — системе для настоящих взрослых дядек и тетек в IT-мире.
Все действия будем выполнять через терминал, потому что графический интерфейс в Linux – это как шутка без punchline: вроде есть, но смысла мало.
Первое правило счастливого администратора Kubernetes: правильно назвать свои узлы! Это как дать имя коту или собаке — без имени они не слушаются. Команда hostnamectl set-hostname master-node звучит серьезно и сразу показывает статус главного босса. А чтобы ваши рабочие пчелки не заблудились в сетях интернета или локалки, нужно обновить файл /etc/hosts.
В этом файле прописываются IP-адреса ваших узлов так же четко, как расписание автобусов в маленьком городе.
После того как вы дали имена своим серверам и прописали их адреса, стоит проверить связь с ними командой ping — это как позвонить другу по телефону и убедиться, что он жив-здоров и не сбежал на выходные к бабушке.
Дальше начинается настоящая магия: отключаем SElinux (он такой строгий охранник), чтобы он не мешал нам творить чудеса с настройкой кластера. Если бы SElinux был человеком, его бы точно звали Иван Иванович – всегда строгий и ничего хорошего не пропускает.
Чтобы ваши сокровища были защищены от внешних нападок (ну или хотя бы от соседних сервисов), нужно открыть нужные порты в брандмауэре. Представьте себе порт 6443 как VIP-вход на вечеринку Kubernetes – без него никто внутрь не попадет! А команда firewall-cmd —permanent —add-port=6443/tcp звучит почти как заклинание из Гарри Поттера: «Откройся ворота!»
Не забудьте про модуль br_netfilter – он нужен для того, чтобы сетевой трафик проходил через iptables без проблем.
Если представить сеть как городские дороги, то br_netfilter – это светофор с умом: регулировать движение так, чтобы пробок не было.
Дальше мы добавляем репозиторий Kubernetes вручную – потому что CentOS 7 любит держать всё под контролем и иногда забывает о современных технологиях. Это примерно как добавить новый канал в список любимых передач вручную – немного хлопотно, зато потом можно наслаждаться шоу!
Устанавливаем kubeadm и docker – два лучших друга системного администратора. Docker тут выступает звездой вечера: популярный механизм контейнеризации с миллионами поклонников по всему миру.