По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
В этой статье мы рассмотрим процесс установки и настройки режима Docker Swarm на сервере Ubuntu 16.04.
Docker Swarm является стандартным инструментом кластеризации для Docker, преобразующий набор хостов Docker в один последовательный кластер, называемый Swarm. Docker Swarm обеспечивает доступность и высокую производительность работы, равномерно распределяя ее по хостингам Docker внутри кластера.
Установка Docker Swarm:
Перед началом обновите Ваш системный репозиторий до последней версии с помощью следующей команды:
sudo apt-get update -y && sudo apt-get upgrade -y
После обновления следует выполнить перезагрузку системы. Необходимо еще установить среду Docker. По умолчанию Docker не доступен в репозитории Ubuntu 16.04, поэтому сначала необходимо создать хранилище Docker и начать установку с помощью следующей команды:
sudo apt-get install apt-transport-https software-properties-common ca-certificates -y:
Добавляем GPG ключ для Docker:
wget https://download.docker.com/linux/ubuntu/gpg && sudo apt-key add gpg
Добавляем репозиторий Docker и обновляем с помощью команды:
sudo echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable" >> /etc/apt/sources.list sudo apt-get update -y
Установка среды Docker с помощью следующей команды:
sudo apt-get install docker-ce -y
После установки запустите службу Docker во время загрузки с помощью следующей команды:
sudo systemctl start docker && sudo systemctl enable docker
Для запуска Docker необходимы root права, а для других юзеров доступ получается только с помощью sudo. При необходимости запустить docker без использования sudo, есть возможность создать Unix и включить в него необходимых пользователей за счет выполнения следующих строк кода:
sudo groupadd docker && sudo usermod -aG docker dockeruser
Затем выйдя из системы, делаем вход через dockeruser.
sudo ufw allow 2376/tcp && sudo ufw allow 7946/udp && sudo ufw allow 7946/tcp && sudo ufw allow 80/tcp && sudo ufw allow 2377/tcp && sudo ufw allow 4789/udp
Затем перезагрузите брандмауэр, включив его при загрузке
sudo ufw reload && sudo ufw enable
Выполните перезагрузку “Докера”:
sudo systemctl restart docker
Создавая Docker Swarm кластер, необходимо определиться с IP-адресом, за счет которого ваш узел будет действовать в качестве диспетчера:
docker swarm init --advertise-addr 192.168.0.103
Вы должны увидеть следующий вывод:
Swarm initialized: current node (iwjtf6u951g7rpx6ugkty3ksa) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-5p5f6p6tv1cmjzq9ntx3zmck9kpgt355qq0uaqoj2ple629dl4-5880qso8jio78djpx5mzbqcfu 192.168.0.103:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
Проверяем его состояние:
docker node ls
Если все работает правильно, вы должны увидеть следующий вывод:
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
iwjtf6u951g7rpx6ugkty3ksa * Manager-Node Ready Active Leader
Проверка статуса Docker Swarm Cluster осуществляется следующим образом:
code> docker info
Вывод должен быть следующим:
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 17.09.0-ce
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: active
NodeID: iwjtf6u951g7rpx6ugkty3ksa
Is Manager: true
ClusterID: fo24c1dvp7ent771rhrjhplnu
Managers: 1
Nodes: 1
Orchestration:
Task History Retention Limit: 5
Raft:
Snapshot Interval: 10000
Number of Old Snapshots to Retain: 0
Heartbeat Tick: 1
Election Tick: 3
Dispatcher:
Heartbeat Period: 5 seconds
CA Configuration:
Expiry Duration: 3 months
Force Rotate: 0
Autolock Managers: false
Root Rotation In Progress: false
Node Address: 192.168.0.103
Manager Addresses:
192.168.0.103:2377
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 06b9cb35161009dcb7123345749fef02f7cea8e0
runc version: 3f2f8b84a77f73d38244dd690525642a72156c64
init version: 949e6fa
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 4.4.0-45-generic
Operating System: Ubuntu 16.04.1 LTS
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 992.5MiB
Name: Manager-Node
ID: R5H4:JL3F:OXVI:NLNY:76MV:5FJU:XMVM:SCJG:VIL5:ISG4:YSDZ:KUV4
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
Узел теперь настроен правильно, пришло время добавить его в Swarm Cluster. Сначала скопируйте вывод команды «swarm init» из вывода результата выше, а затем вставьте этот вывод в рабочий узел для присоединения к Swarm Cluster:
docker swarm join --token SWMTKN-1-5p5f6p6tv1cmjzq9ntx3zmck9kpgt355qq0uaqoj2ple629dl4-5880qso8jio78djpx5mzbqcfu 192.168.0.103:2377
Вы должны увидеть следующий вывод:
This node joined a swarm as a worker.
Теперь выполните следующую команду для вывода списка рабочего узла:
docker node ls
Вы должны увидеть информацию следующего вида:
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
iwjtf6u951g7rpx6ugkty3ksa * Manager-Node Ready Active Leader
snrfyhi8pcleagnbs08g6nnmp Worker-Node Ready Active
Docker Swarm Cluster запущен и работает, теперь можно запустить веб-сервис в Docker Swarm Mode. За счет следующей строки кода выполнится развертывание службы веб-сервера:
docker service create --name webserver -p 80:80 httpd
Приведенная выше строка создаст контейнер веб-сервера Apache и сопоставит его с 80 портом, позволив иметь полный доступ к необходимому веб-серверу Apache из удаленной системы. Теперь запускаем проверку работающего сервиса с помощью команды:
docker service ls
Вы должны увидеть следующий вывод:
ID NAME
MODE REPLICAS IMAGE PORTS
nnt7i1lipo0h webserver replicated 0/1 apache:latest *:80->80/tcp
Запустите службу масштабирования веб-сервера с помощью строки:
docker service scale webserver = 2
А также проверьте состояние с помощью команды:
docker service ps webserver
Вы должны увидеть следующий вывод:
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
7roily9zpjvq webserver.1 httpd:latest Worker-Node Running Preparing about a minute ago
r7nzo325cu73 webserver.2 httpd:latest Manager-Node Running Preparing 58 seconds ago
Веб-сервер Apache работает. Теперь вы можете получить доступ к веб-серверу:
Служба веб-сервера Apache теперь распределена по двум узлам. Docker Swarm обеспечивает доступность вашего сервиса. Если веб-сервер отключается на рабочем узле, то новый контейнер будет запущен на узле менеджера. Для проверки доступности следует остановить службу Docker на рабочем узле:
sudo systemctl stop docker
Запустите службу веб-сервера с помощью команды:
docker service ps webserver
Вы должны увидеть следующую информацию:
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
ia2qc8a5f5n4 webserver.1 httpd:latest Manager-Node Ready Ready 1 second ago
7roily9zpjvq \_ webserver.1 httpd:latest Worker-Node Shutdown Running 15 seconds ago r7nzo325cu73 webserver.2 httpd:latest Manager-Node Running Running 23 minutes ago
С помощью данной статьи, вы смогли установить и настроить кластер Docker Swarm для ОС Ubuntu 16.04. Теперь вы можете легко масштабировать свое приложение в кластере до тысячи узлов и пятидесяти тысяч контейнеров без существенной потери производительности.
Hyper-V - это платформа виртуализации в Windows Server. Hyper-V используется для создания виртуальных машин. Гипервизор также интегрирован в саму структуру облака Microsoft Azure. Эту роль можно включить и в некоторых выпусках Windows 10. Из этого следует, что можно переносить виртуальную машину из Windows 10 в Windows Server, в Azure и обратно без изменения формата виртуальной машины.
В этой статье рассмотрим тему использования оперативной памяти машины Hyper-V.
Динамическая память
Имеется два варианта выделения памяти виртуальным машинам. Может назначаться статический объем памяти или установить параметр динамической памяти. Если назначается статическая величина, то этот объем памяти остается неизменным, независимо в каком состоянии находится виртуальная машина.
При установке динамической памяти в Параметрах можно настроить следующие значения через Windows Admin Center или Консоль Hyper-V:
Startup Memory - это тот объем памяти, который нужен для старта гостевой машины. Он может быть таким же, как минимальный объем памяти, или может быть таким же, как максимальный объем выделенной памяти. После запуска виртуальная машина вместо этого будет использовать то значение, которое указано, как минимальный объем памяти.
Минимальный объем (Minimum Memory. - т.е. меньше указанного значения сервер виртуализации не выделит объем памяти при использовании динамического распределения. Если нескольким виртуальным машинам требуется больше памяти, Hyper-V может уменьшить объем другой виртуальной машины до тех пор, пока не будет достигнуто значение минимального ее объема. Вы можете уменьшить параметр минимального объема памяти во время работы виртуальной машины, но не можете увеличить его, когда виртуальная машина работает.
Максимальный объем памяти (Maximum Memory) - это максимальное значение объема памяти, которое будет выделять хостом виртуализации при включении динамической памяти для виртуальной машины. Вы можете увеличить максимальный объем памяти во время работы виртуальной машины, но не можете уменьшить его, пока виртуальная машина работает.
Memory Buffer - процент памяти, который хост должен выделить виртуальной машине в качестве резерва.
Memory Weight - позволяет настроить способ распределения памяти для разных гостевых систем по отношению друг к другу, запускающихся на том же узле виртуализации.
Как правило, когда вы настраиваете динамическую память, объем используемой памяти будет колебаться между значениями Минимум и Максимум. Следует проводить мониторинг использования памяти ВМ и настраивать эти значения так, чтобы они точно отражали фактические потребности виртуальной машины. в Случае, когда будет выделено минимальное значение памяти ниже того, что фактически необходимо для запуска виртуальной машины, эта нехватка может привести к тому, что узел виртуализации уменьшит объем памяти, выделенной для этого минимального значения памяти, что приведет к остановке работы виртуальной машины.
Smart paging - это специальная технология в Hyper-V, которая работает в определенных условиях при перезагрузке виртуальной машины. Smart paging использует файл на диске для имитации ОЗУ удовлетворения требований к загрузочной памяти, когда значение параметра Startup Memory (память, выделяемая на момент запуска) превышает значение Minimum Memory. Например, вы можете выставить стартовую память на 2048 МБ и минимальную память на 512 МБ для конкретной виртуальной машины. В сценарии, когда на узле виртуализации было доступно 1024 МБ свободной памяти, интеллектуальная подкачка позволит виртуальной машине получить доступ к требуемым 2048 МБ памяти.
Интеллектуальная подкачка активна только в том случае, если одновременно выполняются следующие три условия:
Виртуальная машина перезагружается.
На хосте виртуализации не хватает памяти для соответствия параметру Startup Memory.
Память не может быть освобождена от других виртуальных машин, работающих на том же хосте.
Smart paging не позволит виртуальной машине выполнять "холодный запуск", если необходимый объем памяти для запуска недоступен, но доступен минимальный объем памяти. Функционал используется только тогда, когда виртуальная машина, которая уже работала, перезагружается и выполняются два вышеуказанных условия.
Расположение файла для каждой виртуальной машины можно изменять. По умолчанию они создаются в папке C:ProgramDataMicrosoftWindowsHyper-V. Файл интеллектуальной подкачки создается только при необходимости и удаляется в течение 10 минут после перезапуска виртуальной машины. Расположение файла можно изменить, используя графический интерфейс консоли Hyper-V или командлетом PowerShell, например:
Set-VM "Windows 10" -SmartPagingFilePath D:SmartPaging
Linux обеспечивает детальный контроль над системными службами через systemd с помощью команды systemctl. Службы могут быть включены, выключены, перезапущены, перезагружены или даже включены или отключены при загрузке. Если вы используете Debian, CentOSили Ubuntu, ваша система, вероятно, использует systemd.
Это руководство покажет вам, как использовать основные команды для запуска, остановки и перезапуска служб в Linux.
Базовый синтаксис команды systemctl
Основной синтаксис для использования команды systemctl:
systemctl [command] [service_name]
Как правило, вам нужно запускать это как суперпользователь поэтому команды будут начинаться с sudo.
Как проверить, работает ли служба в Linux
Чтобы проверить, активна ли служба или нет, выполните следующую команду:
sudo systemctl status SERVICE_NAME
Замените SERVICE_NAME на нужный сервис.
В нашем случае мы будем брать за пример веб-сервер Apache.
Интересный факт: в Ubuntu и других дистрибутивах на основе Debian служба Apache называется apache2. В CentOS и других дистрибутивах RedHat служба Apache называется httpd или httpd.service
sudo systemctl status apache2
Так мы проверили состояние Apache. Выходные данные показывают, что служба активна (работает), как на рисунке ниже:
Как перезапустить сервис
Чтобы остановить и перезапустить службу в Linux, используйте команду:
sudo systemctl restart SERVICE_NAME
Где SERVICE_NAME - имя вашего сервиса.
После выполнения команды ваш сервис должен снова заработать. Вы можете проверить состояние с помощью команды status
Для перезапуска нашего сервера Apache используем:
sudo systemctl restart apache2
Как перезагрузить конфигурационные файлы сервиса
Чтобы служба перезагрузила свои файлы конфигурации, введите в терминале следующую команду:
sudo systemctl reload SERVICE_NAME
После перезагрузки проверьте ее состояние командой status для подтверждения.
В нашем примере мы перезагрузили Apache, используя:
sudo systemctl reload apache2
Как запустить сервис
Чтобы запустить службу в Linux вручную, введите в терминале следующее:
sudo systemctl start SERVICE_NAME
Например, команда для запуска службы Apache:
sudo systemctl start apache2
Как остановить сервис
Чтобы остановить активную службу в Linux, используйте следующую команду:
sudo systemctl stop SERVICE_NAME
Для нашего апача используем команду
sudo systemctl stop apache2
Проверьте, остановился ли сервис с помощью команды status. Вывод должен показать, что сервис неактивен - inactive (dead)
Как включить сервис при загрузке
Чтобы настроить службу для запуска при загрузке системы, используйте команду:
sudo systemctl enable SERVICE_NAME
Чтобы включить Apache при загрузке системы, выполните команду:
sudo systemctl enable apache2
Как отключить сервис при загрузке
Вы можете запретить запуск службы при загрузке с помощью команды:
sudo systemctl disable SERVICE_NAME
Например:
sudo systemctl disable apache2