- Resolves #246
This commit is contained in:
Fred Park 2018-12-10 10:50:38 -08:00
Родитель 17e26f091b
Коммит 296c39b39b
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 3C4D545F457737EB
13 изменённых файлов: 153 добавлений и 1 удалений

Просмотреть файл

@ -2,6 +2,13 @@
## [Unreleased] ## [Unreleased]
### Added
- Sample Windows container recipes
### Fixed
- Some commands were incorrectly failing due to nodeid conflicts with
supplied parameters
## [3.6.1] - 2018-12-03 ## [3.6.1] - 2018-12-03
### Added ### Added
- `force_enable_task_dependencies` property in jobs configuration to turn - `force_enable_task_dependencies` property in jobs configuration to turn

Просмотреть файл

@ -100,3 +100,9 @@ potentially lead to a greater occurrence of `unusable` nodes.
#### Does Batch Shipyard support Windows Server Containers? #### Does Batch Shipyard support Windows Server Containers?
* Yes, but with some feature, configuration, and CLI limitations. Please see * Yes, but with some feature, configuration, and CLI limitations. Please see
the [current limitations](99-current-limitations.md) doc for more information. the [current limitations](99-current-limitations.md) doc for more information.
* If you receive OS compatibility mismatches when running your Windows
containers, please ensure you have the correct `--isolation` parameter set,
if required. You can view the Windows container compatibility matrix
[here](https://docs.microsoft.com/virtualization/windowscontainers/deploy-containers/version-compatibility).
To learn more about Hyper-V isolation, please see
[this article](https://docs.microsoft.com/virtualization/windowscontainers/manage-containers/hyperv-container).

Просмотреть файл

@ -0,0 +1,31 @@
# DiskSpd-Windows
This recipe shows how to run the [DiskSpd](https://github.com/Microsoft/diskspd)
tool on a single node running Windows Server Containers.
## Configuration
Please see refer to this [set of sample configuration files](./config) for
this recipe.
### Pool Configuration
Pool properties such as `publisher`, `offer`, `sku`, `vm_size` and
`vm_count` should be set to your desired values.
### Global Configuration
The global configuration should set the following properties:
* `docker_images` array must have a reference to a valid Windows Docker image.
[stefanscherer/diskspd:nano](https://hub.docker.com/r/stefanscherer/diskspd/) can
be used for this recipe.
### Jobs Configuration
The jobs configuration should set the following properties within the `tasks`
array which should have a task definition containing:
* `docker_image` should be the name of the Docker image for this container invocation,
e.g., `stefanscherer/diskspd:nano`
* `additional_docker_run_options` property is needed to set the
[isolation mode](https://docs.microsoft.com/virtualization/windowscontainers/manage-containers/hyperv-container)
for container execution as `--isolation=hyperv`. This is required as this
container is built using the base OS image that is different from the Host
OS. You can view the Windows container compatibility matrix
[here](https://docs.microsoft.com/virtualization/windowscontainers/deploy-containers/version-compatibility).
* `command` should contain the command to pass to the Docker run invocation. For
this example, we use: `-c8192k -d1 testfile.dat`

Просмотреть файл

@ -0,0 +1,5 @@
batch_shipyard:
storage_account_settings: mystorageaccount
global_resources:
docker_images:
- stefanscherer/diskspd:nano

Просмотреть файл

@ -0,0 +1,9 @@
credentials:
batch:
account_key: <batch account key>
account_service_url: <batch account service url>
storage:
mystorageaccount:
account: <storage account name>
account_key: <storage account key>
endpoint: core.windows.net

Просмотреть файл

@ -0,0 +1,7 @@
job_specifications:
- id: diskspd
tasks:
- docker_image: stefanscherer/diskspd:nano
additional_docker_run_options:
- --isolation=hyperv # need to execute with Hyper-V isolation due to container/OS version mismatch
command: -c8192k -d1 testfile.dat

Просмотреть файл

@ -0,0 +1,13 @@
pool_specification:
id: windows
vm_configuration:
platform_image:
publisher: MicrosoftWindowsServer
offer: WindowsServer
sku: 2019-Datacenter-with-Containers-smalldisk
vm_count:
dedicated: 1
low_priority: 0
vm_size: STANDARD_D4_V3
rdp:
username: shipyard

Просмотреть файл

@ -0,0 +1,29 @@
# DotNet-Windows
This recipe shows how to run a sample DotNet application on
a single node running Windows Server Containers.
## Configuration
Please see refer to this [set of sample configuration files](./config) for
this recipe.
### Pool Configuration
Pool properties such as `publisher`, `offer`, `sku`, `vm_size` and
`vm_count` should be set to your desired values.
### Global Configuration
The global configuration should set the following properties:
* `docker_images` array must have a reference to a valid Windows Docker image.
[microsoft/dotnet-samples:dotnetapp-nanoserver-1809](https://hub.docker.com/r/microsoft/dotnet-samples/)
can be used for this recipe.
### Jobs Configuration
The jobs configuration should set the following properties within the `tasks`
array which should have a task definition containing:
* `docker_image` should be the name of the Docker image for this container invocation,
e.g., `microsoft/dotnet-samples:dotnetapp-nanoserver-1809`
* `additional_docker_run_options` property is needed to override the working directory
set by Batch to use the working directory as specified by the image with
`--workdir C:\\app`. Note that not all images will require this option as it is
dependent upon if the application requires starting in a certain working directory.
* `command` should contain the command to pass to the Docker run invocation. This
particular Docker image does not need a command, but will echo anything passed in.

Просмотреть файл

@ -0,0 +1,5 @@
batch_shipyard:
storage_account_settings: mystorageaccount
global_resources:
docker_images:
- microsoft/dotnet-samples:dotnetapp-nanoserver-1809

Просмотреть файл

@ -0,0 +1,9 @@
credentials:
batch:
account_key: <batch account key>
account_service_url: <batch account service url>
storage:
mystorageaccount:
account: <storage account name>
account_key: <storage account key>
endpoint: core.windows.net

Просмотреть файл

@ -0,0 +1,7 @@
job_specifications:
- id: dotnet-app
tasks:
- docker_image: microsoft/dotnet-samples:dotnetapp-nanoserver-1809
additional_docker_run_options:
- --workdir C:\\app # this is needed as Batch sets the working directory to the Batch task
command: "Hello from Batch Shipyard!"

Просмотреть файл

@ -0,0 +1,13 @@
pool_specification:
id: windows
vm_configuration:
platform_image:
publisher: MicrosoftWindowsServer
offer: WindowsServer
sku: 2019-Datacenter-with-Containers-smalldisk
vm_count:
dedicated: 1
low_priority: 0
vm_size: STANDARD_D4_V3
rdp:
username: shipyard

Просмотреть файл

@ -24,6 +24,7 @@ Use the following links to quickly navigate to recipe collections:
5. [Molecular Dynamics (MD)](#md) 5. [Molecular Dynamics (MD)](#md)
6. [RemoteFS](#remotefs) 6. [RemoteFS](#remotefs)
7. [Video Processing](#video) 7. [Video Processing](#video)
8. [Windows](#windows)
## <a name="benchmarks"></a>Benchmarks ## <a name="benchmarks"></a>Benchmarks
#### [HPCG-Infiniband-IntelMPI](./HPCG-Infiniband-IntelMPI) #### [HPCG-Infiniband-IntelMPI](./HPCG-Infiniband-IntelMPI)
@ -194,5 +195,15 @@ single VM NFS server.
## <a name="video"></a>Video Processing ## <a name="video"></a>Video Processing
#### [FFmpeg-GPU](./FFmpeg-GPU) #### [FFmpeg-GPU](./FFmpeg-GPU)
This recipe contains information on how to use containerize This recipe contains information on how to containerize
[FFmpeg](https://ffmpeg.org/) on GPUs for use with the N-series Azure VMs. [FFmpeg](https://ffmpeg.org/) on GPUs for use with the N-series Azure VMs.
## <a name="windows"></a>Windows
#### [DiskSpd-Windows](./DiskSpd-Windows)
This recipe contains information on how to run a containerized version of
the [DiskSpd](https://github.com/Microsoft/diskspd) tool with Windows
Server Containers on Azure VMs.
#### [DotNet-Windows](./DotNet-Windows)
This recipe contains information on how to run a sample DotNet application
with Windows Server Containers on Azure VMs.