logo_black_quadlogo_black_quadlogo_black_quadlogo_black_quad
  • Хостинг
    • Обучение
  • Создание сайта
  • SEO
  • Внутренняя оптимизация
  • Юзабилити
✕

Как работать с Kubernetes

  • Главная
  • Программирование
  • Как работать с Kubernetes
Как оптимизировать PHP-FPM
Как оптимизировать PHP-FPM
19.03.2024
Гайд по редактированию Functions.php в WordPress
Гайд по редактированию Functions.php в WordPress
13.04.2024
07.04.2024
Категории
  • Программирование
Теги
Как работать с Kubernetes

Kubernetes — самое популярное программное обеспечение с открытым исходным кодом, которое автоматизирует процессы разработки контейнеров. Согласно ежегодному исследованию Cloud Native Computing Foundation (CNCF), 96% организаций либо используют K8, либо рассматривают возможность их использования. Если внимательно следить, 5,8 миллиона разработчиков по всему миру используют Kubernetes, а это 31% разработчиков серверной части по всему миру.

Хостинг и Vps для вашего сайта от GoHost.kz

Его предпочитают из-за его способности использовать технологии за счет улучшенной масштабируемости, доступности и короткого времени развертывания. В то время как многие разработчики начинают свой путь создания контейнеров с помощью Docker (комплексного инструмента, использующего CLI для взаимодействия с контейнерами по одному), K8s предоставляет вам абстракции высокого уровня, позволяющие определять приложения и их инфраструктуру с помощью схем, которые вы можете сотрудничать.

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

Table of Contents

Toggle
  • Что такое Kubernetes и зачем он вам нужен?
  • Особенности Кубернетеса
  • Кубернетес Архитектура
    • Главный узел(и)
    • Подчиненный узел(и)
  • Как работает контейнеризация
  • Как установить и настроить Kubernetes
    • Установка и настройка Hyper-V
    • Установка Docker
    • Установка Kubernetes
  • Как создать кластер Kubernetes и управлять им
  • Как развернуть свое первое приложение с помощью Kubernetes
  • Заключительные слова

Что такое Kubernetes и зачем он вам нужен?

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

Проще говоря, давайте подумаем о приложении, которое вы поместили в контейнер. Чтобы обслуживать пользователей вашего приложения, вам необходимо запустить несколько контейнеров. Беспокойство возникает, когда вам нужно управлять этими контейнерами. Контейнеры не обязательно могут находиться на одной машине, что усложняет задачу. Итак, каково решение этой проблемы?

Kubernetes приходит вам на помощь, предоставляя эффективный способ беспрепятственного управления всеми этими процессами. Хотя вы можете сравнить K8 с контейнерным движком, таким как Docker, на самом деле это оркестратор контейнеров. Как начинающему разработчику, вам не нужно беспокоиться о том, как K8s осуществляет оркестровку. Скорее всего, вы не будете настраивать кластер K8s для своего приложения; подробнее об этом в ближайшее время.

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

Особенности Кубернетеса

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

  1. Автоматическое развертывание, масштабирование и откат — K8s роботизирует создание указанного вами количества реплик, распределяет их по соответствующему (наиболее подходящему) оборудованию и перепланирует контейнеры, если узел находится в простое. Вы можете мгновенно масштабировать свои реплики в зависимости от спроса или меняющихся потребностей, таких как загрузка ЦП.
  2. Обнаружение сервисов, стабилизация нагрузки и доступ к сети. Kubernetes предлагает уникальное сетевое решение, включая обнаружение внутренних сервисов и предоставление общедоступных контейнеров.
  3. Приложения с состоянием и без него. Вначале K8 в основном ориентировались на контейнеры без состояния. Поскольку технология развивается по многим направлениям, теперь она поддерживает встроенные объекты, представляющие приложения с отслеживанием состояния. После ратификации любое приложение может работать в Kubernetes.
  4. Регулирование хранилища. Независимо от того, находитесь ли вы в локальной файловой системе, сетевом ресурсе или в облаке, Kubernetes предоставляет (абстрагирует) постоянное хранилище для приложений, работающих в контейнерах. А абстракция позволяет определять требования к хранилищу независимо от базовой инфраструктуры. Хотя это выходит за рамки данной статьи, он работает на основе таких принципов, как постоянный том (PV), утверждение постоянного тома (PVC), классы хранения и подключаемые модули томов.
  5. Декларативное состояние. K8s использует файлы Yet Ain’t Markup Language (YAML), называемые манифестами объектов, для указания желаемых состояний вашего кластера. Манифесты определяют, как будет выглядеть ваш кластер, включая, помимо прочего, нужные экземпляры приложений и сетевые правила, а также другие конфигурации. Когда вы применяете манифесты, K8s автоматически обрабатывает все переходы между состояниями — для этого вам не придется писать сценарии.
  6. Несколько рабочих сред. Вы не ограничены использованием Kubernetes в облаке или на своей рабочей станции разработчика. Почти каждый дистрибутив доступен для вашего конкретного случая использования. Обратите внимание на крупных поставщиков облачных технологий, таких как Amazon Web Services, Google Cloud и Microsoft Azure. Вы поймете, что все они предлагают управляемые сервисы Kubernetes, в то время как дистрибутивы с одним узлом, такие как Minikube и K3s, доступны для локального использования.
  7. Сверхширокость – K8s представляет собой набор множества функций. Как будто этого недостаточно, вы можете ускорить его возможности с помощью расширений. Вы можете создавать собственные типы объектов, операторы и контроллеры, чтобы оптимизировать рабочие нагрузки.

Кубернетес Архитектура

По своей сути архитектура Kubernetes состоит из одного главного узла и двух рабочих узлов. Главный узел вызывает выстрелы в кластере, а рабочие (подчиненные) узлы запускают приложения по решению главного узла.

изображение-83

Вот дальнейшая разбивка.

Главный узел(и)

Главный узел диктует состояния кластера и определяет действия каждого конкретного узла. Для настройки главного узла требуется несколько процессов.

  1. API-сервер
    Все коммуникации кластера базируются здесь. Это шлюз, который позволяет всем компонентам кластера обмениваться информацией. Он предоставляет API Kubernetes. Здесь играют две основные роли. Первый — это точка входа, которая позволяет пользователям взаимодействовать с кластером. Например, отправка запросов при использовании Kubectl. Во-вторых, контроль доступа для аутентификации и проверки запросов. В этом случае только определенные пользователи могут выполнять запросы.
  2. Планировщик
    Планировщик назначает приложения или объекты рабочей нагрузки Kubernetes рабочему узлу. Здесь планировщик размещает модули на узлах в зависимости от требований к ресурсам. А когда вы говорите о модулях, это всего лишь небольшая единица развертывания в Kubernetes.
  3. Диспетчер контроллера.
    Этот модуль поддерживает кластеры, такие как сбои узлов, для поддержания правильного количества модулей. Он обнаруживает изменения состояния кластера, такие как смерть модулей, и пытается восстановить модуль в исходное состояние. Например, если модуль случайно умирает, диспетчер контроллера запрашивает планировщик, чтобы утвердить, какой узел запускает новый модуль в качестве замены, и kubelet запускает новый модуль.
  4. etcd
    Его также называют кластерным мозгом. Модуль представляет собой хранилище значений ключей для конфигурации кластера. Это означает, что все изменения кластера производятся здесь. Вы можете создать резервную копию кластера, сохранив распределенное хранилище значений ключей. Однако обратите внимание, что здесь хранятся только данные о состоянии кластера, а не данные приложения. Этот блок специально предназначен для хранения информации о состоянии кластера и использования ее для предыдущих процессов, информирующих их о кластере.

Подчиненный узел(и)

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

  1. Kubelet.
    Это основной сервис Kubernetes, который запускает выполнение уровня исполнения контейнера. Если убрать этот модуль, Kubernetes превратится в не что иное, как REST API с хранилищем ключей-значений. По умолчанию K8s выполняет приложение-контейнер. Контейнеры всегда изолированы друг от друга и базовой хост-системы. Это доказало свою эффективность в отделении управления отдельными приложениями друг от друга и от физической или виртуальной инфраструктуры.

    Хотя контроль доступа API может отклонять модули или добавлять дополнительные ограничения, окончательным утверждением того, какие модули выполняются на конкретном узле, является kubelet, а не планировщики или наборы демонов. Подводя итог, кубелецы взаимодействуют с узлом и контейнером. Он также принимает файлы конфигурации и запускает модули с использованием среды выполнения контейнера.

  2. Среда выполнения контейнера.
    В этом разделе запускаются контейнеры. Например, вы можете использовать Docker, rkt или conatinered, чтобы узнать больше о том, как работают контейнеры.
  3. Kube-proxy.
    Этот модуль предоставляет уровень абстракции для групп модулей узлов в соответствии с общими политиками, например, в случае с балансировкой нагрузки. Все узлы применяют Kube-прокси для предоставления виртуального IP-адреса клиентам, обращающимся к динамическим модулям. Эта структура является решением для балансировки нагрузки при сохранении низкопроизводительных накладных расходов.

Как работает контейнеризация

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

В конечном счете, запускайте среду выполнения контейнера «поверх», описывающую ресурсы. Поскольку контейнеры включают в себя только базовые компоненты и зависимости приложений, они легкие и, следовательно, быстрее, в отличие от других виртуальных машин.

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

Я потратил так много времени на теоретические исследования; раздел каскадирования будет тактическим и потребует некоторого практического опыта работы с контейнерами. В этом руководстве особенно рассматривается установка в операционной системе Windows.

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

Вашему оборудованию необходим главный узел с объемом памяти не менее 2 ГБ и 700 МБ для рабочего узла. Что касается требований к программному обеспечению, Hype-v, Docker для настольных компьютеров, уникальный Mac-адрес и уникальный UUID продукта для каждого узла. Вот пошаговый подход.

Установка и настройка Hyper-V

Hyper-V — это программное обеспечение для виртуализации Windows по умолчанию. По сути, это VirtalBox на стероидах. Он позволяет вам управлять виртуальными машинами через графический интерфейс Microsoft или командную строку. Чтобы включить Hyper-V, выполните следующие действия.

  1. Откройте панель управления.
  2. Нажмите на программы на левой панели.
  3. На странице программы и функций нажмите «Включить или отключить функции Windows».
  4. Выберите функции Hyper-V и гипервизора для Windows.
  5. Далее выберите «ОК» на этом этапе; ваша машина должна перезагрузиться, чтобы активировать новые настройки.

Иногда ваш компьютер может перезагружаться несколько раз, чтобы убедиться, что все настроено правильно. Вы можете проверить успешность установки, введя следующую команду в Power Shell.

Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V

Убедитесь, что ваш экран заполнен состоянием 'enabled‘.

Установка Docker

Как вы узнали, K8s — это инструмент оркестровки контейнеров, построенный на базе контейнеров; в этом случае Docker — хороший выбор. K8s взаимодействует с Docker и управляет всем на уровне предприятия. Начните двигаться вперед, загрузив Docker для Windows. Если вам интересно, почему необходимо использовать Docker Desktop, он предпочтителен для упрощения разработки, доставки и запуска докеризованных (контейнерных) приложений.

Это также самый быстрый способ создания приложений Docker в Windows с использованием Hyper-V и сети. После успешной установки Docker всегда доступен на любом работающем терминале. Подробное руководство по установке можно найти в официальной документации Docker. Если после установки у вас возникнут какие-либо проблемы, например скрытые значки, проблему можно решить, перезагрузив компьютер.

Установка Kubernetes

Графический интерфейс Docker позволяет настраивать параметры, устанавливать и включать Kubernetes. Чтобы установить K8s, выполните следующие действия.

  1. Щелкните правой кнопкой мыши значок Docker на панели задач и выберите свойства.
  2. Выберите «Настройки» в раскрывающемся меню после нажатия «Свойства».
  3. На левой панели выберите «Kubernetes» и нажмите «Применить».

Затем Docker установит некоторые дополнительные пакеты и зависимости. Процесс занимает около пяти-десяти минут, в зависимости от скорости вашего интернета. Вы можете использовать приложение Docker, чтобы убедиться, что все работает правильно.

Поскольку приложения Kubernetes можно развертывать с помощью CLI, вам может потребоваться установить панель управления K8s, поскольку она не установлена ​​по умолчанию. Установите панель мониторинга, выполнив следующие действия.

  1. Загрузите конфигурацию YAML.
  2. Разверните приложение, используя этот код: . Kubectl apply -f .\recommended.yaml.
  3. Убедитесь, что все настроено правильно: kubectl.exe get -f .\recommended.yaml.txt.

Чтобы получить доступ к панели мониторинга, выполните следующую команду в Power Shell (не CMD)

  1. Запустите следующий код((kubectl -n kube-system describe secret default | select-string “token:”) – split “+”)[1]
    • Скопируйте сгенерированный токен и запустите kubectl proxy.
  2. В браузере откройте http://localhost:8001/api/v1/namspaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/.
  3. Нажмите «Токен» и вставьте сюда свой токен.
  4. Войти.

Если вы это сделали, браво, на вашем экране должна появиться панель управления K8s. Теперь вы можете управлять своими приложениями, не выполняя тяжелую работу с помощью CLI.

Также читайте: Как установить Kubernetes на Ubuntu 18.

Как создать кластер Kubernetes и управлять им

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

  1. Настройка сети. Здесь вам необходимо настроить сеть между узлами кластера; позволить им общаться друг с другом.
  2. Настройка аутентификации кластера. Создайте механизмы аутентификации и авторизации для доступа к кластеру.
  3. Настройка основных компонентов; включает в себя сервер API, планировщик и диспетчер контроллеров.
  4. Присоединиться к рабочим узлам. Подключите рабочие узлы к кластеру с помощью файлов конфигурации, предоставленных в процессе установки кластера.
  5. Развертывание надстроек. Вы можете установить расширения для улучшения функциональности кластера.
  6. Управляйте рабочими нагрузками. Пришло время развернуть ваши приложения.

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

Как развернуть свое первое приложение с помощью Kubernetes

Наиболее распространенной командой при использовании K8s является kubectl action resource, которая позволяет выполнять определенные действия, например создание или удаление указанного ресурса.

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

Например, Kubernetes get nodes --help. Разверните свое первое приложение K8s с помощью этой kubectl create deployment Kubernetes-bootcamp –image=gcr.io/google-samples/Kubernetes-bootcamp:v1команды.

Заключительные слова

Это руководство стало отправной точкой в ​​технологию Kubernetes. Вы узнали о преимуществах, функциях и архитектуре Kubernetes. К счастью, вам, возможно, пришлось обратиться к нескольким указателям (внешним ресурсам), чтобы начать работу; он объяснил, как все работает под капотом.

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

Поделиться
7
admin
admin

Похожие записи

Лучшие языки программирования для фронтенда в 2025 году
25.02.2025

Лучшие языки программирования для фронтенда в 2025 году


Читать далее
Docker и виртуальная машина: в чем разница?
30.01.2025

Docker и виртуальная машина: в чем разница?


Читать далее
Puppet и Docker: в чем разница?
27.01.2025

Puppet и Docker: в чем разница?


Читать далее

Добавить комментарий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Рубрики

  • SEO
  • VPS
  • Внутренняя оптимизация
  • Обучение
  • Программирование
  • Создание сайта
  • Хостинг
  • Юзабилити

Для пользователей

Карта сайта

Ссылки

Хостинг в Казахстане
VPS-хостинг
Купить домен
Выделенный сервер
© 2022 Gohost.kz Все права защищены
Click to Copy