Kubernetes |
Автор: admin Просмотров: 1376 Комментарии:
Добавлен: 25 января 2017
Обновлено: 31.01.2017 - 18:02
Kubernetes (обычно называемый "K8S") - программа для управления классом контейнеров, разработанная в Google и подаренная Linux Foundation. Kubernetes предназначен обеспечить платформу для автоматизации развертывания, масштабирования и операций с контейнерами приложений через кластерные узлы. Kubernetes обычно работает с инструментом контейнеров Docker и управляет контейнерами на большом количестве хостов, работающих под управлением Докер.
Дизайн Kubernetes
Kubernetes определяет набор строительных блоков ("примитивов"), которые в совокупности обеспечивают механизмы для развертывания, обслуживания и масштабирования приложений. Компоненты, которые составляют Kubernetes разработаны слабосвязанными и расширяемыми, так что они удовлетворяют широкому спектру различных рабочих нагрузок. Масштабируемость обеспечивается в значительной степени с помощью API Kubernetes, который используется внутренними компонентами, а также расширениями и контейнерами, работающими на Kubernetes.
Pod. Pod это основной юнит планирования в Kubernetes. Он добавляет более высокий абстрактный уровень к контейнерной компоновке. Pod состоит из одного или нескольких контейнеров, которые гарантированно будут совместно размещаться на хост-машине и могут совместно использовать ресурсы. Каждому pod в Kubernetes присваивается уникальный (в пределах кластера) IP-адрес, который позволяет приложениям использовать порты без риска конфликта. Pod может определить объём, например каталог локального или сетевого диска и выставить его в контейнеры в pod. Подами можно управлять вручную через Kubernetes API или делегировать управление контроллеру.
Метки и селекторы. Kubernetes позволяет клиентам (пользователям или внутренним компонентам) прикреплять пары ключ-значение, называемые метками, к любым объектам API в системе, к таким как поды и ноды. Соответственно метки селектора являются запросами к меткам, которые принимают соответствующие объекты.
Метки и селекторы являются основным механизмом группирования в Kubernetes и используются для определения компонентов, к которым применяется операция.
Например, если pods приложения имеют метки для "яруса" (front-end, back-end, и т.п.) и для "release_track" (canary, production и т.п.), то операции по всем бэк-эндам конореечных нод могут использовать такой селектор:
tier=back-end AND release_track=canary
Контроллеры. Контроллер представляет собой цикл соглассования, который двигает актуальное состояние кластера в желаемое состояние кластера. Он делает это путем управления набором pod. Один контроллер является контроллером репликации, который обрабатывает репликацию и масштабирование, выполняя определённое количество копирований pod в кластере. Он также обрабатывает замены pod, когда pod ноды получает ошибку. Другие контроллеры, которые являются частью базовой системы Kubernetes включают в себя "DaemonSet Controller" для запуска ровно одного пода на каждой машине (или на некотором подмножестве машин), а также “Job Controller” для запуска подов, которые выполняются до конца, например, как часть пакетного задания. Множество подов, которыми управляет контроллер, определяется селектором меток, который является частью определений контроллера.
Службы. Служба Kubernetes представляет собой набор контейнеров, которые работают вместе, например, ярус многоярусного приложения. Множество подов, которые определяют сервис, определяются селектором меток. Kubernetes обеспечивает обнаружение сервисов и маршрутизацию запросов назначая стабильный IP-адрес и DNS-имя сервису и балансируют трафик методом Round robin DNS к сетевым подключениям этого IP между подами соответствующего селектора (even as failures cause the pods to move from machine to machine). По умолчанию служба открывается внутри кластера (например, поды бэк-энда могут быть сгрупированы в службу с запросами от подов балансировочной нагрузки фронт-энда), но служба также открывается за пределами кластера (например для клиентов, чтобы достигнуть подов фронт-энда).
Архитектура Kubernetes
Kubernetes следует архитектуре ведущего устройства (Master—Slave). Эти компоненты делятся на те, которые управляют отдельном узлом, и те, которые являются частью плоскости управления.
Плоскость управления Kubernetes.
Kubernetes Master является основным контролирующим органом кластера, который управляет своей рабочей нагрузкой и направляет коммуникацию по всей системе. Плоскость управления Kubernetes состоит из различных компонентов, которые имеют свои собственные процессы и которые могут работать на одном мастер узле или на нескольких мастерах, поддерживаемых отказоустойчивым кластером. Компоненты Kubernetes control plane:
etcd - стойкое и лёгкое распределённое хранилище данных типа ключ-значение, разработанное в CoreOS и надёжно хранит данные конфигурации кластера, представляя общее состояние кластера в любой заданный момент времени. Другие компоненты наблюдают за изменениями в этом хранилище, чтобы приводить себя в нужное состояние.
API сервера. Сервер API является ключевым компонентом и обрабатывает kubernetes API с помощью JSON через HTTP, который обеспечивает внутренний и внешний интерфейс Kubernetes. Сервер API обрабатывает и проверяет REST запросы и обновляет состояние объектов API и etcd, тем самым позволяя клиентам конфигурировать рабочие нагрузки и контейнеры между нодами воркера.
Планировщик. Планировщик является подключаемым компонентом, который выбирает какой узел незапланированного пода должен работать в зависимости от наличия ресурсов. Планировщик отслеживает использование ресурсов на каждом узле, чтобы убедиться что не запланирована нагрузка на ресурсы выше имеющихся ресурсов. Для этого планировщик должен знать доступные ресурсы и назначенные рабочие нагрузки на сервер.
Управление контроллером. Управление контроллером представляет собой процесс ядра контроллера Kubernetes подобно DaemonSet Controller, Replication Controller. (The controller manager is the process that the core Kubernetes controllers like DaemonSet Controller, Replication Controller run in. ) Контроллеры взаимодействуют с сервером API для создания, обновления и удаления ресурсов, которыми они управляют (поды, конечные точки сервера (service endpoints) и т.д)
Kubernetes node. Этот нод также известен как воркер или миньон, являющийся простым компьютером (или виртуальным компьютером), где контейнеры (рабочая нагрузка) разворачиваются. Каждый нод в кластере должен запустить выполнение контейнере (например, docker), а также ниже упомянутые компоненты, для обмена данными с ведущим устройством для конфигурации сети этих контейнеров.
Kubelet. Kubelet отвечает за состояние каждого узла (отвечает за то чтобы все контейнеры на узле были здоровы). Он заботится о запуске, установке и поддержке контейнеров приложений (организованных в подах) в соответствии с указаниями плоскости управления.
Kubelet следит за состоянием пода, и если он не в нужном состоянии, будет развёртываться под на тот же узел. Состояние узла передается через каждые несколько секунд с помощью пульсирующих сообщений к мастеру. После того как мастер обнаружил сбой узла, контроллер репликации наблюдает за этим изменённым состоянием и запускает поды на других здоровых узлах.
Kube-proxy. Это реализация сетевого прокси и балансировки нагрузки, с поддержкой служб абстракции наряду с другими сетевыми операциями. Отвечает за маршрутизацию трафика в соответствующий контейнер на основе IP и номера порта входящего запроса.
cAdvisor. Это агент, который отслеживает использование ресурсов и показатели производительности, такие как процессор, память, использование файлов и сети контейнера на каждом узле.
Диаграмма архитектуры Kubernetes
https://en.wikipedia.org/wiki/Kubernetes
------------------------
ТРИО теплый пол отзыв
Заработок на сокращении ссылок
Earnings on reducing links
Код PHP на HTML сайты
Я уже пять лет не занимаюсь сайтом, так как работаю по 12 часов. Образование у меня среднее, и по этому нет нормальной работы. Если бы сайт приносил по 100$ в месяц, я бы добавлял по 50 статей каждый месяц. Если отправите пожертвования, я оставлю Ваши имена и фамилии в списке благодетелей !
Bitcoin: 1AP3JCZVFpHzZwcAyNztbrbFFiLdnKbY1j
Litecoin LfHXHz4k6LnDNNvCodd5pj9aW4Qk67KoUD
Dogecoin D9HHvKNFZxRhjtoh6uZYjMjgcZewwiUME9
Есть также другие кошельки.
Категория: Виртуализация
Комментарии |