diff paper/mk-wm.tex @ 7:790bc05dc78c

update tex, mm
author Ken Miyahira <e175733@ie.u-ryukyu.ac.jp>
date Tue, 04 Aug 2020 15:34:49 +0900
parents db794a6414e4
children aa9a8f31b61d
line wrap: on
line diff
--- a/paper/mk-wm.tex	Mon Aug 03 18:09:52 2020 +0900
+++ b/paper/mk-wm.tex	Tue Aug 04 15:34:49 2020 +0900
@@ -196,8 +196,12 @@
 \end{figure}
 
 \section{サービスの実装}
-本コースでは ブレードサーバが 4 台導入され, 1 台に 1 つ GPU が搭載されている。コンテナ貸出サービスの機能を 1 つにまとめると Docker の操作が 1台のブレードサーバのみになる。
-そこで, 機能ごとに以下の 3 つにサービスに分ける。また, Docker や Kubernetes の操作を HTTP API で提供することで, 図\ref{fig:api} のようにリクエスト先の変更にで複数のブレードサーバにコンテナを分散することができる。
+本コースでは学科システムを教員の指導の下, 学生主体でシステム管理チームと呼ばれる組織によって構築・運用・管理が行われている。
+学科システムはブレードサーバを 4 台, SAN 用ストレージと汎用ストレージをそれぞれ 2台ずつ導入している。本コースの基幹サービスはこのブレードサーバの仮想環境上で VM として動作している。
+新たにサービスを実装するとなると, システム管理チームが運用・管理を行いやすい実装にする必要がある。\par
+Web コンソールや Docker の操作を 1 つにまとめると, Docker コンテナの作成が 1台のブレードサーバのみになってしまう。
+そこで, コンテナ貸出システムは, 機能ごとに以下の 3 つにサービスに分ける。
+Docker や Kubernetes の操作を HTTP API で提供することで, 図\ref{fig:api} のようにリクエスト先の変更で複数のブレードサーバにコンテナを分散することができる。
 だが, 現時点では未実装である。\par
 実装にはDocker や Kubernetes の実装言語であり, 操作するためのライブラリが揃っている Go 言語を使用する。
 \begin{itemize}
@@ -218,14 +222,15 @@
 Web コンソールは本コースの学生や教員が利用するため, 学科のアカウントでログインできる LDAP 認証が必須である。
 また, GUI で操作するため, 新しく GUI の操作に慣れる必要があることから, ユーザが操作しやすい必要がある。\par
 Docker の操作や Kubernetes の操作を行う HTTP API はセッション管理を行わないため, Web コンソールで管理する必要がある。
-そのため, ユーザのコンテナやイメージをデータベースに格納して管理する。
+そのため, ユーザのコンテナやイメージの情報をデータベースに格納して管理する。
 ユーザのアカウントID と コンテナに紐づけられたアカウントID が等しい場合のみ操作を行うことができる。そのため, 他のユーザのコンテナやイメージを操作できない。
-また, ユーザが作成する Docker イメージは他のユーザに共有や非共有ができる。共有されたイメージは共有イメージの一覧に表示され, 他のユーザがコンテナを作成する時に利用することができる。
+また, ユーザが作成する Docker イメージは他のユーザに共有や非共有ができる。共有されたイメージは共有イメージの一覧に表示され, 他のユーザがコンテナ作成時に利用することができる。
 コンテナ作成時にイメージの確認が行われることで, 非共有に設定したイメージを他のユーザが利用することはできない。
 
 \subsection{Docker の操作}
-実装には Docker の操作を行うための SDK である Docker client \cite{dockercli} を使用する。
-Docker は sock に対して curl コマンドで操作できる HTTP API を提供している。sock だと複数のサーバに対応できないため, Go で HTTP API を実装する。\par
+Docker は Docker Engine API を提供している。Docker デーモンは指定した IP アドレスと ポート を リッスンする。 IP アドレスと ポートの指定を行うことで外部から Docker の操作が可能になる。
+だが, Dockr デーモンが稼働しているホスト上の root アクセスを得られるため, 推奨されてない。
+また, 本論文で実装するサービスでは Docker のすべての操作を必要としない。そこで, Docker の操作を行うための SDK \cite{sdk} を使用し, 必要な機能のみを実装する。\par
 サービスを提供する上で Docker の必要となる操作は以下である。
 \begin{itemize}
   \item コンテナの作成
@@ -234,7 +239,6 @@
   \item コンテナへファイル送信
   \item イメージ一覧の取得
   \item イメージの削除
-  \item GitLab Runner の作成
 \end{itemize}