About Tech
Закрывать
Меню

Навигация

  • сертификаты Linux
  • дистрибутивы Linux
  • Kvm
  • Рейд
  • Russian
    • Russian
    • Arabic
    • Bulgarian
    • Croatian
    • Czech
    • Danish
    • Dutch
    • Estonian
    • Finnish
    • French
    • Georgian
    • German
    • Greek
    • Hebrew
    • Hindi
    • Hungarian
    • Indonesian
    • Italian
    • Japanese
    • Korean
    • Latvian
    • Lithuanian
    • Norwegian
    • Polish
    • Portuguese
    • Romanian
    • Serbian
    • Slovak
    • Slovenian
    • Spanish
    • Swedish
    • Thai
    • Turkish
    • Ukrainian
    • Persian
Закрывать

Как установить кластер Kubernetes на CentOS 8

Процесс установки Кластер Kubernetes на CentOS 8 почти похож на CentOS 7 (который вы можете пройти здесь), но здесь есть несколько изменений. Эти изменения в основном связаны с установкой Докер.

Начиная с CentOS 8 (и по расширению RHEL 8), докер теперь изначально заменен на подман и Buildah какие инструменты из Красная Шапка. Фактически, пакет докеров теперь удален из репозитория пакетов по умолчанию.

Этим ходом Красная Шапка команда стремится упростить процесс создания и использования контейнеров, не требуя специальных разрешений, в то же время поддерживая совместимость с образами докеров и работая с ними без необходимости демон. Подман обещает предложить большую гибкость при работе на Kubernetes среды, но жюри остается там.

В этой статье мы рассмотрим процесс установки Kubernetes на CentOS 8 платформа, работающая на Докер-CE (Community Edition). В следующей статье мы также проведем аналогичную установку, используя подман для наших контейнеров.

Предпосылки

  1. Три серверы под управлением CentOS 8 – 1 главный узел и 2 рабочих узла.
  2. Рекомендуется, чтобы на ваших узлах было не менее 2 ЦП с 2 ГБ ОЗУ или более на машину. Это не строгое требование, но в значительной степени обусловлено потребностями приложения, которое вы собираетесь запускать.
  3. Подключение к Интернету на всех ваших узлах. Мы доставим Kubernetes и докер пакеты из репозитория. Точно так же вам нужно будет убедиться, что Менеджер пакетов DNF устанавливается по умолчанию и может получать пакеты удаленно.
  4. Все ваши узлы также должны иметь возможность подключаться друг к другу в частной или общедоступной сети, в зависимости от того, что доступно.
  5. Вам также понадобится доступ к учетной записи с привилегиями sudo или root. В этом руководстве я буду использовать свою учетную запись root.

Меры предосторожности

Большинство узлов обычно имеют уникальные MAC адресов, однако в некоторых уникальных случаях некоторые Виртуальные машины могут иметь одинаковые MAC-адреса. Поэтому рекомендуется подтвердить, что Product_UUID и MAC адреса не совпадают ни в одном из узлов.

Kubernetes использует эти значения для однозначной идентификации узлов в кластере. Если эти значения не уникальны для каждого узла, процесс установки может завершиться ошибкой.

Проверить MAC-адрес сетевого интерфейса и сравнить его.

# IP-ссылка. 

Чтобы проверить product_uuid и сравните, выполните следующую команду.

# cat / sys / class / dmi / id / product_uuid 

Логическая архитектура

Наша установка предназначена для Мастер-узел контроль над Рабочие узлы. В конце этой установки наша логическая архитектура будет выглядеть примерно так.

Главный узел - Этот компьютер обычно действует как плоскость управления и запускает базу данных кластера и сервер API (с которым взаимодействует интерфейс командной строки kubectl).

Наш 3-х узловой Кластер Kubernetes будет выглядеть примерно так:

Диаграмма кластера Kubernetes
Диаграмма кластера Kubernetes

Установка Kubernetes Cluster на Master-Node

Для Kubernetes для работы вам понадобится движок контейнеризации. Как уже упоминалось, мы будем использовать Докер-CE.

Следующие учреждения будут выполнены на Мастер-узел CentOS 8.

Шаг 1. Подготовьте имя хоста, брандмауэр и SELinux

На ваше Мастер-узел CentOS 8, установите имя хоста системы и обновите DNS в своем /etc/hosts файл.

# hostnamectl set-hostname master-node. # кошка <> / etc / hosts. 192.168.0.47 мастер-узел. 192.168.0.48 узел-1 рабочий-узел-1. 192.168.0.49 узел-2 рабочий-узел-2. EOF. 

Затем пингуйте свой рабочий-узел-1 и рабочий узел-2 чтобы проверить, правильно ли работает ваш обновленный файл хоста, используя команда ping.

# пинг 192.168.0.48. # пинг 192.168.0.49. 

Далее отключите Селинукс, поскольку это необходимо, чтобы позволить контейнерам получить доступ к файловой системе хоста, что необходимо для сетей pod и других служб.

# setenforce 0. 

Параметр сила к 0 эффективно устанавливает SELinux в разрешающий режим, что фактически отключает SELinux до следующей перезагрузки. Чтобы полностью отключить его, используйте команду ниже и перезагрузитесь.

# sed -i --follow-symlinks 's / SELINUX = enforcing / SELINUX = disabled / g' / etc / sysconfig / selinux. # перезагружать. 

Kubernetes использует различные порты для связи и доступа, и эти порты должны быть доступны Kubernetes и не ограничиваться брандмауэром.

Порты Kubernetes
Порты Kubernetes

Настройте правила брандмауэра на портах.

# firewall-cmd --permanent --add-port = 6443 / tcp. # firewall-cmd --permanent --add-port = 2379-2380 / tcp. # firewall-cmd --permanent --add-port = 10250 / tcp. # firewall-cmd --permanent --add-port = 10251 / tcp. # firewall-cmd --permanent --add-port = 10252 / tcp. # firewall-cmd --permanent --add-port = 10255 / tcp. # firewall-cmd --reload. # modprobe br_netfilter. # echo '1'> / proc / sys / net / bridge / bridge-nf-call-iptables. 

Шаг 2: Установите Docker-CE на CentOS 8

Вам нужно будет добавить Докер репозиторий первым, поскольку его больше нет в списке пакетов по умолчанию, используя следующие dnf config-менеджер команда.

# dnf config-manager --add-repo = https://download.docker.com/linux/centos/docker-ce.repo. 

Также установите containerd.io пакет, который доступен как демон, который управляет полным жизненным циклом контейнера своей хост-системы, из передача и хранение изображений в контейнер, выполнение и контроль в низкоуровневое хранилище, в сетевые вложения и вне.

# dnf install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm. 

Теперь установите последнюю версию Docker-ce упаковка.

# dnf install docker-ce. 

Теперь вы можете включить и запустить службу докеров.

# systemctl включить докер. # systemctl start docker. 

Шаг 3. Установите Kubernetes (Kubeadm) на CentOS 8

Далее вам нужно будет добавить Kubernetes репозитории вручную, так как они не устанавливаются по умолчанию на CentOS 8.

# кошка </etc/yum.repos.d/kubernetes.repo. [кубернетес] name = Kubernetes. baseurl = https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64. включен = 1. gpgcheck = 1. repo_gpgcheck = 1. gpgkey = https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg. EOF.

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

Кубеадм также поддерживает другие функции жизненного цикла кластера, такие как обновления, понижение версии и управление токенами начальной загрузки. Kubeadm также удобен для интеграции с другими инструментами оркестровки, такими как Ansible и Terraform.

Теперь, когда репозиторий пакетов готов, вы можете продолжить и установить Кубеадм упаковка.

# dnf install kubeadm -y 

Когда установка завершится успешно, включите и запустите службу.

# systemctl включить kubelet. # systemctl start kubelet. 

Шаг 4: Создайте Мастер плоскости управления с помощью kubeadm

Мастер Kubernetes, который действует как плоскость управления для кластера работает несколько критически важных служб, необходимых для кластера. Таким образом, процесс инициализации будет выполнять серию предварительных проверок, чтобы убедиться, что машина готова к запуску Kubernetes. Эти предварительные проверки выявляют предупреждения и завершают работу при ошибках. kubeadm init затем загружает и устанавливает компоненты плоскости управления кластером.

Пришло время инициализировать мастер Kubernetes, но перед этим вы должны отключить подкачку, чтобы запустить "kubeadm init«Команда.

# swapoff -a. 

Инициализация Kubernetes master - это полностью автоматизированный процесс, который контролируетсяkubeadm init«Команда, как показано.

# kubeadm init. 
Инициализировать Kubernetes Master
Инициализировать Kubernetes Master

Затем скопируйте следующую команду и сохраните ее где-нибудь, так как позже нам потребуется запустить эту команду на рабочих узлах.

kubeadm присоединиться к 192.168.0.47:6443 --token nu06lu.xrsux0ss0ixtnms5 \ --discovery-token-ca-cert-hash ha256: f996ea35r4353d342fdea2997a1cf8caeddafd6d4360d606db78c8j2314m

Подсказка: Иногда указанная выше команда может вызывать ошибки в переданных аргументах, поэтому, чтобы избежать ошибок, вам необходимо удалить ‘\’ персонаж, и ваша последняя команда будет выглядеть так.

# kubeadm join 192.168.0.47:6443 --token nu06lu.xrsux0ss0ixtnms5 –discovery token-ca-cert-hash sha256: f996ea35r4353d342fdea2997a1cf8caeddafd6d4360d606dbc8jm14f7. 

Один раз Kubernetes успешно инициализирован, вы должны разрешить вашему пользователю начать использовать кластер. В нашем сценарии мы будем использовать пользователя root. Вы также можете запустить кластер с помощью пользователя sudo, как показано.

Использовать корень, запустить:

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

Чтобы использовать пользователь с поддержкой sudo, запустить:

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

Теперь подтвердите, что команда kubectl активирован.

# kubectl получить узлы. 
Проверить статус узлов
Проверить статус узлов

В этот момент вы увидите статус мастер-узла «Не готов’. Это связано с тем, что нам еще предстоит развернуть сеть модулей в кластере.

Сеть pod - это оверлейная сеть для кластера, развернутая поверх существующей сети узлов. Он предназначен для обеспечения возможности подключения через модуль.

Шаг 5. Настройте сеть Pod

Развертывание сетевого кластера - это очень гибкий процесс, зависящий от ваших потребностей, и существует множество доступных вариантов. Поскольку мы хотим, чтобы наша установка была как можно более простой, мы будем использовать Weavenet плагин, который не требует какой-либо конфигурации или дополнительного кода и предоставляет один IP-адрес для каждого модуля, что очень удобно для нас. Если вы хотите увидеть больше вариантов, пожалуйста, отметьте здесь.

Эти команды будут важны для настройки сети модуля.

# экспорт кубевер = $ (версия kubectl | base64 | tr -d '\ n') # kubectl apply -f " https://cloud.weave.works/k8s/net? k8s-version = $ kubever "
Настройка сети Pod
Настройка сети Pod

Теперь, если вы проверите статус своего главного узла, он должен быть "Готовый’.

# kubectl получить узлы. 
Проверить статус главных узлов
Проверить статус главных узлов

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

Добавление рабочих узлов в кластер Kubernetes

Следующие инструкции будут выполнены для каждого рабочий узел при присоединении к кластеру Kubernetes.

Шаг 1. Подготовьте имя хоста, брандмауэр и SELinux

Сначала установите имя хоста на вашем рабочий-узел-1 и рабочий узел-2, а затем добавьте записи хоста в /etc/hosts файл.

# hostnamectl set-hostname 'узел-1' # кошка <> / etc / hosts. 192.168.0.47 мастер-узел. 192.168.0.48 узел-1 рабочий-узел-1. 192.168.0.49 узел-2 рабочий-узел-2. EOF. 

Затем пингуйте свой главный узел от твоего рабочие узлы чтобы подтвердить, что ваш обновленный файл хоста работает нормально, используя команда ping.

# 192.168.0.47. 

Далее отключите SElinux и обновите правила брандмауэра.

# setenforce 0. # sed -i --follow-symlinks 's / SELINUX = enforcing / SELINUX = disabled / g' / etc / sysconfig / selinux. # firewall-cmd --permanent --add-port = 6783 / tcp. # firewall-cmd --permanent --add-port = 10250 / tcp. # firewall-cmd --permanent --add-port = 10255 / tcp. # firewall-cmd --permanent --add-port = 30000-32767 / tcp. # firewall-cmd --reload. # echo '1'> / proc / sys / net / bridge / bridge-nf-call-iptables. 

Шаг 2: настройка Docker-CE и Kubernetes Repo

Сначала добавьте репозиторий Docker с помощью диспетчера конфигурации DNF.

# dnf config-manager --add-repo = https://download.docker.com/linux/centos/docker-ce.repo. 

Затем добавьте containerd.io упаковка.

# dnf install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm. 

После установки этих двух пакетов установите последнюю версию Docker-ce.

# dnf install docker-ce. 

Включите и запустите службу докеров.

# systemctl включить докер. # systemctl start docker. 

Вам нужно будет добавить Kubernetes репозитории вручную, так как они не устанавливаются на CentOS 8.

# кошка </etc/yum.repos.d/kubernetes.repo. [кубернетес] name = Kubernetes. baseurl = https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64. включен = 1. gpgcheck = 1. repo_gpgcheck = 1. gpgkey = https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg. EOF.

Шаг 3. Установите Kubeadm на CentOS 8

Теперь, когда репозиторий пакетов готов, вы можете продолжить и установить Кубеадм.

# dnf install kubeadm -y 

Запустите и включите службу.

# systemctl включить kubelet. # systemctl start kubelet. 

Шаг 4: Присоедините рабочий узел к кластеру Kubernetes

Теперь нам нужен токен, который kubeadm init сгенерирован, чтобы присоединиться к кластеру. Вы можете скопировать и вставить его на свой узел-1 и узел-2 если вы его где-то скопировали.

# kubeadm join 192.168.0.47:6443 --token nu06lu.xrsux0ss0ixtnms5 --discovery-token-ca-cert-hash sha256: f996ea35r4353d342fdea2997a1cf8caeddafd6d4360d606db78c82314m 

Как предложено в последней строке, вернитесь к своему мастер-узел и проверьте, работает ли работник узел-1 и рабочий узел-2 присоединились к кластеру, используя следующую команду.

# kubectl получить узлы. 
Проверить статус всех узлов в кластере Kubernetes
Проверить статус всех узлов в кластере Kubernetes

Если все шаги выполнены успешно, вы должны увидеть узел-1 и узел-2 в состоянии готовности на мастер-узел. На этом этапе вы успешно развернули кластер Kubernetes на CentOS 8.

Рекомендуемое чтение: Как развернуть Nginx в кластере Kubernetes

Некоторые ограничения

Кластер, который мы здесь создали, имеет один Главный узел, и как таковой, если Главный узел сбой, ваш кластер может потерять данные и может потребоваться воссоздание с нуля.

По этой причине я рекомендую настройку высокой доступности.

Как запретить пользователям изменять настройки прокси-сервера в Windows 11
Как запретить пользователям изменять настройки прокси-сервера в Windows 11
on Jul 26, 2023
Скачать последнюю версию Comodo Rescue Disk для ПК (файл ISO)
Скачать последнюю версию Comodo Rescue Disk для ПК (файл ISO)
on Jul 26, 2023
Как исправить неработающий Instagram DM (8 методов)
Как исправить неработающий Instagram DM (8 методов)
on Jul 26, 2023
сертификаты Linuxдистрибутивы LinuxKvmРейдДжангоКрасная ШапкаLfcaкоманды LinuxИнструменты мониторингаКластеризацияРуководствоXenserverЛучшие инструментывеб браузерыDebianFedoraLinux монетный дворЭлектронные книгиRhceCentosМежсетевые экраныКакие новостиLfcsNodejsKali LinuxKubernetesМенеджеры пакетовРедакторыКоманда AwkСед команда
  • сертификаты Linux
  • дистрибутивы Linux
  • Kvm
  • Рейд
  • Джанго
  • Красная Шапка
  • Lfca
  • команды Linux
  • Инструменты мониторинга
  • Кластеризация
  • Руководство
  • Xenserver
  • Лучшие инструменты
  • веб браузеры
  • Debian
  • Fedora
  • Linux монетный двор
  • Электронные книги
© Copyright About Tech 2023