Containers Guide
Containers are new and generally exciting development in HPC workloads.
Containers rely on existing kernel features to allow greater user control over
what applications see and can interact with at any given time. For HPC
Workloads, these are usually restricted to the
mount namespace.
Slurm allows container developers to create
SPANK Plugins that can be called at various points of
job execution to support containers. Slurm is generally agnostic to containers
and can be made to start most, if not all, types.
コンテナーは、HPCワークロードにおいて新しく、一般的に刺激的な開発です。コンテナは、既存のカーネル機能に依存して、アプリケーションが表示し、いつでもやり取りできるものをユーザーがより細かく制御できるようにします。HPCワークロードの場合、これらは通常、マウント名前空間に制限されます。Slurmにより、コンテナー開発者は、コンテナーをサポートするためにジョブ実行のさまざまなポイントで呼び出すことができるSPANKプラグインを作成できます。Slurmは一般にコンテナーに依存せず、すべてではないにしても、ほとんどのタイプを開始するように作成できます。
Links to several container varieties are provided below:
いくつかの種類のコンテナへのリンクを以下に示します。
新しいコンテナタイプが常に作成されているため、このリストは完全ではありません。
Container Types
Charliecloud
Charliecloud is user namespace container system sponsored by
LANL to provide HPC containers.
Charliecloud supports the following:
Charliecloudは、HPCコンテナーを提供するためにLANLが提供するユーザー名前空間コンテナーシステムです。Charliecloudは以下をサポートします。
-
Directly called by users
via user namespace support.
ユーザー名前空間のサポートを介してユーザーが直接呼び出す。
- Direct Slurm support currently
in development.
開発中。
- OCI Image support (via wrapper)
OCIイメージのサポート(ラッパー経由)
Docker
Docker currently has multiple design points that make it unfriendly to HPC
systems. The issue that usually stops most sites from using Docker is the
requirement of "only trusted users should be allowed to control your Docker
daemon"
[Docker Security]
which is not acceptable to most HPC systems.
Dockerには現在、HPCシステムに不利になる複数の設計ポイントがあります。通常、ほとんどのサイトでのDockerの使用を停止する問題は、「信頼できるユーザーだけがDockerデーモンを制御できるようにする必要がある」という要件です[Docker Security]。これは、ほとんどのHPCシステムでは受け入れられません。
Sites with trusted users can add them to the docker Unix group and allow them
control Docker directly from inside of jobs. There is currently no direct
support for starting or stopping docker containers in Slurm.
信頼できるユーザーがいるサイトでは、ユーザーをdocker Unixグループに追加して、ジョブの内部から直接Dockerを制御できます。現在、Slurmでは、Dockerコンテナーの開始または停止を直接サポートしていません。
UDOCKER
UDOCKER is Docker feature subset clone that is designed to allow execution of
docker commands without increased user privileges.
UDOCKERはDocker機能のサブセットクローンであり、ユーザー権限を増やすことなくdockerコマンドを実行できるように設計されています。
Kubernetes Pods (k8s)
Kubernetes is a container orchestration system that uses PODs, which are
generally a logical grouping of containers for singular purpose.
Kubernetesは、PODを使用するコンテナーオーケストレーションシステムです。PODは、通常、単一の目的でコンテナーを論理的にグループ化したものです。
There is currently no support for Kubernetes Pods in Slurm.
Users wishing to run OCI images contained in Pods via Slurm might consider
one of the following instead:
現在、SlurmではKubernetesポッドはサポートされていません。Slurmを介してポッドに含まれるOCIイメージを実行したいユーザーは、代わりに次のいずれかを検討できます。
Kubernetes requires root privileges but users could consider using rootless Kubernetes inside of jobs:
Kubernetesにはroot権限が必要ですが、ユーザーはジョブ内でrootなしのKubernetesを使用することを検討できます。
Shifter
Shifter is a container project out of NERSC
to provide HPC containers with full scheduler integration.
Shifterは、完全なスケジューラー統合をHPCコンテナーに提供するNERSCからのコンテナープロジェクトです。
- Shifter provides full
instructions to integrate with Slurm
ShifterはSlurmと統合するための完全な指示を提供します
. - Presentations about Shifter and Slurm:
シフターとスラムに関するプレゼンテーション:
-
Never Port Your Code Again - Docker functionality with Shifter using SLURM
コードを二度と移植しない-SLURMを使用したShifterによるDocker機能 -
Shifter: Containers in HPC Environments
シフター:HPC環境のコンテナー
-
Never Port Your Code Again - Docker functionality with Shifter using SLURM
Singularity
Singularity is hybrid container system that supports:
Singularityは、以下をサポートするハイブリッドコンテナーシステムです。
- Slurm integration via
Plugin. A full description of the plugin was provided in the
SLUG17 Singularity Presentation.
プラグインを介したスラム統合。プラグインの完全な説明は、SLUG17 Singularity Presentationで提供されました。
- User namespace containers via sandbox mode that require no additional
permissions.
追加の権限を必要としないサンドボックスモードを介したユーザー名前空間コンテナー。 - Users directly calling singularity via setuid executable outside of Slurm.
Slurm外のsetuid実行可能ファイルを介して特異性を直接呼び出すユーザー。
ENROOT
Enroot is a user namespace container system sponsored by
NVIDIA
that supports:
Enrootは、NVIDIAが提供するユーザー名前空間コンテナーシステムで、以下をサポートしています。
- Slurm integration via
pyxis
pyxisによるSlurm統合
- Native support for Nvidia GPUs
Nvidia GPUのネイティブサポート - Faster Docker image imports
より高速なDockerイメージのインポート
podman
podman is a user namespace container system sponsored by
Redhat/IBM
that supports:
podmanは、以下をサポートするRedhat / IBMが提供するユーザー名前空間コンテナーシステムです。
- Drop in replacement of Docker.
Dockerの代わりにドロップします。 - Called directly by users. (Currently lacks direct Slurm support).
ユーザーが直接呼び出します。(現在、直接のSlurmサポートはありません)。 - Rootless image building via
buildah
Buildahによるルートレスイメージの構築
- Native OCI Image support
ネイティブOCIイメージのサポート
Sarus
Sarus is a privileged container system sponsored by
ETH Zurich /
CSCS
that supports:
Sarusは、ETH Zurich / CSCSが後援する特権コンテナシステムで、以下をサポートしています。
-
Slurm image synchronization via OCI hook
OCIフックによるスラム画像の同期
- Native OCI Image support
ネイティブOCIイメージのサポート - NVIDIA GPU Support
NVIDIA GPUサポート - Similar design to Shifter
シフターに似たデザイン
Last modified February 2020