Tag Archives: Mimbolovek8s

Создание модулей (POD) из дескрипторов YAML или JSON

Автор Itworkroom
pod k8s

Создание модулей (POD)

Существуют неуправляемые модули, создаваемые напрямую и управляемые модули, которые создаются и управляются контроллерами репликации (ReplicationController) или развертываниями (Deployment).
Модули и другие ресурсы Kubernetes обычно создаются путем публикации манифеста JSON и YAML в конечной точке API REST Kubernetes или командой kubectl run. Определение объектов Kubernetes из файлов YAML позволяет хранить их в системе управления версиями.
Команда для получения полного определения дескриптора YAML существующего модуля:

$ kubectl get po имя_модуля -o yaml

Структура файла YAML развернутого модуля:
apiVersion: v1 [Версия API Kubernetes, используемая в этом дескрипторе YAML]
kind: Pod [Тип объекта/ресурса Kubernetes]
metadata: [метаданные – включают имя, пространство имен, метки и другую информацию о модуле]
(далее…)

Ресурсы Kubernetes

Автор Itworkroom
k8s

Ресурсы Kubernetes
Namespace* (ns) [v1] — позволяет организовывать ресурсы в неперекрывающиеся группы (для каждого потребителя ресурсов).

Развертывающие рабочие нагрузки
Pod (po) [v1] — основная развертываемая единица, содержащая один или более процессов в расположенных рядом контейнерах.
ReplicaSet (rs) — поддерживает одну или несколько реплик модуля.
ReplicationController (rc) [v1] – устаревший и менее функциональный эквивалент ресурса ReplicaSet.
Job [batch/v1] — запускает модули, выполняющие завершаемую задачу.
CronJob [batch/v1beta1] — запускает назначаемое задание один раз или периодически.
DaemonSet (ds) — запускает одну реплику модуля в расчете на узел (на всех узлах или только на тех, которые соответствуют селектору узлов).
StatefulSet (sts) — запускает модули, имеющие внутреннее состояние, со стабильной идентичностью.
Deployment (deploy) — декларативное развертывание и обновление модулей.

Службы
Service (svc) [v1] — предоставляет доступ к одному или нескольким модулям на одной и стабильной паре IP-адреса и порта.
Endpoints (ep) [v1] — определяет, к каким модулям (или другим серверам) предоставляется доступ через службу.
Ingress (ing) [extensions/v1beta1] — предоставляет внешним клиентам доступ к одной или нескольким службам через один доступный извне IP-адрес.

Конфигурация
ConfigMap (cm) [v1] — словарь в формате «ключ-значение» для хранения незащищенных параметров конфигурации приложений и предоставления им доступа к ним.
Secret [v1] — словарь в формате «ключ-значение» для хранения конфиденциальных данных.

Хранение
PersistentVolume* (pv) [v1] — указывает на постоянное хранилище, которое можно смонтировать в модуль посредством заявки PersistentVolumeClaim.
PersistentVolumeClaim (pvc) [v1] — запрос и заявка на PersistentVolume.
StorageClass* (sc) [storage.k8s.io/v1] — определяет тип динамически резервируемого хранилища, заявляемого в PersistentVolumeClaim.

Масштабирование
HorizontalPodAutoscaler (hpa) — автоматически масштабирует количество реплик модулей на основе использования центрального процессора или другой метрики.
PodDisruptionBudget (pdb) [policy/v1beta1] — определяет минимальное количество модулей, которые должны оставаться запущенными при эвакуации узлов.

Ресурсы
LimitRange (limits) [v1] – определяет мин, макс, ограничения и запросы по умолчанию (default) для модулей в пространстве имен.
ResourceQuota (quota) [v1] – определяет объем вычислительных ресурсов, доступных для модулей в пространстве имен.

Состояние кластера
Node* (нет)[v1] — представляет рабочий узел Kubernetes.
Cluster* [federation/v1beta1] — кластер Kubernetes (используемый в федерации кластеров).
ComponentStatus* (cs) [v1] — статус компонента контрольной панели.
Event (ev) [v1] — отчет о том, что произошло в кластере.

Безопасность
ServiceAccount (sa) [v1] учетная запись, используемая приложениями, запущенными в модулях.
Role [rbac.authorization.k8s.io/v1] определяет, какие действия субъект может вы-
полнять с какими ресурсами (в расчете на пространство имен).
ClusterRole* [rbac.authorization.k8s.io/v1] как Role, но для ресурсов уровня кластера или для предоставления доступа к ресурсам во всех пространствах имен.
RoleBinding [rbac.authorization.k8s.io/v1] определяет, кто может выполнять действия, определенные в Role или ClusterRole (в пространстве имен).
ClusterRoleBinding* [rbac.authorization.k8s.io/v1] — как RoleBinding, но по всем пространствам имен.
PodSecurityPolicy* (psp) [extensions/v1beta1] — ресурс уровня кластера, который определяет,
какие чувствительные для безопасности особенности могут использовать модули.
NetworkPolicy (netpol) [networking.k8s.io/v1] — изолирует сеть между модулями, указывая, какие модули могут подключаться друг к другу.
CertificateSigningRequest* (csr) [certificates.k8s.io/v1beta1] — запрос на подписание сертификата открытого ключа.
CustomResourceDefinition* (crd) [apiextensions.k8s.io/v1beta1] — определяет настраиваемый ресурс, позволяющий пользователям создавать экземпляры настраиваемого ресурса.

* Ресурс уровня кластера (без пространства имен).