Пожертвовано Google сообществу Opensource, Kubernetes теперь стал предпочтительным инструментом управления контейнерами. Он может управлять и координировать не только время выполнения докеров, но и контейнеры и Rkt время выполнения.
Типичный Kubernetes кластер обычно имеет главный узел и несколько рабочих узлов или миньонов. Затем рабочие узлы управляются с главного узла, что обеспечивает управление кластером из центральной точки.
Также важно отметить, что вы также можете развернуть кластер Kubernetes с одним узлом, который обычно рекомендуется для очень легких непроизводственных рабочих нагрузок. Для этого вы можете использовать Minikube, который представляет собой инструмент, запускающий одноузловой кластер Kubernetes на виртуальной машине на вашем узле.
Рекомендуемое чтение: Как установить кластер Kubernetes на CentOS 8
В этом руководстве мы рассмотрим многоузловой Kubernetes установка кластера на CentOS 7 Linux. Это руководство основано на командной строке, поэтому вам потребуется доступ к окну терминала.
Наш трехузловой кластер будет выглядеть примерно так:
Для Kubernetes для работы вам понадобится движок контейнеризации. Для этой установки мы будем использовать докер поскольку он самый популярный.
Следующие шаги будут выполняться на Мастер-узел.
На главном узле задайте имя хоста. Если у вас нет DNS-сервера, обновите /etc/hosts файл.
# hostnamectl set-hostname master-node. # кошка <> / etc / hosts. 10.128.0.27 мастер-узел. 10.128.0.29 узел-1 рабочий-узел-1. 10.128.0.30 узел-2 рабочий-узел-2. EOF.
Вы можете пинговать рабочий-узел-1 и рабочий узел-2 чтобы проверить, в порядке ли ваш обновленный файл хоста, используя команда ping.
# пинг 10.128.0.29. # пинг 10.128.0.30.
Далее отключите SElinux и обновите правила брандмауэра.
# setenforce 0. # sed -i --follow-symlinks 's / SELINUX = enforcing / SELINUX = disabled / g' / etc / sysconfig / selinux. # перезагружать.
Установите следующие правила брандмауэра для портов. Убедитесь, что каждый команда firewall-cmd, возвращает успех.
# 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.
Вам нужно будет добавить Kubernetes репозитории вручную, так как они не устанавливаются по умолчанию на CentOS 7.
кошка </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.
Теперь, когда репозиторий пакетов готов, вы можете продолжить и установить Кубеадм и докер пакеты.
# yum install kubeadm docker -y
Когда установка завершится успешно, включите и запустите обе службы.
# systemctl включить kubelet. # systemctl start kubelet. # systemctl включить докер. # systemctl start docker.
Теперь мы готовы инициализировать мастер кубернетов, но перед этим вам нужно отключить своп, чтобы запустить «kubeadm init«Команда.
# swapoff -a.
Инициализация мастера Kubernetes - это полностью автоматизированный процесс, которым управляет «kubeadm init«Команда, которую вы будете запускать.
# kubeadm init.
Вы можете скопировать последнюю строку и сохранить ее где-нибудь, потому что вам нужно будет запустить ее на рабочие узлы.
kubeadm join 10.128.0.27:6443 --token nu06lu.xrsux0ss0ixtnms5 \ --discovery-token-ca-cert-hash sha256: f996ea3564e6a07fdea2997a1cf8caeddafd6d4360d606dbcd4125146884
Подсказка: Иногда эта команда может жаловаться на аргументы (аргументы) прошел, поэтому отредактируйте его, чтобы избежать ошибок. Итак, вы удалите ‘\’
персонаж, сопровождающий - жетон
и ваша последняя команда будет выглядеть так.
kubeadm join 10.128.0.27:6443 --token nu06lu.xrsux0ss0ixtnms5 --discovery-token-ca-cert-hash sha256: f996ea3564e6a07fdea2997a1cf8caeddafd6d4360d606dbc82314 .688425
После инициализации Kubernetes успешно, вам нужно будет разрешить вашему пользователю начать использовать кластер. В нашем случае мы хотим запустить эту установку как корень user, поэтому мы продолжим и запустим эти команды от имени пользователя root. Вы можете перейти на пользователь с поддержкой sudo вы предпочитаете и запускаете нижеприведенное с помощью 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 Network - это оверлейная сеть для кластера, развернутая поверх существующей сети узлов. Он предназначен для обеспечения возможности подключения через модуль.
Развертывание сетевого кластера - это очень гибкий процесс, зависящий от ваших потребностей, и существует множество доступных вариантов. Поскольку мы хотим, чтобы наша установка была как можно более простой, мы будем использовать Weavenet плагин, который не требует какой-либо конфигурации или дополнительного кода и предоставляет один IP-адрес для каждого модуля, что очень удобно для нас. Если вы хотите увидеть больше вариантов, пожалуйста проверьте здесь.
Эти команды будут важны для настройки сети модуля.
# экспорт кубевер = $ (версия kubectl | base64 | tr -d '\ n') # kubectl apply -f " https://cloud.weave.works/k8s/net? k8s-version = $ kubever "
Теперь, если вы проверите статус своего мастер-узел, должен быть 'Готовый’.
# kubectl получить узлы.
Далее мы добавляем рабочие узлы в кластер.
Следующие шаги будут выполняться на рабочие узлы. Эти шаги следует выполнять на каждом рабочий узел при присоединении к Kubernetes кластер.
На ваше рабочий-узел-1 и рабочий узел-2, установите имя хоста и, если у вас нет DNS-сервера, также обновите главный и рабочий узлы на /etc/hosts файл.
# hostnamectl set-hostname 'узел-1' # кошка <> / etc / hosts. 10.128.0.27 мастер-узел. 10.128.0.29 узел-1 рабочий-узел-1. 10.128.0.30 узел-2 рабочий-узел-2. EOF.
Вы можете пинговать мастер-узел чтобы проверить, в порядке ли ваш обновленный файл хоста.
Далее отключите SElinux и обновите правила брандмауэра.
# setenforce 0. # sed -i --follow-symlinks 's / SELINUX = enforcing / SELINUX = disabled / g' / etc / sysconfig / selinux.
Установите следующие правила брандмауэра для портов. Убедитесь, что все команды firewall-cmd возвращают успех.
# 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.
Вам нужно будет добавить Kubernetes репозитории вручную, так как они не устанавливаются на CentOS 7.
кошка </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.
Теперь, когда репозиторий пакетов готов, вы можете продолжить и установить Кубеадм и докер пакеты.
# yum install kubeadm docker -y
Запустите и включите обе службы.
# systemctl включить докер. # systemctl start docker. # systemctl включить kubelet. # systemctl start kubelet.
Теперь нам нужен токен, который Кубеадм init сгенерирован, чтобы присоединиться к кластеру. Вы можете скопировать и вставить его на свой узел-1 и узел-2 если вы его где-то скопировали.
# kubeadm join 10.128.0.27:6443 --token nu06lu.xrsux0ss0ixtnms5 --discovery-token-ca-cert-hash sha256: f996ea3564e6a07fdea2997a1cf8caeddafd6d4360d606dbc823146884
Как предложено в последней строке, вернитесь к своему мастер-узел и проверьте, если рабочий узел-1 и рабочий узел-2 присоединились к кластеру, используя следующую команду.
# kubectl получить узлы.
Если все шаги выполнены успешно, вы должны увидеть узел-1 и узел-2 в состоянии готовности на мастер-узел.
Рекомендуемое чтение: Как развернуть Nginx в кластере Kubernetes
На этом этапе мы успешно завершили установку Kubernetes кластер на Centos 7 и мы успешно взошли на борт двух рабочие узлы. Теперь вы можете приступить к созданию своих модулей и развертыванию своих сервисов.