changeset 20:c8c18f20120c

update tex
author Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
date Sat, 08 Aug 2020 17:18:13 +0900
parents 0933c5f766e4
children b31ddc8071f1
files paper/mk-wm.bib paper/mk-wm.pdf paper/mk-wm.tex
diffstat 3 files changed, 22 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/paper/mk-wm.bib	Sat Aug 08 16:43:26 2020 +0900
+++ b/paper/mk-wm.bib	Sat Aug 08 17:18:13 2020 +0900
@@ -18,6 +18,16 @@
 title ="{https://docs.gitlab.com/runner/}",
 }
 
+@manual{gitlabcicd,
+author = "{GitLab CI/CD}",
+title ="{https://docs.gitlab.com/ce/ci/}",
+}
+
+@manual{nvidia-docker,
+author = "{NVIDIA Container Toolkit}",
+title ="{https://github.com/NVIDIA/nvidia-docker}",
+}
+
 @article{digdog,
    author	 = "秋田 海人 and 高瀬 大空 and 上地 悠斗 and 長田 智和 and 谷口 祐治",
    title	 = "情報系学科における教育研究情報システムの運用管理並びに新規システムの構築に関する取り組み",
Binary file paper/mk-wm.pdf has changed
--- a/paper/mk-wm.tex	Sat Aug 08 16:43:26 2020 +0900
+++ b/paper/mk-wm.tex	Sat Aug 08 17:18:13 2020 +0900
@@ -87,10 +87,10 @@
 GPU が搭載されている PC は研究室によっては用意されているが, 研究室に所属していない学生は利用することができない。
 そのため, 本コースの学生が学習するための高性能な環境を利用できる新たな仕組みが必要である。\par
 学科のブレードサーバに搭載される GPU は VM の貸出サービスでは利用することができない。そこでコンテナ技術を利用する。
-コンテナ管理ソフトウェアである Docker では NVIDIA Container Toolkit である nvidia-docker を利用することで, 複数のコンテナで GPU を共有することができる。
+コンテナ管理ソフトウェアである Docker では NVIDIA Container Toolkit である nvidia-docker\cite{nvidia-docker} を利用することで, 複数のコンテナで GPU を共有することができる。
 Docker は基本的に root 権限で動作する。また一般ユーザが docker コマンドを使用するには docker グループに追加する必要がある。
 そのため Docker をマルチユーザ環境で使用すると, 他ユーザのコンテナを操作できるなどセキュリティの問題がある。\par
-そこで, 本論文では, Docker と マルチユーザ環境で利用しやすいコンテナプラットフォームである Singularity を利用したコンテナ貸出サービスを提案する。
+そこで, 本論文では, Docker と マルチユーザ環境で利用しやすいコンテナプラットフォームである Singularity\cite{singu} を利用したコンテナ貸出サービスを提案する。
 このコンテナ貸出サービスでは, Web コンソールからコンテナの操作を行うことで他ユーザのコンテナへの操作をさせない。
 また, 本コースの類似サービスの課題でもあった外部リポジトリの利用は, Docker の機能を HTTP API で提供することで解消する。
 
@@ -152,7 +152,7 @@
 
 \subsection{GitLab}
 GitLab とは バージョン管理システムである Git のリポジトリマネージャである。GitLab はオンプレミス環境で利用できるため, 本コースでは GitLab を使用している。
-また, 本研究では GitLab の統合機能の GitLab CI/CD, GitLab CI/CD と組み合わせて使用する GitLab Runner を利用する。\par
+また, 本研究では GitLab の統合機能の GitLab CI/CD\cite{gitlabcicd}, GitLab CI/CD と組み合わせて使用する GitLab Runner\cite{gitlabrunner} を利用する。\par
 GitLab CI/CD は 継続的インテグレーション(CI)・継続的デリバリー(CD)を GitLab から利用することができる。
 CI では GitLab のコードを定期的または自動的にビルド・テストを行う。CD は CI を拡張した機能であり, ビルドやテストだけでなくリリースの準備も行う。
 本コースでは, Operating System という講義で Mercurial と Jenkins を利用してコードのテストを行う課題などがある。\par
@@ -254,7 +254,7 @@
 
 \subsection{イメージの作成}
 Docker イメージの作成は学科で使用している GitLab の CI/CD の CI 機能を利用する。
-ユーザは学科 GitLab から CI トークンを取得し, Web コンソールで取得したトークンをセットする。この時 Docker 側に GitLab Runner の立ち上げを依頼する。
+ユーザは学科 GitLab から CI トークンを取得し, Web コンソールに取得したトークンをセットする。この時 Docker 側に GitLab Runner の立ち上げを依頼する。
 トークンの設定後, Web コンソールから CI 用の YAML ファイルをダウンロードし Dockerfile と一緒に学科 GitLab のリポジトリにプッシュする。
 Docker イメージのビルドが成功すると Web コンソールのイメージ一覧で確認ができる。作成した Docker イメージは編集からイメージの使い方の記述や他の学生に共有するか設定を行える。
 必要なくなったイメージは Web コンソールのイメージ一覧から削除することができる。
@@ -334,10 +334,10 @@
 リクエストからコンテナを作成後, 作成したコンテナID や ネットワークID , コンテナのステータスを返却する。
 返却したコンテナID や ネットワークID を下にコンテナ削除やコマンドの実行, ファイルの送信を処理する。
 だが, ファイルの送信では JSON 形式ではなく multipart/form-data 形式でリクエストを受ける。\par
-Docker イメージは GitLab CI/CD を利用して作成するが, Build が成功したかを判断することはできない。
+Docker イメージは GitLab CI/CD を利用して作成するが, ビルドが成功したかを判断することはできない。
 そのため, Web コンソール側から 5 分に一度イメージの更新リクエストを受け, Docker イメージの一覧をリストにまとめ返却を行う。\par
-ユーザが作成するコンテナとは別に GitLab CI/CD で Docker イメージを Build するための GitLab Runner を立てる必要がある。
-立ち上げはユーザが Web コンソールで CI/CD トークンの設定時に行われる。GitLab Runner をユーザごとに立ち上げることで, 複数のユーザが同時に Build を行うことができる。
+ユーザが作成するコンテナとは別に GitLab CI/CD で Docker イメージをビルドするための GitLab Runner を立てる必要がある。
+立ち上げはユーザが Web コンソールで CI/CD トークンの設定時に行われる。GitLab Runner をユーザごとに立ち上げることで, 複数のユーザが同時にビルドを行うことができる。
 
 \subsection{Kubernetes の操作}
 Docker と同様に Kubernetes のすべての操作を必要としないため, Kubernetes と対話するためのライブラリである client-go \cite{kubecli} を使用し, 必要な機能のみを実装する。
@@ -423,7 +423,11 @@
 イメージの取得時にスキャンを行うなど, セキュリティ対策を考える必要がある。
 
 \section{まとめ}
-本稿では, 本コースで利用する新規サービスの設計と実装を行った。
+本稿では, 本コースで利用する新規サービスの設計と実装, また本コースで利用しているサービスとの比較を行った。
+学生がコンテナ技術を用いて学習環境を利用できるサービスの設計をし, マルチユーザ環境に対応した実装をすることができた。
+学生は学科アカウントを持っていれば, Web コンソールからコンテナの作成ができる。
+また, GitLab CI/CD を利用し Dockerfile から Docker イメージをビルドすることができ, イメージの作成を学ぶこともできる。\par
+今後, テスト環境にデプロイを行い, ユーザやシステム管理チームからのフィードバックをもらい, 改善や実証実験を目指す。
 
 \nocite{*}
 \bibliographystyle{ipsjunsrt}