Развертывание серверов Linux в облаке

Серверы Linux в облачных сервисах

Сегодня, когда преобладают облачные провайдеры, запускать и запускать собственные серверы Linux стало проще и проще, чем когда-либо. Конечные пользователи могут выбирать из множества поставщиков и реализаций, таких как OpenStack, Linode, Amazon Web Services (AWS), Google Cloud Platform (GCP), Azure и IBM Cloud.



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

Что скрывается "за Облаками"?

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

Для вас как системного администратора Linux это означает, что более чем когда-либо ваши навыки и знания крайне необходимы - даже в облачном мире. Итак, вместо того, чтобы думать о нескольких физических жестких дисках, подключенных к серверам, вы теперь думаете о петабайтах и ​​пулах хранилища, которые потенциально могут совместно использовать сотни меньших VMS. Вместо того чтобы думать о терабайтах установленной физической памяти (ОЗУ), теперь вы думаете о разделении этой памяти на меньшие размеры, которые будут совместно использоваться множеством меньших виртуальных машин (или контейнеров). Вместо того чтобы думать о паре Ethernet-карт в коробке, вы думаете о сотнях виртуальных сетевых карт и коммутаторов, которые обмениваются данными, используя магию программно-определяемых сетей (SDN). Вкратце, все это означает, что объем работы (и забот) системного администратора в облачной среде увеличивается на порядки!

Получение и запуск новых виртуальных серверов Linux

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

Поскольку мы еще не рассмотрели некоторые другие важные детали (например, работу в командной строке), наше освещение здесь будет в общих чертах. Как минимум, вам потребуется доступ к интерфейсу командной строки существующей системы (предпочтительно Linux) с установленными необходимыми инструментами, чтобы иметь возможность использовать команды, подробно описанные в следующих разделах. Несмотря на то, что мы предпочитаем системы на базе Linux, вы не попадете в затруднительное положение, если будете использовать другую платформу, такую ​​как macOS или Windows - вам просто нужно проконсультироваться с соответствующей документацией поставщика, чтобы узнать, как получить и настроить инструменты на любой из этих платформ.

Бесплатные виртуальные серверы Linux (free-to-run)

Под «бесплатным» (free-to-run) мы подразумеваем, что вам необязательно предоставлять свою платежную информацию или данные кредитной карты какому-либо стороннему провайдеру, чтобы запустить виртуальный сервер Linux. В результате это часто включает в себя некоторую практическую подготовительную работу, которую должны выполнить вы или кто-то другой! В этом разделе мы приводим только несколько примеров такого типа серверов.

Virt-builder

virt-builder - это утилита для загрузки или создания новых виртуальных машин с помощью настраиваемых шаблонов. Он прост в использовании, и все, что вам нужно, - это доступ к существующей работающей операционной системе Linux. Авторы virt-builder создали приличную библиотеку шаблонов для сборки различных версий и вариантов популярных дистрибутивов Linux, таких как Fedora, Ubuntu, Debian, OpenSUSE и CentOS. После установки программного пакета, который предоставляет утилиту virt-builder , вы можете использовать его для запроса и просмотра списка доступных операционных систем, выполнив следующую команду:

$ virt-builder -list

opensuse-tumbleweed	x86_64	openSUSE Tumbleweed
centos-8.0	        x86_64	CentOS 8.0
debian-10	        x86_64	Debian 10 (stretch)
fedora-34	        x86_64	Fedora® 34 Server
freebsd-11.1	        x86_64	FreeBSD 11.1

...OUTPUT TRUNCATED...

 Чтобы просмотреть любые соответствующие примечания по установке (такие как пароли для входа, имена пользователей и т. Д.), Которые могут быть доступны для дистрибутива fedora-34, возвращенного в предыдущем примере листинга, введите следующую команду:

$ virt-builder --notes fedora-34

Затем выполните следующую команду, чтобы создать и загрузить файл образа диска для нашего образца дистрибутива fedora-34. По умолчанию файл будет загружен в текущий рабочий каталог.

$ virt-builder fedora-34

После успешной загрузки необработанного файла образа виртуального диска (в нашем примере fedora34.img) вы должны иметь возможность использовать любую платформу гипервизора любого сорта для загрузки и запуска виртуальной машины, инкапсулированной в файл образа. 

OpenStack

OpenStack - это объединение нескольких отдельных проектов FOSS, которые могут быть интегрированы для создания единой и полной платформы облачных вычислений, подходящей для публичных и частных облаков. В совокупности отдельные проекты несут ответственность за обеспечение некоторых очень важных сервисов, на которые OpenStack в значительной степени полагается, таких как Compute (Nova), Networking (Neutron), Block Storage (Cinder), Identity (Keystone), Image (Glance), Object Storage ( Swift), База данных (Trove) и Обмен сообщениями (Zaqar). У проекта OpenStack есть поддержка многих стойких приверженцев технологической индустрии, которые используют проект, а также вносят свой вклад в его развитие. После того, как OpenStack правильно сконфигурирован и настроен, вы ограничены только вашим воображением в отношении того, что вы можете с ним делать.

Хотя отдельные проекты, составляющие OpenStack, обычно имеют свои собственные инструменты (и особенности), всеобъемлющий двоичный файл openstack стремится стать унифицированным инструментом, который можно использовать для выполнения множества функций во всем стеке. Вы можете узнать больше о наборе клиентских инструментов openstack и скачать его со страницы https://pypi.org/project/python-openstackclient/ .

После настройки и авторизации инструмента для работы с целевым развертыванием openstack вы можете запустить новую виртуальную машину сервера Linux, указав правильные параметры и выполнив следующее:

$ openstack server create \

--flavor <FLAVOR_ID> --image <IMAGE_ID> --key-name <KEY_NAME> \ 
--security-group <SEC GROUP NAME> <INSTANCE NAME>

 

Поставщики коммерческих облачных услуг

Коммерческие облачные провайдеры - это любая из многих коммерческих компаний, которые сдают в аренду части своей вычислительной инфраструктуры за определенную плату. Несмотря на то, что у большинства этих провайдеров есть так называемые бесплатные уровни своих услуг, вы можете быть уверены, что полностью бесплатного обеда не существует. Бесплатные уровни предназначены для того, чтобы подогреть ваш аппетит ровно настолько, чтобы вы пристрастились / подсели на их услуги. Большинство поставщиков коммерческих услуг требуют, чтобы вы зарегистрировались и установили токены безопасности и ключи, уникальные для этой службы или поставщика. Как правило, чтобы использовать инструменты интерфейса командной строки (CLI) в следующих разделах, вам необходимо иметь под рукой токены безопасности!

Интерфейс прикладного программирования (API)

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

 

Когда вы выполняете свои рабочие нагрузки в облаке, вы полагаетесь на физическую инфраструктуру облачного провайдера. Это означает, что у вас нет доступа к физическим переключателям, кнопкам, кабелям, портам и тому подобному, что есть в вашем собственном серверном шкафу или центре обработки данных. Единственный способ управлять своей средой - использовать любые виртуальные (программные) интерфейсы, которые вам предоставляет поставщик. Предпочтительный интерфейс, который предоставляют большинство провайдеров, - это API. API можно грубо определить как стандартный набор правил, предназначенных для выполнения или запуска определенных функций, которые поставщик делает доступными для авторизованных пользователей. Например, поставщик может иметь набор API-интерфейсов, которые конечные пользователи могут вызывать для запуска совершенно новой виртуальной машины сервера Fedora со 128 ГБ ОЗУ в центре обработки данных, расположенном в Антарктиде.

 

Конечным результатом всего этого является то, что OpenStack, Google, AWS, Azure, Боб и его дядя имеют свои собственные уникальные API, которые вы должны использовать для взаимодействия с ними. К счастью, большинство API-интерфейсов реализованы через общий и хорошо понятный интерфейс передачи репрезентативного состояния (REST). Как только вы авторизуетесь и поймете нюансы системного API, вы можете легко запустить один или тысячу новых серверов Linux, используя несколько хорошо продуманных команд!

Linode

Linode имеет долгую и богатую историю в мире инфраструктуры как услуги (IaaS), особенно в области дистрибутивов на базе Linux. Виртуальную машину в мире Linode часто называют «linode» (узел Linux).

Помимо графического веб-интерфейса для управления ресурсами в облаке Linode, конечные пользователи также имеют возможность богатого интерфейса командной строки, метко названного Linode CLI. Linode CLI - это оболочка вокруг богатого API Linode. Вы можете загрузить и узнать больше о Linode CLI по адресу https://github.com/linode/linode-cli .

После того, как он правильно настроен и вы укажете правильные параметры, вы сможете запустить образец виртуальной машины linode под своей учетной записью с помощью команды, подобной приведенной здесь:

$ linode-cli linodes create \

--type g5-standard-2 --region us-east \
--image <IMAGE NAME> --root pass

Amazon Web Services (AWS)

AWS предоставляет услуги и продукты облачных вычислений для различных приложений и отраслей. Под брендом AWS находятся буквально сотни сервисов. Amazon Elastic Compute Cloud (EC2) - это конкретное предложение AWS, которое предоставляет интересующую нас вычислительную инфраструктуру.

AWS и многочисленные сторонние компании создали приличную коллекцию виртуальных машин на платформе EC2. Самостоятельный инструмент AWS для взаимодействия с различными облачными сервисами называется aws или aws-cli. Вы можете узнать больше об инструменте aws на странице https://aws.amazon.com/cli/ .

После регистрации учетной записи AWS и правильной настройки инструмента вы можете запустить новую виртуальную машину в AWS, указав правильные значения параметров (идентификатор образа машины Amazon, количество экземпляров и т. д.). Вот пример команды, запускающей вирnуальный сервер Линукс в облаке AWS:

$ aws ec2 run-instances \

--image-id <AMAZON_MACHINE_IMAGE_ID> \
--count <NUMBER_OF_INSTANCES> --instance-type <TYPE_OF_INSTANCE> \ 
--key-name <KEY PAIR NAME> --security-group-ids <SECURITY GROUP ID>

 

Облачная платформа Google (GCP)

GCP состоит из множества сервисов, и их количество продолжает расти. Специфический компонент GCP, который ближе всего к традиционному (виртуальному) серверу Linux для конечных пользователей, - это Google Compute Engine (GCE). Собственный набор инструментов командной строки Google, позволяющий конечным пользователям взаимодействовать с его продуктами и услугами в рамках GCP, предоставляется через его Cloud SDK. Конкретный инструмент для взаимодействия с GCE называется gcloud. Вы можете загрузить и узнать больше о Cloud SDK и gcloud по адресу https://cloud.google.com/sdk/ .

После регистрации учетной записи GCP и настройки вашей среды создание нового сервера Linux может быть столь же простым, как предоставление правильных значений для параметров (семейство образов, проект образа и т. l.). Вот пример команды:

$ gcloud compute instances create <INSTANCE_NAME> \ 

--image-family <IMAGE_FAMILY> \
--image-project cIMAGE PROJECT>

Azure

Azure - это подразделение Microsoft по облачным вычислениям. На момент написания статьи в ней насчитывается более нескольких сотен различных облачных сервисов! Интересующий нас компонент Azure точно называется «Виртуальные машины», и он позволяет конечным пользователям создавать виртуальные машины Linux и Windows на платформе Azure IaaS.

Azure CLI (az) - это инструмент командной строки для управления различными объектами в мире Azure. Вы можете загрузить и узнать больше об этом инструменте по адресу https://github.com/Azure/azure-cli .

Как и в случае с другими коммерческими поставщиками общедоступного облака, вам необходимо зарегистрировать учетную запись, прежде чем вы сможете начать развертывание серверов в инфраструктуре Azure. После того, как вы правильно настроили инструмент az и создали все необходимые ресурсы (например, группу ресурсов), вы сможете развернуть образец сервера Ubuntu в Azure, выполнив команду, аналогичную приведенной здесь:

$ az vm create \

--resource-group <Resource_Group_Name> \ 
--name <VM Name> --image <Image Name>

 

Резюме

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

Как мы писали в начале этой статьи, одна из прелестей модели облачных вычислений заключается в том, что в облаке почти все готово для вас. Однако, чтобы в полной мере воспользоваться простотой использования и доступности облака, вам необходимо уметь говорить на языке провайдера и играть по его правилам - и это часто делается с помощью API и настраиваемых инструментов, обернутых вокруг API.

Вас заинтересует / Intresting for you:

Основа операционной системы Li...
Основа операционной системы Li... 1268 просмотров Андрей Волков Wed, 09 Jan 2019, 05:36:45
Сигналы в Linux
Сигналы в Linux 999 просмотров Fortan Tue, 05 Feb 2019, 16:18:38
Процессы Linux
Процессы Linux 1987 просмотров Doctor Wed, 23 Jan 2019, 16:47:24
Краткая история Linux
Краткая история Linux 1352 просмотров Андрей Волков Wed, 09 Jan 2019, 02:46:59
Войдите чтобы комментировать

Vovan_ST аватар
Vovan_ST ответил в теме #9889 11 фев 2021 20:18
Очень актуальная тема. Спасибо, что объяснили понятным языком без выпендрежа с чего начать изучение темы Виртуальных серверов Линукс в Облаке!