Category Archives: DevOps

Создание модулей (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
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] — определяет настраиваемый ресурс, позволяющий пользователям создавать экземпляры настраиваемого ресурса.
* Ресурс уровня кластера (без пространства имен).

Использование этого руководства:
- Это руководство в формате полезных советов
Синтаксис замены команды command $(command), используемый в командах, доступен во многих популярных оболочках, включая bash, zsh и Windows Powershell.
Очистка всех неиспользуемых или не связанных с контейнерами образов, контейнеров, томов и сетей
В Docker имеется команда, очищающая все не связанные с контейнерами ресурсы, в том числе образы, контейнеры, тома и сети:
$ docker system prune
Чтобы удалить все остановленные контейнеры и неиспользуемые образы (а не только образы, не связанные с контейнерами), добавьте в эту команду флаг -a:
$ docker system prune -a (далее…)
Ubuntu, Docker-Compose, WordPress, Nginx, PHP, MariaDB, PhpMyAdmin
Docker — программное обеспечение для автоматизации развёртывания и управления приложениями в среде виртуализации на уровне операционной системы. Позволяет «упаковать» приложение со всем его окружением и зависимостями в контейнер, который может быть перенесён на любую Linux-систему с поддержкой cgroups в ядре, а также предоставляет среду по управлению контейнерами.
Docker-Compose — это средство командной строки для определения и управления Multi-контейнером и docker-контейнерами как единой системой. Compose написан на Python и может быть установлен командой Python pip. Благодаря Compose, мы можем запустить несколько контейнеров docker с помощью одной команды. Это позволяет создать контейнер в качестве сервиса, который отлично подходит для разработки, тестирования и промежуточной среды.
Вы узнаете, как создать контейнер из docker образов и управлять всеми контейнеров с Docker-Compose. Мы развернем CMS WordPress в nginx, PHP, MariaDB, PhpMyAdmin. Каждая служба имеет свой собственный контейнер, и мы будем использовать образы из докер-реестра. (далее…)

Хорошая практика при использовании SSH использовать ключи шифрования, повышается безопасность за счет использования ключей и удобство за счет отключения функции ввода пароля. Для этого необходимо сгенерировать ключи шифрования открытый (публичный) и закрытый (приватный), скопировать публичный ключ на удаленный целевой хост, добавит этот ключ в хранилище и отключить авторизацию по паролю в службе sshd.
Сгенерируем RSA пару ключей на локальном компьютере:
(далее…)
0