Mercurial > hg > Papers > 2020 > mk-sigiot
changeset 10:e4de1a56f77f
add ie-virsh, update figs
author | Ken Miyahira <e175733@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 05 Aug 2020 18:39:09 +0900 |
parents | bf3c55a19edb |
children | 5ae4054bcc94 |
files | mm/mk-sigiot.mm paper/Images/apihukusu.pdf paper/Images/nagi.graffle paper/Images/singularity.pdf paper/Images/whalemountain.pdf paper/mk-wm.bib paper/mk-wm.pdf paper/mk-wm.tex |
diffstat | 8 files changed, 80 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/mm/mk-sigiot.mm Tue Aug 04 17:36:46 2020 +0900 +++ b/mm/mk-sigiot.mm Wed Aug 05 18:39:09 2020 +0900 @@ -32,6 +32,48 @@ <node CREATED="1596256519708" ID="ID_1807874948" MODIFIED="1596256525379" TEXT="attach でコンテナ内に入れる"/> <node CREATED="1596256803032" ID="ID_1965291663" MODIFIED="1596256815907" TEXT="コンテナ数は最大 8 つ"/> </node> +<node CREATED="1596604730778" ID="ID_1090386031" MODIFIED="1596604734921" TEXT="ie-virsh"> +<node CREATED="1596604736564" ID="ID_990493362" MODIFIED="1596604775427" TEXT="virsh をラップ"/> +<node CREATED="1596604958220" ID="ID_1231836067" MODIFIED="1596604969578" TEXT="UID 及び GID でユーザごとの管理"/> +<node CREATED="1596604910872" ID="ID_1632885343" MODIFIED="1596604923967" TEXT="virtualbox で vm image の作成"/> +<node CREATED="1596604995441" ID="ID_1594434805" MODIFIED="1596605007790" TEXT="os の講義の課題で利用された"> +<node CREATED="1596605382043" ID="ID_915411980" MODIFIED="1596605400549" TEXT="手元のPC で VM の作成"/> +<node CREATED="1596605401231" ID="ID_96121949" MODIFIED="1596605428233" TEXT="サーバでにデプロイの一連の流れを学べる"/> +</node> +</node> +</node> +<node CREATED="1596605448733" ID="ID_466704340" MODIFIED="1596605469927" POSITION="left" TEXT="技術概要"> +<node CREATED="1596605782018" ID="ID_1904311427" MODIFIED="1596605784295" TEXT="Docker"> +<node CREATED="1596605784671" ID="ID_1729478527" MODIFIED="1596605787517" TEXT="Dockerfile"/> +</node> +<node CREATED="1596605470258" ID="ID_1607129343" MODIFIED="1596605474866" TEXT="GitLab"> +<node CREATED="1596605476324" ID="ID_1486533972" MODIFIED="1596605483070" TEXT="GitLab CI/CD"> +<node CREATED="1596605591132" ID="ID_687398410" MODIFIED="1596605604955" TEXT="Jenkins の利用"> +<node CREATED="1596605605530" ID="ID_253492122" MODIFIED="1596605625399" TEXT="講義で使用"> +<node CREATED="1596605627416" ID="ID_1136022394" MODIFIED="1596605635858" TEXT="Java の構築"/> +<node CREATED="1596605636151" ID="ID_948493461" MODIFIED="1596605640979" TEXT="hg の設定"/> +<node CREATED="1596605641686" ID="ID_1661793333" MODIFIED="1596605657747" TEXT="CI/CD でテストの実行"/> +<node CREATED="1596605658610" ID="ID_541596865" MODIFIED="1596605669950" TEXT="上の一連の作業が学べる"/> +</node> +</node> +<node CREATED="1596605678806" ID="ID_1884486091" MODIFIED="1596605695696" TEXT="Docker イメージの Build に利用する"> +<node CREATED="1596605699692" ID="ID_333214432" MODIFIED="1596605714034" TEXT="流れを学べるため"/> +<node CREATED="1596605714498" ID="ID_1914361830" MODIFIED="1596605722874" TEXT="Docker イメージの作成を学べる"/> +</node> +</node> +<node CREATED="1596605483760" ID="ID_28933208" MODIFIED="1596605490826" TEXT="GitLab Runner"/> +</node> +<node CREATED="1596605509180" ID="ID_595201674" MODIFIED="1596605512102" TEXT="Kubernetes"> +<node CREATED="1596605513045" ID="ID_1524783268" MODIFIED="1596605533471" TEXT="Deployment"/> +<node CREATED="1596605569311" ID="ID_1578550565" MODIFIED="1596605571471" TEXT="Pod"/> +<node CREATED="1596605534043" ID="ID_1508333056" MODIFIED="1596605536631" TEXT="Service"/> +<node CREATED="1596605536955" ID="ID_839912379" MODIFIED="1596605539100" TEXT="Ingress"/> +<node CREATED="1596605541106" ID="ID_1830915740" MODIFIED="1596605542327" TEXT="Role"> +<node CREATED="1596605552579" ID="ID_1452943986" MODIFIED="1596605557780" TEXT="RBAC アクセス制御"/> +</node> +<node CREATED="1596605542663" ID="ID_1566729023" MODIFIED="1596605551648" TEXT="RoleBinding"/> +</node> +<node CREATED="1596607334503" ID="ID_980233557" MODIFIED="1596607337076" TEXT="Singularity"/> </node> <node CREATED="1596174833170" ID="ID_1088692848" MODIFIED="1596187544768" POSITION="left" TEXT="サービスの設計"> <node CREATED="1596187545465" ID="ID_1781263028" MODIFIED="1596188133346" TEXT="コンテナの説明"/>
--- a/paper/mk-wm.bib Tue Aug 04 17:36:46 2020 +0900 +++ b/paper/mk-wm.bib Wed Aug 05 18:39:09 2020 +0900 @@ -18,17 +18,18 @@ title ="{https://docs.gitlab.com/runner/}", } -@article{ie-docker, - author = "平良 太貴", - title = "IT 技術学習のための教育用計算機システムの研究", - year = "2015", - institution = "琉球大学大学院理工学研究科情報工学専攻", -} - @article{digdog, author = "秋田 海人 and 高瀬 大空 and 上地 悠斗 and 長田 智和 and 谷口 祐治", title = "情報系学科における教育研究情報システムの運用管理並びに新規システムの構築に関する取り組み", year = "2019", institution = "琉球大学大学院理工学研究科情報工学専攻, 琉球大学工学部情報工学科, 琉球大学工学部工学科知能情報コース, 琉球大学工学部情報工学科, 琉球大学工学部情報工学科", journal = "インターネットと運用技術シンポジウム", +} + +@article{ie-virsh, + author = "平良 太貴 and 河野 真治", + title = "OS 授業向けマルチユーザ VM 環境の構築", + year = "2014", + institution = "琉球大学大学院理工学研究科情報工学専攻, 琉球大学工学部情報工学科", + journal = "研究報告システムソフトウェアとオペレーティング・システム(OS)", } \ No newline at end of file
--- a/paper/mk-wm.tex Tue Aug 04 17:36:46 2020 +0900 +++ b/paper/mk-wm.tex Wed Aug 05 18:39:09 2020 +0900 @@ -91,11 +91,35 @@ \section{本コースの類似サービス} -本サービスに類似したサービスとして, Docker をラップし複数のユーザで利用することを目的とした ie-docker \cite{ie-docker}, Kubernetes を利用した教育用コンテナ貸出を目的とした, digdog \cite{digdog} がある。 +本サービスに類似したサービスとして, libvirt の CLI である virsh をラップしマルチユーザ VM 環境を提供する ie-virsh。 +また, Docker をラップし複数のユーザで利用することを目的とした ie-docker \cite{ie-docker}, Kubernetes を利用した教育用コンテナ貸出を目的とした, digdog \cite{digdog} がある。 + +\subsection{ie-virsh} +ie-virsh とは, 本コースの Operating System という講義に向けに libvirt の CLI である virsh をラップし複数のユーザで利用することができる VM 管理ツールである。 +ie-virsh は 本コースの講義に向け作成されたが, 学生の演習でも利用ができる。 +課題では VM の環境を学生が設定し, 情報工学科の持つブレードサーバ上にアップロードし, プログラムの実装や測定を行う。\cite{ie-virsh} +学生は手元の PC で作成した VM をブレードサーバ上にデプロイすることで, 演習環境を構築することができる。 +ie-virsh は ユーザの UID 及び GID 情報を取得することで, 他のユーザの VM を操作させない。表\ref{tb:ie-virsh}は ユーザが利用できる ie-virsh の機能である。 + +\begin{table}[htb] + \begin{center} + \caption{ie-virsh のコマンド} + \begin{tabular}{c|l} \hline + define & XML の template を下に domain を作成 \\ \hline + undefine & define で作成した domain を削除 \\ \hline + list & define で作成した domain の一覧表示 \\ \hline + start & 指定した domain 名の VM を起動 \\ \hline + destroy & 指定した domain 名の VM を停止 \\ \hline + dumpxml & domain の XML を参照 \\ \hline + \end{tabular} + \label{tb:ie-virsh} + \end{center} +\end{table} + \subsection{ie-docker} ie-docker とは Docker をラップし複数のユーザで利用することのできるコンテナ管理ツールである。 利用する学生は ssh でブレードサーバへ接続し, ie-docker を使用してコンテナを操作することができる。 -ie-docker は UID 及び GID 情報を取得し他のユーザのコンテナを操作させない。 +ie-docker は UID 及び GID 情報を取得することで, 他のユーザのコンテナを操作させない。 またユーザが使える docker の機能を制限する。表\ref{tb:ie-docker}が ie-docker で利用できる機能である。 \begin{table}[htb] @@ -179,13 +203,13 @@ そこで, Web コンソールから Singularity 用のイメージをダウンロードできる仕様とする。\par 学生は利用したいイメージをダウンロードし, ブレードサーバへ送信して Singularity を使用する。Singularity を利用する流れを図\ref{fig:singu} に示す。 -\begin{figure}[tb] +\begin{figure*}[tb] \begin{center} - \includegraphics[width=80mm]{Images/whalemountain.pdf} + \includegraphics[width=100mm]{Images/whalemountain.pdf} \end{center} \caption{システム構成} \label{fig:wm} -\end{figure} +\end{figure*} \begin{figure}[tb] \begin{center} @@ -247,7 +271,7 @@ 返却したコンテナID や ネットワークID を下にコンテナ削除やコマンドの実行, ファイルの送信を処理する。 だが, ファイルの送信では JSON 形式ではなく multipart/form-data 形式でリクエストを受ける。\par Docker イメージは GitLab CI/CD を利用して作成するが, Build が成功したかを判断することはできない。 -そのため, Web コンソール側から 5 分に一度イメージの更新リクエストが送られ, Docker イメージの一覧をリストにまとめ返却を行う。\par +そのため, Web コンソール側から 5 分に一度イメージの更新リクエストを受け, Docker イメージの一覧をリストにまとめ返却を行う。\par ユーザが作成するコンテナとは別に GitLab CI/CD で Docker イメージを Build するための GitLab Runner を立てる必要がある。 立ち上げはユーザが Web コンソールで CI/CD トークンの設定時に行われる。GitLab Runner をユーザごとに立ち上げることで, 複数のユーザが同時に Build を行うことができる。