Más contenido relacionado La actualidad más candente (20) Similar a AI分野におけるコンテナオーケストレーションとは (20) Más de Tetsurou Yano (20) AI分野におけるコンテナオーケストレーションとは2. 自己紹介
経歴 : システム運用 10年・ネットワーク 6年・SI 8年
近頃はNextcloud/Rancherを担当
その他 : 全く上達しないRubyist
一番最初のPCは、OKI if-800 でした…。
矢野 哲朗
tetsurow.yano
株式会社スタイルズ
1
20. Pod
1つ以上のコンテナを構成する単位
ポッド内のコンテナは、必ず同じホストにデプロイされることが保証されている
IPアドレスは、Podに付与される。その為、Pod内にあるコンテナはlocalhostで通信できる
Podを管理する上位のReplicasetがある
Kubernetesではコンテナ単位での管理はできず、かならずPod単位での管理となる
19
Pod
Container Container
Pod単位で起動
Node Node
なぜ、Podという概念が必要か?
コンテナ、一つに1つの役割を持たせようとすると、1
つのコンテナに複数のプロセスを含める必要がでてき
てしまう。これはコンテナの原則である1つのコンテナ
には1つのプロセスという考え方から外れてしまう。そ
こで、コンテナ1つに1つのプロセスとしつつ、役割を
与える単位としてPodという概念が追加された。
Pod内のコンテナはIPアドレスとポート、プロセス空間、
ファイルシステムを共有し、プロセス間通信が可能
プロセス、IPアドレス、ファイル
システムを共有する
IPアドレス
21. Replicaset
1つ以上のPodを管理する単位
Pod起動数を指定する(replicas)
Podの起動停止を管理する
Podが起動しているか監視している
Podにはラベルを付け、そのラベルのついているPodを管理する
Replicasetを管理する上位Deploymentがある
20
Replicaset
Pod Pod Pod
replicas: 3
同じラベルのついているPod
が3つになるように起動する
Podが足りなくなっ
たら補うように
自動的に起動する
なぜ、Replicasetという概
念が必要か?
コンテナ環境でのPodは、
プロセスなのでVMと違っ
て落ちてしまうことがあり
ます。またホストがダウン
した場合にもPodは消滅し
ます。それらを避けて冗長
性・スケールをもたせるた
め
25. Config
Map
ConfigMap&Secret
設定用情報を管理する
環境変数で参照することができる
ファイルから作成し、Volumeとしてマウントするとファイルとして参照することができる
24
Config
Map
設定ファイル
設定ファイル
Config
Map
Config
Map
環境変数
環境変数
Pod
Pod
設定ファイル
環境変数
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user
[$time_local] "$request" '
'$status $body_bytes_sent
"$http_referer" '
'"$http_user_agent"
"$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
nginx.conf
nginx.conf
30. TensorFlow Servingのアーキテクチャ
29
TensorFlow Serving のサーバーアーキテクチャは以下のようになっています。
Clientは、gRPC
でAPIを呼び出す
以下のURLが呼び出しリクエストを投げるURI
http://{host}:{port}/v1/models/{model_name}:predict
{host}:サービングサーバーのIPアドレス
{port}:サービングサーバーのポート番号
{model_name}:モデル名
Predict:実行するメソッド名
指定のモデルへ
リクエストを転送
モデルで推論して
返答を返す(複数)
モデルファイル
(複数)
32. TensorFlow Servingを動かす(直起動)
31
1. サービングサーバーバイナリーをインストール
する
2. モデルのディレクトリを構成する
3. model.configを指定する
4. 起動
/root/serving-example/<モデル名>/
/<バージョン>/
assets/
assets.extra/
variables/
variables.data-?????-of-?????
variables.index
saved_model.pb
tensorflow_model_server --model_name='default’
--model_base_path=/root/serving-example/
--model_config_file=/root/model.config
# apt-get update && apt-get install tensorflow-model-server