Mercurial > hg > Papers > 2020 > mk-sigiot
changeset 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 |
files | mm/mk-sigiot.mm mm/mk-sigiot.pdf paper/mk-wm.bib paper/mk-wm.pdf paper/mk-wm.tex |
diffstat | 5 files changed, 16 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/mm/mk-sigiot.mm Mon Aug 03 18:09:52 2020 +0900 +++ b/mm/mk-sigiot.mm Tue Aug 04 15:34:49 2020 +0900 @@ -67,6 +67,9 @@ <node CREATED="1596258014759" ID="ID_444519099" MODIFIED="1596258020768" TEXT="CI/CD トークンの設定"/> <node CREATED="1596258021397" ID="ID_210379123" MODIFIED="1596258031320" TEXT="GitLab Runner の作成"/> </node> +<node CREATED="1596445900887" ID="ID_249627252" MODIFIED="1596445906833" TEXT="Json形式"> +<node CREATED="1596445907244" ID="ID_1036529237" MODIFIED="1596445938660" TEXT="リクエストなどで送信するデータの詳細は必要なのか?"/> +</node> </node> <node CREATED="1596257863021" ID="ID_9116066" MODIFIED="1596257865905" TEXT="NagiKube"> <node CREATED="1596258071662" ID="ID_57220587" MODIFIED="1596258074342" TEXT="コンテナ関連"> @@ -78,6 +81,7 @@ <node CREATED="1596258130401" ID="ID_367785063" MODIFIED="1596258136404" TEXT="Role の定義"/> <node CREATED="1596258136865" ID="ID_1641138387" MODIFIED="1596258141789" TEXT="Role Binding の定義"/> </node> +<node CREATED="1596445941928" ID="ID_1891428669" MODIFIED="1596445944652" TEXT="Json形式"/> </node> </node> <node CREATED="1596258187197" ID="ID_346421964" MODIFIED="1596258200608" TEXT="Web サービス">
--- a/paper/mk-wm.bib Mon Aug 03 18:09:52 2020 +0900 +++ b/paper/mk-wm.bib Tue Aug 04 15:34:49 2020 +0900 @@ -3,7 +3,7 @@ title ="{https://sylabs.io/singularity/}", } -@manual{dockercli, +@manual{sdk, author = "{Docker Engine API}", title ="{https://docs.docker.com/engine/api/}", }
--- 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}