freeCodeCamp/guide/russian/containers/index.md

53 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
title: Containers
localeTitle: Контейнеры
---
## Контейнеры
Контейнеры - это решение проблемы обеспечения надежной работы программного обеспечения при переносе из одной вычислительной среды в другую. Это может быть от ноутбука разработчика до тестовой среды, от промежуточной среды до производства и, возможно, от физической машины в центр данных на виртуальную машину в частном или общедоступном облаке.
Другими словами, Контейнер состоит из целой среды выполнения: приложения, а также всех его зависимостей, библиотек и других двоичных файлов и файлов конфигурации, необходимых для его запуска, в комплекте в один пакет. Конкурируя платформу приложений и ее зависимости, различия в распределении ОС и базовой инфраструктуре отвлекаются.
Контейнеры - это виртуализация на уровне операционной системы - функция операционной системы, в которой ядро ​​допускает существование нескольких изолированных экземпляров пользовательского пространства. Такие экземпляры, называемые контейнерами, могут выглядеть как настоящие компьютеры с точки зрения запущенных в них программ.
## Виртуальные машины
Виртуальная виртуальная машина по существу является эмуляцией реального компьютера, который выполняет такие программы, как настоящий компьютер. Виртуальные машины запускаются поверх физической машины с использованием «гипервизора». Гипервизор, в свою очередь, работает либо на главной машине, либо на «голом-металле».
_Гипервизор_ - это часть программного обеспечения, прошивки или аппаратного обеспечения, на котором работают виртуальные машины. Гипервизоры сами запускаются на физических компьютерах, называемых «главной машиной». Хост-машина обеспечивает виртуальные машины ресурсами, включая оперативную память и процессор. Эти ресурсы делятся между виртуальными машинами и могут быть распределены по вашему усмотрению. Поэтому, если на одной виртуальной машине работает более ресурсоемкое приложение, вы можете выделить больше ресурсов для этого, чем другие виртуальные машины, запущенные на одном и том же хост-компьютере.
Виртуальная машина, запущенная на главной машине (опять же, используя гипервизор), также часто называется гостевой машиной. Этот гостевой компьютер содержит как приложение, так и все, что ему нужно для запуска этого приложения (например, системные двоичные файлы и библиотеки). Он также включает в себя весь собственный виртуализированный аппаратный стек, включая виртуализированные сетевые адаптеры, хранилище и процессор, что означает, что у него также есть собственная полноценная гостевая операционная система. Изнутри гостевая машина ведет себя как свое подразделение с собственными выделенными ресурсами. Извне мы знаем, что это VM-ресурсы совместного доступа, предоставляемые хост-машиной.
Как упоминалось выше, гостевая машина может работать либо на размещенном гипервизоре, либо на гипервизоре с белым металлом. Между ними есть некоторые важные различия.
Во-первых, размещенный гипервизор виртуализации работает на операционной системе хост-машины. Например, на компьютере с OSX может быть установлена ​​виртуальная машина (например, VirtualBox или VMware Workstation 8) поверх этой ОС. У VM нет прямого доступа к аппаратным средствам, поэтому она должна проходить через операционную систему хоста (в нашем случае - OS OS Mac).
Преимущество размещенного гипервизора заключается в том, что базовое оборудование менее важно. Операционная система хоста отвечает за аппаратные драйверы вместо самого гипервизора и поэтому считается более «совместимой с оборудованием». С другой стороны, этот дополнительный уровень между аппаратным обеспечением и гипервизором создает больше ресурсов, что снижает производительность виртуальной машины.
Негабаритная гипервизорная среда устраняет проблему производительности, устанавливая и запуская с аппаратного обеспечения хост-машины. Поскольку он напрямую взаимодействует с базовым оборудованием, для его работы не требуется операционная система хоста. В этом случае первым, установленным на сервере хост-машины в качестве операционной системы, будет гипервизор. В отличие от размещенного гипервизора, гипервизор с белым металлом имеет свои собственные драйверы устройств и взаимодействует с каждым компонентом напрямую для любых задач ввода-вывода, обработки или ОС. Это приводит к повышению производительности, масштабируемости и стабильности. Компромисс заключается в том, что аппаратная совместимость ограничена, потому что в гипервизоре может быть встроено столько драйверов устройств.
После всех этих разговоров о гипервизорах вам может быть интересно, почему нам нужен этот дополнительный «гипервизор» между виртуальной машиной и главной машиной.
Ну, поскольку виртуальная машина имеет собственную виртуальную операционную систему, гипервизор играет важную роль в обеспечении виртуальных машин платформой для управления и выполнения этой гостевой операционной системы. Он позволяет хост-компьютерам делиться своими ресурсами между виртуальными машинами, которые работают в качестве гостей поверх них.
## Контейнер
В отличие от виртуальной машины, которая обеспечивает аппаратную виртуализацию, контейнер обеспечивает виртуализацию на уровне операционной системы путем абстрагирования «пространства пользователя». Вы увидите, что я имею в виду, когда мы распаковываем термин контейнер.
Для всех целей и задач контейнеры выглядят как виртуальная машина. Например, они имеют личное пространство для обработки, могут выполнять команды как root, иметь частный сетевой интерфейс и IP-адрес, разрешать настраиваемые маршруты и правила iptable, монтировать файловые системы и т. Д.
Одно большое различие между контейнерами и виртуальными машинами заключается в том, что контейнеры _совместно_ используют ядро ​​хост-системы с другими контейнерами.
## оркестровка
В производстве задействовано несколько каркасов для оркестровки: докер-рой и кубернеты
## Список поставщиков контейнеров
Bellow - это небольшой список наиболее используемых поставщиков контейнеров, которые можно использовать.
* [докер](https://www.docker.com/)
* [Kubernetes](https://kubernetes.io/)
* [Amazon AWS ECS](https://aws.amazon.com/ecs/?nc1=h_ls)
* [РКТ](https://github.com/rkt/rkt)
* [Лазурная ткань](https://azure.microsoft.com/en-us/services/service-fabric/)