Kubernetes

Настройка кластера Kubernetes в DigitalOcean

Настройка кластера Kubernetes в DigitalOcean

Kubernetes - одна из немногих технологий, с которыми люди сталкиваются не потому, что она сложна и трудна для понимания, а потому, что она разработана для работы на оборудовании серверного уровня и не может быть легко смоделирована на обычном домашнем компьютере. К счастью, существует множество облачных платформ, которые предоставляют доступную инфраструктуру для экспериментов и понимания таких технологий, как Kubernetes.В качестве предварительного условия я рекомендую вам ознакомиться с нашими статьями об архитектуре Kubernetes, а также об узлах и подах, строительных блоках кластера Kubernetes.Хотя для Kubernetes существует множество размещенных решений, мы будем развертывать все с нуля в DigitalOcean, который является решением для облачного хостинга, ориентированным, в частности, на разработчиков.

Экземпляр VPS на этой платформе называется дроплетом. Для запуска Kubernetes вам потребуется как минимум 2 ГБ ОЗУ, и для этой демонстрации мы будем использовать опцию за 20 долларов в месяц. Они также заряжаются по часам, поэтому, если вы поэкспериментируете пару часов, а затем уничтожите все капли, вы в конечном итоге заплатите не более пары долларов.

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


Настройка главного узла

Чтобы настроить главный узел, подключитесь к нему по SSH с использованием общедоступного IP-адреса или используйте консоль, предоставленную DigitalOcean, для доступа к терминалу в качестве пользователя root.

Первые команды - это основные служебные:

$ apt update && apt upgrade -y

Затем мы получаем необходимые ключи gpg и добавляем их в наш список доверенных удаленных репозиториев.

$ curl -s https: // пакеты.облако.Google.com / apt / doc / apt-ключ.gpg | apt-key добавить -
$ cat < /etc/apt/sources.list.d/kubernetes.list
деб http: // apt.Кубернеты.io / kubernetes-xenial main
EOF
$ apt update

Запуск apt update во второй раз увеличит скорость работы системы с официальным репозиторием Kubernetes. Теперь мы устанавливаем необходимые пакеты.

$ apt установить докер.io
#Docker необходим для контейнеризации приложений.
$ apt install kubelet kubeadm kubectl kubernetes-cni

Последняя команда устанавливает несколько пакетов, каждый из которых важен по разным причинам:

  1. Кубеадм: Загружает и инициализирует Kubernetes на узле. Его можно использовать для назначения дроплету роли главного или рабочего узла.
  2. Кубелет: Это фоновый процесс, который разговаривает с главным узлом и выполняет действия, которые он запрашивает.
  3. Kubectl: Это инструмент командной строки, который позволяет разработчикам и операционному персоналу взаимодействовать с кластером Kubernetes и контролировать его.
  4. Kubernetes-cni: Это контейнерный сетевой интерфейс, необходимый для внутренней связи между модулями, а также для внешней связи.

Теперь, когда у нас установлены все необходимые пакеты, пришло время инициализировать главный узел. Выполните следующее:

$ kubeadm init --pod-network-cidr = 10.244.0.0/16 --
адрес-рекламы-apiserver $ DROPLET_IP_ADDRESS

Обязательно замените последнюю переменную $ DROPLET_IP_ADDRESS на публичный IP-адрес вашего главного узла. Если бы все работало нормально, это был бы ваш результат:

Убедитесь, что вы скопировали последнюю строку «kubeadm join -token…», поскольку она содержит необходимые учетные данные безопасности, которые потребуются рабочему узлу для присоединения к кластеру.

На каждом главном узле работает сервер API, который вышеуказанная команда предоставит сети модулей, а также интерфейсу командной строки, kubectl, а также к дополнительному веб-интерфейсу.

Примечание: Вы можете использовать общедоступный IP-адрес вашей капли для kubeadm init команда, но если вы хотите изолировать свой главный узел от остального мира, вы можете использовать функцию частного IP DigitalOcean, которая будет использоваться разными модулями на разных узлах для общения друг с другом. Позже вы сможете предоставлять только интерфейсные сервисы, когда ваш проект будет реализован.

Хорошо, последний шаг перед тем, как мы увидим отчет о работоспособности на нашем главном узле. Вы можете запустить:

$ mkdir -p $ ГЛАВНАЯ /.Кубе
$ cp / etc / kubernetes / admin.conf $ HOME /.Кубе
$ chown $ (id -u): $ (id -g) $ HOME / администратор.conf
$ kubectl create -f
https: // raw.githubusercontent.com / coreos / flannel / master / Documentation / kube-flannel.yml --namespace = система кубов

Flannel устанавливается последней командой, которая обеспечивает сетевые функции уровня 3, необходимые для контейнеров.
Теперь мы можем бежать,

$ kubectl получить узлы
$ kubectl get pods -all-namespaces

Это покажет нам состояние всех узлов и всех модулей в этом кластере, который в настоящее время является только одним. Настало время настроить вторую каплю и преобразовать ее в рабочий узел Kubernetes.


Настройка миньонов или рабочих узлов

Многие конфигурации миньонов будут повторением того, что мы сделали выше, это от Кубеадм команда, что дорога начнет расходиться.

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

$ apt install kubelet kubeadm kubectl kubernetes-cni

Затем, чтобы инициализировать дроплет как узел кубернетов, запустите команду, сгенерированную на главном узле, после завершенияkubeadm init.

$ kubeadm join --token 3c37b5.08ed6cdf2e4a14c9
159.89.25.245: 6443 - токен-открытия-CA-сертификат-хеш
sha256: 52f99432eb33bb23ff86f62255ecbb

Обратите внимание, что контент, следующий за вашим флагом токена, IP-адресом и контрольной суммой sha256, в вашем случае будет сильно отличаться. это оно! У вас есть новый узел в составе кластера Kubernetes. Вы можете подтвердить это, перечислив узлы и модули, которые работают в этом кластере.


Заключение

Пришло время развернуть свой докеризированный приложения в этом кластере и не стесняйтесь раскручивать больше капель и использовать kubeadm присоединиться для добавления новых участников в кластер Kubernetes.

Игры HD Remastered для Linux, ранее не выпускавшиеся для Linux
Многие разработчики и издатели игр придумывают HD-ремастеры старых игр, чтобы продлить жизнь франшизы, порадовать фанатов, требующих совместимости с с...
Как использовать AutoKey для автоматизации игр под Linux
AutoKey - это утилита автоматизации рабочего стола для Linux и X11, запрограммированная на Python 3, GTK и Qt. Используя его функции сценариев и MACRO...
Как показать счетчик FPS в играх для Linux
Игры для Linux получили серьезный толчок, когда Valve объявила о поддержке Linux для клиента Steam и своих игр в 2012 году. С тех пор многие игры AAA ...