Containers Guide
Containers are new and generally exciting development in HPC workloads.
コンテナーは新しく、一般的にHPCワークロードでエキサイティングな開発です。
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.
HPCワークロードの場合、これらは通常、マウント名前空間に制限されます。
Slurm allows container developers to create
SPANK Plugins that can be called at various points of
job execution to support containers.
Slurmを使用すると、コンテナー開発者は、コンテナーをサポートするためにジョブ実行のさまざまなポイントで呼び出すことができるSPANKプラグインを作成できます。
Slurm is generally agnostic to containers
and can be made to start most, if not all, types.
Slurmは一般にコンテナーに依存せず、すべてではないにしてもほとんどのタイプを開始するように作成できます。
Links to several container varieties are provided below:
いくつかのコンテナの種類へのリンクを以下に示します。
- Charliecloud
- Docker
- UDOCKER
- Rootless Docker
- Kubernetes Pods (k8s)
- Shifter
- Singularity
- ENROOT
- Podman
- Sarus
新しいコンテナタイプが常に作成されているため、このリストは完全ではないことに注意してください。
Container Types
Charliecloud
Charliecloud is user
namespace container system sponsored by
LANL to provide HPC containers.
Charliecloudは、HPCコンテナーを提供するためにLANLが後援するユーザー名前空間コンテナーシステムです。
Charliecloud supports the following:
Charliecloudは以下をサポートします。
-
Directly called by users
via user namespace support.
ユーザー名前空間サポートを介してユーザーから直接呼び出されます。
- Direct Slurm support currently
in development.
開発中。
- OCI Image support (via wrapper)
OCIイメージのサポート(ラッパー経由)
Docker (running as root)
Docker currently has multiple design
points that make it unfriendly to HPC systems.
Dockerには現在、HPCシステムに不向きな複数の設計ポイントがあります。
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の使用が停止する問題は、「信頼できるユーザーのみが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.
信頼できるユーザーがいるサイトは、それらをdocker Unixグループに追加して、ジョブ内から直接Dockerを制御できるようにすることができます。
There is currently no direct
support for starting or stopping docker containers in Slurm.
現在、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機能サブセットクローンです。
Rootless Docker
Rootless Docker (>=v20.10) requires no extra permissions for users and
currently (as of January 2021) has no known security issues with users gaining
privileges.
ルートレスDocker(> = v20.10)は、ユーザーに追加のアクセス許可を必要とせず、現在(2021年1月現在)、ユーザーが特権を取得することに関する既知のセキュリティ問題はありません。
Each user will need to run an instance of the dockerd server on
each node of the job in order to use docker.
dockerを使用するには、各ユーザーがジョブの各ノードでdockerdサーバーのインスタンスを実行する必要があります。
There are currently no helper
scripts or plugins for Slurm to automate the build up or tear down the docker
daemons.
現在、Dockerデーモンのビルドアップまたは破棄を自動化するためのSlurm用のヘルパースクリプトまたはプラグインはありません。
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.
現在、SlurmのKubernetesポッドはサポートされていません。
Users wishing to run OCI images contained in Pods via Slurm might consider
one of the following instead:
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は、NERSCのコンテナプロジェクトであり、HPCコンテナに完全なスケジューラ統合を提供します。
- Shifter provides full
instructions to integrate with Slurm
Shifterは、Slurmと統合するための完全な手順を提供します
. - Presentations about Shifter and Slurm:
Shifterと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:
特異点は、以下をサポートするハイブリッドコンテナシステムです。
- Slurm integration (for singularity v2.x) via
Plugin.
プラグインを介したSlurm統合(特異点v2.xの場合)。
A full description of the plugin was provided in the SLUG17 Singularity Presentation.
プラグインの完全な説明は、SLUG17 SingularityPresentationで提供されました。
- 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
NvidiaGPUのネイティブサポート - 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チューリッヒCSCSが後援する特権コンテナシステムであり、以下をサポートします。
-
Slurm image synchronization via OCI hook
OCIフックを介したSlurm画像の同期
- Native OCI Image support
ネイティブOCIイメージのサポート - NVIDIA GPU Support
NVIDIAGPUサポート - Similar design to Shifter
シフターに似たデザイン
Last modified 21 January 2021