Как установить Ubuntu Kubernetes

Обновлено: 30.06.2024

Узел в Kubernetes относится к серверу. Главный узел — это сервер, который управляет состоянием кластера. Рабочие узлы — это серверы, на которых выполняются рабочие нагрузки. Обычно это контейнерные приложения и службы.

В этом руководстве описаны этапы установки и развертывания кластера Kubernetes, состоящего из двух узлов, в Ubuntu 20.04. Как уже упоминалось, наличие двух узлов — это самая базовая конфигурация при работе с Kubernetes. У вас также есть возможность добавить больше рабочих узлов, как только вы поймете основы. Далее мы покажем вам, как связать два сервера, чтобы главный узел мог управлять рабочим узлом.

Предпосылки

Сетевое подключение — серверы в кластере должны иметь возможность обмениваться данными. Когда вы развертываете свои виртуальные машины из CloudSigma, они по умолчанию будут подключены к Интернету с общедоступным IP-адресом. Если вы работаете в локальной сети, возможно, вам придется отредактировать файл /etc/hosts на каждом сервере и связать их соответствующим образом.

Шаг 1. Установите Kubernetes

После этого обновите узлы:

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

kubeadm — часть проекта Kubernetes, помогающая инициализировать кластер Kubernetes. Введите следующую команду, чтобы установить kubeadm:

kubectl — инструмент командной строки Kubernetes, позволяющий запускать команды внутри кластеров Kubernetes. Выполните следующую команду, чтобы установить kubectl:

kubernetes-cni — обеспечивает сетевое взаимодействие внутри контейнеров, гарантируя, что контейнеры могут взаимодействовать и обмениваться данными. Выполните следующую команду для установки:

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

Шаг 2. Отключение подкачки памяти

установить Kubernetes fstab swap отключить

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

Шаг 3. Установка уникальных имен хостов

На рабочем узле выполните следующую команду:

Шаг 4. Предоставление Iptables возможности видеть перенаправленный трафик

При желании вы можете явно загрузить его с помощью команды:

Теперь вы можете запустить эту команду, чтобы установить значение 1:

Шаг 5. Изменение драйвера Docker Cgroup

После этого мы можем приступить к самому интересному — развертыванию кластера Kubernetes!

Шаг 6. Инициализация главного узла Kubernetes

Если вы выполните приведенную выше команду, а ваша система не соответствует ожидаемым требованиям, таким как минимальный объем ОЗУ или ЦП, как описано в разделе «Предварительные условия», вы получите предупреждение, и кластер не запустится:

установить Kubernetes InitError

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

Canonical Kubernetes — это чисто восходящая инфраструктура, работающая в любом облаке, от "голого железа" до общедоступного и периферийного. Развертывайте одноузловые и многоузловые кластеры с Charmed Kubernetes и MicroK8 для поддержки оркестровки контейнеров, от тестирования до производства. Оба дистрибутива приносят последние инновации от сообщества Kubernetes в течение недели после выпуска исходной версии, что дает время для обучения, экспериментов и повышения квалификации.

Как развернуть Kubernetes

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

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

(i). Используйте платформу Ubuntu для запуска рабочих узлов во всех общедоступных облаках (AKS, EKS и GKE)

Как установить Kubernetes

Один узел Kubernetes с MicroK8

MicroK8s устанавливает один узел, сертифицированный CNCF кластер Kubernetes за считанные секунды

MicroK8s — это легкая, не требующая операций Kubernetes для Linux, Windows и macOS. Одна команда устанавливает все восходящие сервисы Kubernetes и их зависимости. Благодаря поддержке x86 и ARM64 MicroK8 работает как на локальных рабочих станциях, так и на периферийных устройствах и устройствах Интернета вещей.

Выберите платформу для шагов установки

Установите MicroK8s в Linux

Нет команды привязки? Готовьтесь к снимкам

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

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

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

Проверка состояния во время запуска Kubernetes

Включите нужные службы

Попробуйте включить microk8s --help, чтобы получить список доступных служб и дополнительных функций. microk8s disable ‹имя› отключает службу.

Начать использовать Kubernetes

Если вы в основном используете MicroK8, вы можете сделать наш kubectl по умолчанию в вашей командной строке с псевдонимом mkctl="microk8s kubectl" . Поскольку это стандартный исходный kubectl, вы также можете управлять с его помощью другими кластерами Kubernetes, указав соответствующий файл kubeconfig с помощью аргумента «--kubeconfig».

Доступ к панели управления Kubernetes

Запускайте и останавливайте Kubernetes для экономии заряда батареи

Kubernetes — это набор системных служб, которые постоянно взаимодействуют друг с другом. Если вам не нужно, чтобы они работали в фоновом режиме, вы сэкономите заряд батареи, остановив их. microk8s start и microk8s stop сделают всю работу за вас

Загрузить установщик для Windows

Запустите программу установки

Открыть командную строку

Проверка состояния во время запуска Kubernetes

Включите нужные службы

Попробуйте включить microk8s --help, чтобы получить список доступных служб и дополнительных функций. microk8s disable ‹имя› отключает службу.

Начать использовать Kubernetes

Если вы в основном используете MicroK8, вы можете запустить родную версию kubectl для Windows из командной строки.

Доступ к панели управления Kubernetes

Запускайте и останавливайте Kubernetes для экономии заряда батареи

Kubernetes — это набор системных служб, которые постоянно взаимодействуют друг с другом. Если вам не нужно, чтобы они работали в фоновом режиме, вы сэкономите заряд батареи, остановив их. microk8s start и microk8s stop сделают всю работу за вас.

Установите MicroK8s на macOS

У вас нет команды brew? Загрузите его с веб-сайта Homebrew.

Проверка состояния во время запуска Kubernetes

Включите нужные службы

Начать использовать Kubernetes

Если вы в основном используете MicroK8, вы можете запустить собственную версию kubectl для macOS из командной строки.

Доступ к панели управления Kubernetes

Запускайте и останавливайте Kubernetes для экономии заряда батареи

Kubernetes — это набор системных служб, которые постоянно взаимодействуют друг с другом. Если вам не нужно, чтобы они работали в фоновом режиме, вы сэкономите заряд батареи, остановив их. microk8s start и microk8s stop сделают всю работу за вас

Многоузловые кластеры

Charmed Kubernetes устанавливает сертифицированные CNCF кластеры Kubernetes в облаках

Charmed Kubernetes – это полностью автоматизированный подход к установке и управлению Kubernetes, основанный на моделях, от "голого железа" до облака. Создайте свое облако Kubernetes с нуля, интегрируйте его с вашими любимыми инструментами и создавайте многооблачные топологии.

Выберите платформу для шагов установки

Эти инструкции представляют собой полный набор команд, которые необходимо ввести в терминал для установки Charmed Kubernetes на локальном компьютере с LXD. Имейте в виду, что полная установка Charmed Kubernetes рекомендуется только для машины с 32 ГБ ОЗУ и 250 ГБ на твердотельном накопителе.

Установить LXD

LXD — это системный контейнер и гипервизор виртуальных машин, который позволяет создавать локальное облако. Его можно установить с помощью Snap-пакета.

Нет команды привязки? Готовьтесь к снимкам

Инициализировать LXD

  • Сеть: НЕ включайте сеть ipv6 на интерфейсе моста.
  • Пул хранилищ: используйте тип хранилища «каталог».

Установить Джуджу

Juju – это инструмент для развертывания, настройки и эксплуатации сложного программного обеспечения в общедоступных или частных облаках. Его можно установить с помощью оснастки:

Добавить контроллер Джуджу

Контроллер Juju используется для управления программным обеспечением, развернутым через Juju, от развертывания до обновлений и операций второго дня. Один контроллер Juju может управлять несколькими проектами или рабочими пространствами, которые в Juju называются «моделями».

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

Добавить модель Kubernetes

Модель содержит определенное развертывание. Рекомендуется создавать новую специально для каждого развертывания.

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

Развертывание Kubernetes

Разверните пакет Kubernetes в модели. Это добавит экземпляры в модель и развернет необходимые приложения. Это может занять до 20 минут в зависимости от вашего компьютера.

Контролировать развертывание

Сейчас Juju занята созданием экземпляров, установкой программного обеспечения и соединением различных частей кластера, что может занять несколько минут. Вы можете следить за происходящим, запустив:

Чтобы просмотреть последние двадцать сообщений журнала для модели «k8s»:

Начните использовать свой кластер!

Поздравляем! У вас есть настроенный и работающий кластер Kubernetes — теперь давайте его использовать! По приведенной ниже ссылке можно перейти к руководству по работе с подробным описанием некоторых общих действий, которые необходимо выполнить в дальнейшем:

Эти инструкции представляют собой полный набор команд, которые необходимо ввести в терминал для установки Charmed Kubernetes на AWS.

Установить Джуджу

Juju – это инструмент для развертывания, настройки и эксплуатации сложного программного обеспечения в общедоступных или частных облаках. Его можно установить с помощью оснастки:

Найдите свое облако

Джуджу хорошо знает многие публичные облака, такие как AWS, Azure и Google. Вы можете увидеть, какие из них готовы к использованию, выполнив эту команду:

Добавить облачные учетные данные

В большинстве облачных сервисов требуются учетные данные, чтобы облако знало, какие операции авторизованы, поэтому вам нужно будет предоставить их для Juju. Команда add-credentials предлагает простой пошаговый мастер для подключения Juju к вашему облаку. Другие варианты доступны здесь.

Добавить контроллер Джуджу

Контроллер Juju используется для управления программным обеспечением, развернутым через Juju, от развертывания до обновлений и операций второго дня. Один контроллер Juju может управлять несколькими проектами или рабочими пространствами, которые в Juju называются «моделями».

Добавить модель Kubernetes

Модель содержит определенное развертывание. Рекомендуется создавать новую специально для каждого развертывания.

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

Развертывание Kubernetes

Разверните пакет Kubernetes в модели. Это добавит экземпляры в модель и развернет необходимые приложения. Это может занять до 20 минут в зависимости от вашего компьютера.

Контролировать развертывание

Сейчас Juju занята созданием экземпляров, установкой программного обеспечения и соединением различных частей кластера, что может занять несколько минут. Вы можете следить за происходящим, запустив:

Чтобы просмотреть последние двадцать сообщений журнала для модели «k8s»:

Начните использовать свой кластер!

Поздравляем! У вас есть настроенный и работающий кластер Kubernetes — теперь давайте его использовать! По приведенной ниже ссылке можно перейти к руководству по работе с подробным описанием некоторых общих действий, которые необходимо выполнить в дальнейшем:

Эти инструкции представляют собой полный набор команд, которые необходимо ввести в терминал для установки Charmed Kubernetes в Azure.

Установить Джуджу

Juju – это инструмент для развертывания, настройки и эксплуатации сложного программного обеспечения в общедоступных или частных облаках. Его можно установить с помощью оснастки:

Найдите свое облако

Джуджу хорошо знает многие публичные облака, такие как AWS, Azure и Google. Вы можете увидеть, какие из них готовы к использованию, выполнив эту команду:

Добавить облачные учетные данные

В большинстве облачных сервисов требуются учетные данные, чтобы облако знало, какие операции авторизованы, поэтому вам нужно будет предоставить их для Juju. Вы можете войти в свою учетную запись Azure и получить свои учетные данные с помощью Azure CLI. Затем вы можете добавить свои учетные данные в Juju:

Добавить контроллер Джуджу

Контроллер Juju используется для управления программным обеспечением, развернутым через Juju, от развертывания до обновлений и операций второго дня. Один контроллер Juju может управлять несколькими проектами или рабочими пространствами, которые в Juju называются «моделями».

Добавить модель Kubernetes

Модель содержит определенное развертывание. Рекомендуется создавать новую специально для каждого развертывания.

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

Развертывание Kubernetes

Разверните пакет Kubernetes в модели. Это добавит экземпляры в модель и развернет необходимые приложения. Это может занять до 20 минут в зависимости от вашего компьютера.

Контролировать развертывание

Сейчас Juju занята созданием экземпляров, установкой программного обеспечения и соединением различных частей кластера, что может занять несколько минут. Вы можете следить за происходящим, запустив:

Чтобы просмотреть последние двадцать сообщений журнала для модели «k8s»:

Начните использовать свой кластер!

Поздравляем! У вас есть настроенный и работающий кластер Kubernetes — теперь давайте его использовать! По приведенной ниже ссылке можно перейти к руководству по работе с подробным описанием некоторых общих действий, которые необходимо выполнить в дальнейшем:

Эти инструкции представляют собой полный набор команд, которые необходимо ввести в терминал для установки Charmed Kubernetes на GCP.

Установить Джуджу

Juju – это инструмент для развертывания, настройки и эксплуатации сложного программного обеспечения в общедоступных или частных облаках. Его можно установить с помощью оснастки:

Найдите свое облако

Джуджу хорошо знает многие публичные облака, такие как AWS, Azure и Google. Вы можете увидеть, какие из них готовы к использованию, выполнив эту команду:

Добавить облачные учетные данные

В большинстве облачных сервисов требуются учетные данные, чтобы облако знало, какие операции авторизованы, поэтому вам нужно будет предоставить их для Juju. Другие варианты доступны здесь.

Добавить контроллер Джуджу

Контроллер Juju используется для управления программным обеспечением, развернутым через Juju, от развертывания до обновлений и операций второго дня. Один контроллер Juju может управлять несколькими проектами или рабочими пространствами, которые в Juju называются «моделями».

Добавить модель Kubernetes

Модель содержит определенное развертывание. Рекомендуется создавать новую специально для каждого развертывания.

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

Развертывание Kubernetes

Разверните пакет Kubernetes в модели. Это добавит экземпляры в модель и развернет необходимые приложения. Это может занять до 20 минут в зависимости от вашего компьютера.

Контролировать развертывание

Сейчас Juju занята созданием экземпляров, установкой программного обеспечения и соединением различных частей кластера, что может занять несколько минут. Вы можете следить за происходящим, запустив:

Чтобы просмотреть последние двадцать сообщений журнала для модели «k8s»:

Начните использовать свой кластер!

Поздравляем! У вас есть настроенный и работающий кластер Kubernetes — теперь давайте его использовать! По приведенной ниже ссылке можно перейти к руководству по работе с подробным описанием некоторых общих действий, которые необходимо выполнить в дальнейшем:

Чтобы создать кластер из двух или более уже запущенных экземпляров MicroK8s, используйте команду microk8s add-node. Начиная с MicroK8s 1.19, кластеризация из трех и более узлов автоматически обеспечивает высокую доступность.

Экземпляр MicroK8s, на котором выполняется команда, будет содержать плоскость управления Kubernetes:

Команда add-node выводит команду соединения microk8s, которую следует выполнить на экземпляре(ах) MicroK8s, который вы хотите присоединить к кластеру (НЕ НА УЗЛЕ, ОТ КОТОРОГО ВЫ ЗАПУСТИЛИ add-node). Например:

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

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

Kubernetes – это инструмент с открытым исходным кодом для автоматизации развертывания, масштабирования и управления контейнерными приложениями. В этом руководстве вы шаг за шагом узнаете, как установить Kubernetes на компьютер с Ubuntu и запустить свой первый контейнер.

Оглавление

Предпосылки для обучения

Этот пост будет пошаговым руководством. Чтобы продолжить, убедитесь, что у вас есть два компьютера с Ubuntu 14.04.4 LTS или более поздней версии с установленным Docker. В этом руководстве используется Ubuntu 18.04.5 LTS с Docker 19.03.8, установленным на каждом компьютере.

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

Хости Ubuntu, используемые в руководстве, будут называться MASTER с IP-адресом 10.0.0.200 для главного узла и WORKER для рабочего узла.

Настройка предварительных требований Kubernetes

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

Для начала откройте свой любимый SSH-клиент, подключитесь к MASTER и следуйте инструкциям.

<р>1. (Необязательно) Назначьте имя хоста master-node для MASTER, выполнив команду hostnamectl. Вам не нужно переименовывать узлы, но это гарантирует, что все ваши узлы будут иметь уникальное имя хоста, которое будет легче идентифицировать при работе с кластером.

Назначить имя хоста рабочего узла для WORKER.

<р>2. (Необязательно) Затем запустите команду hostname, чтобы убедиться, что вы успешно обновили имя хоста. Если hostname возвращает ожидаемое имя хоста, все готово.

Обновление имя хоста

Обновление имени хоста

<р>3. Затем запустите команду sudo apt update, чтобы убедиться, что в Ubuntu есть все последние пакеты, доступные для установки. Вы должны сделать это, чтобы убедиться, что когда придет время, apt сможет найти все необходимые репозитории пакетов.

Обновление пакета Репозитории последней версии

Обновление репозиториев пакетов до последней версии

Хотя в этом руководстве используется пользователь root, обычно рекомендуется использовать менее привилегированную учетную запись, которая является членом группы sudoers.

<р>5. Запустите curl, чтобы загрузить и добавить необходимый ключ безопасности GPG с ключом apt для аутентификации в хранилище пакетов Kubernetes позже. В случае успеха вы должны получить ответ OK в своем терминале.

<р>6. Теперь запустите команду apt-add-repository, чтобы добавить репозиторий пакетов Kubernetes в Ubuntu. Вы должны выполнить этот шаг, потому что по умолчанию репозиторий Kubernetes отсутствует в файле /etc/apt/sources.list.

Добавление Репозиторий Kubernetes в каждой системе Ubuntu

Добавление репозитория Kubernetes в каждую систему Ubuntu

<р>7. Наконец, снова запустите команду sudo apt update, чтобы принудительно прочитать новый список репозиториев пакетов и убедиться, что все последние пакеты доступны для установки.

<р>8. Выполните шаги 1–7 также на WORKER.

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

Теперь, когда у вас установлены необходимые пакеты как на MASTER, так и на WORKER, пришло время настроить Kubernetes. Kubernetes состоит из трех пакетов/инструментов: kubeadm, kubelet и kubectl. Каждый из этих пакетов содержит все двоичные файлы и конфигурации, необходимые для настройки кластера Kubernetes.

Предполагая, что вы все еще подключены к ГЛАВНОМУ через SSH:

<р>1. Запустите команду apt-get install, чтобы установить пакеты kubeadm, kubectl и kubelet.

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

Установка Пакет/инструмент kubeadm kubelet kubectl на каждом компьютере с Ubuntu

Установка пакета/инструмента kubeadm kubelet kubectl на каждый компьютер с Ubuntu

<р>2. Запустите каждый ранее установленный пакет с параметром версии. Приведенный ниже фрагмент кода для простоты объединяет все команды в одну строку.

Если все пойдет хорошо, приведенный выше набор команд должен вернуть версию kubeadm, строку Kubernetes vX.XX.X для kubelet и версию клиента, представляющую версию для kubectl.

Проверьте версия каждого из инструментов на каждой машине». ширина=

Проверьте версию каждого инструмента на каждом компьютере.

<р>3. Теперь повторите первый и второй шаги для WORKER.

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

К настоящему времени у вас должен быть установлен Kubernetes как на главном узле (MASTER), так и на рабочем узле (WORKER). Но Kubernetes в Ubuntu не приносит большой пользы, если он не работает. Теперь вам нужно инициализировать кластер на MASTER.

Предполагая, что вы все еще подключены к ГЛАВНОМУ через SSH:

<р>1. Запустите приведенную ниже команду kubeadm init, чтобы инициализировать кластер Kubernetes. Приведенная ниже команда сообщает Kubernetes IP-адрес, по которому находится его kube-apiserver, с параметром --apiserver-advertise-address. В этом случае этот IP-адрес является главным узлом.

Приведенная ниже команда также определяет диапазон IP-адресов для использования в сети pod с помощью параметра -pod-network-cidr. Сеть модулей позволяет модулям взаимодействовать друг с другом. Если настроить сеть pod таким образом, главный узел автоматически назначит IP-адреса каждому узлу.

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

Обязательно скопируйте две команды, выделенные синим цветом. Эти команды понадобятся вам позже для присоединения рабочего узла к кластеру.

Kubernetes инициализирован

Инициализация Kubernetes

<р>2. Запустите первые выделенные команды окна на шаге 1 сейчас на главном узле.Эти команды заставляют Kubernetes работать под учетной записью без полномочий root из соображений безопасности.

<р>3. Теперь подключитесь к рабочему узлу по SSH и запустите команду соединения kubeadm, как показано выше во втором выделенном поле на шаге 1.

Эта команда присоединяет рабочий узел к кластеру. Значения --token и --discovery-token-ca-cert-hash генерируются главным узлом на шаге 1, чтобы разрешить рабочему узлу безопасно подключаться к главному узлу и проверить, что открытый ключ корневого центра сертификации один и тот же. как тот, который принадлежит главному узлу.

Kubernetes рабочий узел присоединился к кластеру

Рабочий узел Kubernetes присоединился к кластеру

<р>4. Затем запустите команду kubectl на главном узле, чтобы убедиться, что рабочий узел успешно добавлен в кластер. В случае успеха вы должны увидеть, что главный и рабочий узлы отображаются со СТАТУСОМ «Не готов».

У узлов отображается состояние NotReady, поскольку вы еще не настроили сеть для их связи.

Проверка узлов в кластере Kubernetes

Проверка узлов в кластере Kubernetes

<р>5. Запустите команду kubectl apply, чтобы загрузить популярную конфигурацию YAML сети модулей и развернуть сеть модулей на главном узле. Создание сети модулей устанавливает сетевое подключение между двумя модулями в двух разных узлах.

Kubernetes позволяет настраивать сети модулей с помощью файлов конфигурации YAML. Одна из самых популярных сетей pod называется Flannel. Фланель отвечает за выделение IP-адреса в аренду каждому узлу.

Файл Flannel YAML содержит различные настройки, необходимые для настройки сети модулей.

Установка Сетевое соединение между двумя ГЛАВНЫМ И РАБОЧИМ

Установление сетевого подключения между двумя ГЛАВНЫМ И РАБОЧИМ

<р>6. Теперь снова запустите kubectl get nodes, чтобы убедиться, что оба узла показывают СТАТУС готовности на главном узле.

проверьте оба узлы

проверить оба узла

Запуск вашего первого приложения в Kubernetes

Теперь у вас должна быть настроена полностью работающая среда Kubernetes. Прекрасная работа! Работающий кластер Kubernetes — это здорово, но от него мало пользы, пока вы не развернете на нем несколько контейнеров.

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

Предполагая, что вы все еще подключены к ГЛАВНОМУ через SSH:

<р>1. Запустите команду kubectl create deployment, чтобы создать конфигурацию развертывания. Развертывания — это то, как Kubernetes создает и обновляет экземпляры приложений. Развертывание также позволяет Kubernetes постоянно отслеживать приложение и устранять любые проблемы с помощью механизма самовосстановления.

Приведенная ниже команда создает конфигурацию развертывания с именем nginx , загружает образ nginx Docker из Docker Hub и создает модуль (и контейнер внутри) на рабочем узле.

<р>2. Теперь запустите kubectl get deploys, чтобы убедиться, что Kubernetes создал развертывание.

<р>3. Затем запустите kubectl create service, чтобы создать службу. Служба — это способ, с помощью которого Kubernetes предоставляет доступ к приложению по сети, работающему в одном или нескольких модулях.

Приведенная ниже команда создает сетевую службу для предоставления TCP-порта 80 развертывания nginx (и модуля) за пределами кластера.

<р>4. Запустите команду kubectl get svc, чтобы убедиться, что Kubernetes успешно создал службу. Команда kubectl get svc — отличный способ получить обзор всех сервисов Kubernetes.

Вы также можете просмотреть дополнительную информацию о сервисе, запустив kubectl описать сервисы nginx .

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

Проверка сервис

Проверка сервиса

<р>5. Поскольку модуль, в котором запущено приложение, теперь доступен через порт 31414 через службу, запустите curl, чтобы убедиться, что вы можете открыть веб-страницу NGINX по умолчанию.

Тестирование службы NGINX на ГЛАВНОМ узле, прослушивающем порт 31414

Тестирование службы NGINX на ГЛАВНОМ узле, прослушивающем порт 31414

Заключение

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

Теперь, когда у вас настроен кластер Kubernetes, какие приложения вы собираетесь развернуть рядом с ним?

Ненавидите рекламу? Хотите поддержать писателя? Получите многие из наших руководств в виде руководства по ATA.

Ещё от ATA Learning & Partners

Резервное копирование Office 365 для чайников

Лучшее руководство по защите данных Microsoft Office 365. Изучите готовые функции безопасности.

Руководства ATA

ATA известна своими высококачественными письменными учебными пособиями в виде сообщений в блогах. Поддержите ATA с помощью электронных книг ATA Guidebook PDF, доступных в автономном режиме и без рекламы!


На этой странице показано, как установить набор инструментов kubeadm. Информацию о том, как создать кластер с помощью kubeadm после выполнения этого процесса установки, см. на странице Использование kubeadm для создания кластера.

Прежде чем начать

  • Совместимый хост Linux. Проект Kubernetes предоставляет общие инструкции для дистрибутивов Linux на основе Debian и Red Hat, а также для дистрибутивов без диспетчера пакетов.
  • 2 ГБ или более ОЗУ на каждый компьютер (меньше не останется места для ваших приложений).
  • 2 процессора или более.
  • Полное сетевое подключение между всеми машинами в кластере (подойдет общедоступная или частная сеть).
  • Уникальное имя хоста, MAC-адрес и product_uuid для каждого узла. Подробнее см. здесь.
  • На ваших компьютерах открыты определенные порты. Подробнее см. здесь.
  • Обмен отключен. Вы ДОЛЖНЫ отключить своп, чтобы кублет работал правильно.

Убедитесь, что MAC-адрес и product_uuid уникальны для каждого узла

  • Вы можете получить MAC-адреса сетевых интерфейсов с помощью команды ip link или ifconfig -a
  • product_uuid можно проверить с помощью команды sudo cat /sys/class/dmi/id/product_uuid

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

Проверьте сетевые адаптеры

Если у вас более одного сетевого адаптера и ваши компоненты Kubernetes недоступны по маршруту по умолчанию, мы рекомендуем добавить IP-маршрут(ы), чтобы адреса кластера Kubernetes проходили через соответствующий адаптер.

Разрешить iptables видеть трафик через мост

Убедитесь, что модуль br_netfilter загружен. Это можно сделать, запустив lsmod | grep br_netfilter . Чтобы загрузить его, вызовите sudo modprobe br_netfilter .

Чтобы iptables вашего Linux-узла правильно отображали мостовой трафик, вы должны убедиться, что для параметра net.bridge.bridge-nf-call-iptables установлено значение 1 в вашей конфигурации sysctl, например,

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

Проверьте необходимые порты

Эти обязательные порты должны быть открыты, чтобы компоненты Kubernetes могли взаимодействовать друг с другом. Вы можете использовать telnet, чтобы проверить, открыт ли порт. Например:

Используемый вами сетевой модуль модуля (см. ниже) также может требовать открытия определенных портов. Поскольку это отличается для каждого сетевого подключаемого модуля модуля, см. документацию для подключаемых модулей, чтобы узнать, какие порты им нужны.

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

Для запуска контейнеров в модулях Kubernetes использует среду выполнения контейнеров.

По умолчанию Kubernetes использует интерфейс среды выполнения контейнера (CRI) для взаимодействия с выбранной вами средой выполнения контейнера.

Если вы не укажете среду выполнения, kubeadm автоматически попытается обнаружить установленную среду выполнения контейнера, просмотрев список известных сокетов домена Unix. В следующей таблице перечислены среды выполнения контейнеров и связанные с ними пути к сокетам:

Среды выполнения контейнеров и их пути к сокетам < td>Docker
Среда выполнения Путь к сокету домена Unix
/var/run/dockershim.sock
containerd /run/containerd/containerd.sock
CRI-O /var/run/crio/crio.sock


Если обнаружены и Docker, и containerd, Docker имеет приоритет. Это необходимо, потому что Docker 18.09 поставляется с containerd, и оба они обнаруживаются, даже если вы только установили Docker. Если обнаружены любые другие две или более сред выполнения, kubeadm завершает работу с ошибкой.

Кублет интегрируется с Docker через встроенную реализацию dockershim CRI.

Дополнительную информацию см. в разделе среды выполнения контейнеров.

По умолчанию kubeadm использует Docker в качестве среды выполнения контейнера. Kubelet интегрируется с Docker через встроенную реализацию dockershim CRI.

Дополнительную информацию см. в разделе среды выполнения контейнеров.

Установка kubeadm, kubelet и kubectl

Вы установите эти пакеты на все свои компьютеры:

kubeadm : команда для начальной загрузки кластера.

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

kubectl : утилита командной строки для связи с вашим кластером.

kubeadm не будет устанавливать или управлять kubelet или kubectl за вас, поэтому вам необходимо убедиться, что они соответствуют версии плоскости управления Kubernetes, которую вы хотите установить для вас. Если вы этого не сделаете, существует риск перекоса версии, который может привести к неожиданному поведению с ошибками. Однако поддерживается один второстепенный перекос между версиями kubelet и плоскости управления, но версия kubelet никогда не может превышать версию сервера API. Например, kubelet с версией 1.7.0 должен быть полностью совместим с API-сервером версии 1.8.0, но не наоборот.

Информацию об установке kubectl см. в разделе Установка и настройка kubectl.

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

Для получения дополнительной информации о перекосах версий см.:

Обновите индекс пакетов apt и установите пакеты, необходимые для использования репозитория apt Kubernetes:

Загрузите открытый ключ подписи Google Cloud:

Добавьте репозиторий Kubernetes apt:

Обновите индекс пакета apt, установите kubelet, kubeadm и kubectl и закрепите их версию:

Примечания:

Перевод SELinux в разрешительный режим с помощью setenforce 0 и sed . эффективно отключает его. Это необходимо, чтобы позволить контейнерам получить доступ к файловой системе хоста, которая необходима, например, для сетей pod. Вы должны делать это до тех пор, пока в kubelet не будет улучшена поддержка SELinux.

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

Установите подключаемые модули CNI (требуется для большинства сетей модулей):

Укажите каталог для загрузки командных файлов

Примечание. Переменная DOWNLOAD_DIR должна указывать на доступный для записи каталог. Если вы используете Flatcar Container Linux, установите DOWNLOAD_DIR=/opt/bin .

Установите crictl (требуется для kubeadm / Kubelet Container Runtime Interface (CRI))

Установите kubeadm , kubelet , kubectl и добавьте сервис kubelet systemd:

Включить и запустить kubelet:

Примечание: дистрибутив Flatcar Container Linux монтирует каталог /usr как файловую систему, доступную только для чтения. Перед загрузкой кластера вам необходимо выполнить дополнительные действия по настройке каталога, доступного для записи. См. руководство по устранению неполадок Kubeadm, чтобы узнать, как настроить доступный для записи каталог.

Теперь kubelet перезапускается каждые несколько секунд, ожидая в цикле сбоя, пока kubeadm не скажет ему, что делать.

Настройка драйвера контрольной группы

Как среда выполнения контейнера, так и kubelet имеют свойство, называемое «драйвер cgroup», которое важно для управления cgroups на компьютерах с Linux.

Требуется соответствие среды выполнения контейнера и драйверов cgroup kubelet, иначе процесс kubelet завершится ошибкой.

Устранение неполадок

Если у вас возникли трудности с kubeadm, обратитесь к нашей документации по устранению неполадок.

Что дальше

Отзыв

Была ли эта страница полезной?

Спасибо за отзыв. Если у вас есть конкретный вопрос о том, как использовать Kubernetes, на который можно ответить, задайте его на Stack Overflow. Откройте задачу в репозитории GitHub, если хотите сообщить о проблеме или предложить улучшение.

Читайте также: