ocs-docs

付録

用語

用語 説明
利用機関 本サービスを利用する大学、研究所などの機関。
利用グループ 利用機関内の組織。研究室、研究センター、学部など本サービスの接続申込み単位を指す。
VC(仮想クラウド) 利用グループ毎に隔離されたクラウド環境。オンプレミスの計算環境からクラウドプロバイダの計算環境まで含む。
仮想セグメント クラウドプロバイダ上の利用グループ(後述)専用ネットワークセグメント。AWSでは VPC、Azureでは Vnetと呼ばれる。
VCコントローラ クラウド環境構築・管理のためのソフトウェアコントローラ。VCコントローラと略記する。利用グループ毎に提供される。
仮想ルータ VC内のネットワークのルーティング行うためのルータ。
VC責任者 利用グループならびにVCの責任者。接続申込み責任者。
VC管理者 VCコントローラの管理者。VCPマネージャを使用して、VCコントローラのアクセストークン(後述)の管理、クラウドアクセスのクレデンシャル(アカウント、シークレットキーなど)の管理などを行う。VC責任者は複数のVC管理者を指定できる。
VC利用者 利用グループのVCコントローラを使用して、クラウド環境を構築する担当者。VC管理者からアクセストークンを入手して作業する。VC管理者は複数のVC利用者にアクセストークンを発行することができる。
オンデマンド構築サービス運用担当者 NIIの本サービス運用担当者。VCPマネージャ(後述)を使用して、利用グループが使用するVCコントローラの作成・管理・状態監視・保守などを行う。
VCP (Virtual Cloud Provider) VC利用者は利用者の環境にあるVCP SDKを使用してVCPの機能を呼び出し、仮想クラウド環境の構築・管理を行う。
VCPマネージャ VCコントローラの作成・管理などを行う管理ソフトウェア。NIIの本サービス運用担当者が操作する。

VCP JupyterNotebook コンテナ仕様

ベースイメージ

NII(国立情報学研究所)のクラウド運用チームが公開しているJupyter Notebookコンテナ Jupyter-LC_docker を使用する。

Dockerイメージは通常 latest タグ指定により取得するが、VCP向けに動作検証を行う必要があるため、VCP JupyterNotebook のバージョンは Jupyter-LC_docker に比較して半年程度の遅れが生じる可能性がある。

VCP 向けのカスタマイズ

概要

追加パッケージ

Ubuntu package (APT)

Conda package

VCP Manager CA証明書

JupyterNotebookからVCコントローラ、VaultサーバへのアクセスにSSLを使用するために VCP Managerが発行したCA証明書を以下のパスに保存する。

コンテナ起動時に指定する環境変数

以下の環境変数を JupyterNotebookコンテナ起動時に与える必要がある。

JupyterNotebookコンテナ起動方法

環境変数の設定例

export key="最新のVCP用JupyterNotebook TAG"
export image_name=vcpjupyter/cloudop-notebook:$key
export name=cloudop-notebook-$key
export passwd="パスワード"

docker run -d -p 8888:8888 \
     --name $name \
     -e REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt \
     -e PASSWORD=$passwd -e TZ=JST-9 -e SUBDIR=jupyter \
     --restart=always $image_name

JupyterNotebookコンテナのバージョン確認方法

JupyterNotebookログインパスワード変更方法

/notebooks/notebook/tools/chpasswd.sh を利用する。

注意:本scriptを実行すると JupyterNotebook は再起動される

jovyan@519d28789fad:/notebooks/notebook/tools$ bash chpasswd.sh
Enter password: 新しいパスワード
Verify password: 新しいパスワード
[NotebookPasswordApp] Wrote hashed password to /home/jovyan/.jupyter/jupyter_notebook_config.json

VCP Base コンテナ仕様

Baseコンテナの種類

共通機能

OpenSSH サーバ

Docker

VCノード監視

Dockerコンテナメトリクス収集

NFSサーバ

Baseコンテナの環境変数 NFS_AUTOSTART によりNFSサーバ自動起動の要否を指定可能である。 vcp/base:1.8.1-* では NFS v3をサポートする。

NFSの公開ディレクトリ設定は以下のとおり

NFSクライアント

使用方法
  1. NFSクライアントのBaseコンテナで rpcbind コマンドを実行する

  2. NFSクライアントのBaseコンテナで mount コマンドでNFSサーバが公開しているディレクトリをマウントする
    例:

    mount -t nfs :/export /mnt
    

Baseコンテナ起動時のスクリプト実行

Baseコンテナ起動時に、ユーザが指定する任意のスクリプト処理をBase コンテナ上で実行する機能。VC ノードの Power ON API による Base コンテナの再起動時にも同様にスクリプト処理が実行される。

使用方法
Baseコンテナ上での動作

その他 インストール済みソフトウェア

環境変数

以下の環境変数を Base コンテナ起動時に与える必要がある。

VC利用者向け

Baseコンテナの開発者向け

以下の項目は、Baseコンテナを開発する上で必要な環境変数である。

Base コンテナの Listening Port とプロセス

Base コンテナは、 host networking モードで起動されるため、 以下の各 Listening Port はBaseコンテナのホスト側 Port にもバインドされることになる。

port protocol process 備考
22 tcp sshd Baseコンテナのホスト側のsshdは 20022/tcp で稼働する
2375 tcp dockerd  
7947 tcp,udp serf  
7373 tcp serf  
5353 udp serf  
18083 tcp cadvisor  
9445 tcp nvidia_gpu_prometheus_exporter nvidia-docker2 版Baseコンテナのみ

Baseコンテナのバージョン確認方法

Baseコンテナのバージョンを確認するには、実行中のBaseコンテナ内で環境変数 VCP_CONTAINER_VERSION を参照する。

利用可能なBaseコンテナイメージカタログ取得方法

VCコントローラ環境で利用可能なBaseコンテナイメージの一覧は、 Docker registry V2 の API により取得可能である。

Jupyter NotebookなどVCコントローラにアクセス可能な環境から実行する。

Base コンテナの docker run コマンド

VCノード作成時、VCコントローラによるプロビジョニング処理によりクラウドインスタンス上で 以下のような docker run コマンドが実行される。これによりBaseコンテナが起動する。

docker run \
  -d \
  --privileged \
  --net="host" \
  -v /dev:/dev \
  -e MY_PRIVATE_IP=XXX.XXX.XXX.XXX \
  -e VCCCTR_IPADDR=192.168.2.1 -e SERF_NODE_ID=xxxxx -e VCCC_ID=xxxxxx \
  vcp/base:1.6

Baseコンテナの命名規則

release/22.04.0 以降に VCP でリリースするベースコンテナの名前は以下の命名規則に従う。

GPUをサポートしないBaseコンテナの名前は以下のようにつける。

vcp/base:{VCP上でのBaseコンテナのバージョン}-{OSディストリビューション名、バージョン番号}-{CPUアーキテクチャ名}[-{リリース番号}]

GPUをサポートするBaseコンテナの名前は以下のようにつける。

vcp/gpu:{VCP上でのBaseコンテナのバージョン}-{OSディストリビューション名、バージョン番号}-{CPUアーキテクチャ名}-gpu[-{リリース番号}]

Baseコンテナによるログ収集機能

Baseコンテナで稼働するFluentdにより、VCコントローラ管理下において以下のログ収集機能を利用することができる。

目的

VCノード、アプリケーションコンテナログ収集機能は、以下の目的を想定している。

外部仕様

  1. Base コンテナでログを収集し、外部に転送する機能

    • 対象とするログは以下のとおり
      • App コンテナの stdout, stderr ログ
      • Base コンテナ上の Docker デーモン、Serf (死活監視プロセス) ログ
    • Appコンテナのログの収集の手段として fluentd形式のDockerロギング・ドライバ を使用する前提
    • デフォルトの転送先は VC コントローラ
    • 転送先を外部のログ管理サービスやログコレクター(e.g. オンプレミスのログサーバ)などに変更可能
      • Base コンテナ上の Fluentd 設定をVC利用者が記述する
  2. VC コントローラでの Fluentd ログ受信機能

    • ログの保存容量には上限を設ける(現行のVCコントローラは、収集したデータの可用性を十分に確保できないため)
    • VC コントローラでのログ分析・可視化機能
      • Loki + Grafana 機能を標準装備

利用方法

Appコンテナのログ取得の設定
Baseコンテナでのログ転送機能の停止・開始
Baseコンテナのログ転送設定
設定変更手順
  1. 対象のBaseコンテナに SSH 等でログインする。

  2. /etc/fluentd/fluent.conf ファイルを編集する。

    • Baseコンテナにあるデフォルトの fluent.conf には @include /etc/fluentd/config.d/ が記述されているため、 当該ディレクトリに設定ファイル (拡張子 .conf) を配置し、既存の設定に追加することも可能。
  3. fluentd を supervisor 経由で再起動する。

    supervisorctl restart fluentd
    
VC コントローラの Loki 利用
(参考)Docker daemon の debug レベル設定方法

VCPにおけるクラウドプロバイダとオプショナル機能の対応

各クラウドプロバイダで利用可能なVCPのオプショナル機能の対応状況を示す。

プロバイダ名 IPアドレス指定 既存ボリュームのアタッチ タグ ディスク作成VCP REST API 電源On/Off API
aws
azure
aws_spot #2 × #1 #2 ×
sakura ×
oracle ×
vmware × × × ×
hokudai × × × ×
abc × × × ×
aic × × × ×
chameleon × #3 × × × ×

#1 クラウドインスタンスにタグがつかない。スポットリクエストにもタグがつかないことがある。

#2 aws_spotではプロバイダ aws のディスク作成VCP REST APIで作成したディスク(実態は EBSボリューム)をアタッチすることができる。

#3 sharedwan1 を使用した場合、IPアドレスは指定できない。