SlideShare a Scribd company logo
1 of 50
CNIふぉーびぎなーず
はやし ともふみ (@s1061123)
Slide: https://bit.ly/2E88Yca
Agenda
● CNIの概要
○ CNIって何?
○ CNIって何をするの?
● CNIの機能
○ CNIってどうやって使われるの?
○ CNIってどうやって設定するの?
● CNIを使ってみよう
○ podmanを使って設定しよう!
○ (中・上級者向け)cnitoolsを使って設定しよう!
Slide: https://bit.ly/2E88Yca
Agenda
● CNIの概要
○ CNIって何?
○ CNIって何をするの?
● CNIの機能
○ CNIってどうやって使われるの?
○ CNIってどうやって設定するの?
● CNIを使ってみよう
○ podmanを使って設定しよう!
○ (中・上級者向け)cnitoolsを使って設定しよう!
Slide: https://bit.ly/2E88Yca
https://twitter.com/ArturGalata/status/1280862694619394049
Slide: https://bit.ly/2E88Yca
https://twitter.com/ArturGalata/status/1281929638974042112
Slide: https://bit.ly/2E88Yca
CNIの概要
● CNIって何?
→コンテナにインターフェイスを追加するためのプラグイン機構を提供する…
Slide: https://bit.ly/2E88Yca
CNIの概要
● CNIって何?
→コンテナにインターフェイスを追加するためのプラグイン機構を提供する…
○ プロジェクトの名前
○ ソフトの仕様 (SPEC=Specification)
○ CNIプロジェクトで開発・配布しているライブラリ
○ CNIプロジェクトで開発・配布しているプラグイン
○ プロジェクト外の人が開発・配布しているプラグイン (過去の経験より)
Slide: https://bit.ly/2E88Yca
CNIの概要
● CNIって何?
→コンテナにインターフェイスを追加するためのプラグイン機構を提供する…
○ プロジェクトの名前
○ ソフトの仕様 (SPEC=Specification)
○ CNIプロジェクトで開発・配布しているライブラリ
○ CNIプロジェクトで開発・配布しているプラグイン
○ プロジェクト外の人が開発・配布しているプラグイン (過去の経験より)
Slide: https://bit.ly/2E88Yca
CNIの概要
● CNIって何?
→コンテナにインターフェイスを追加するためのプラグイン機構を提供する…
○ プロジェクトの名前
■ CNCF (Cloud Native Computing Foundation)が管理しているプロジェクト(Incubating
Projects)の一つ
■ 2017/5にCNCFでホスト
■ https://github.com/containernetworking/
○ CNIプロジェクトで管理しているソフトの仕様 (=Spec,Specification)
○ CNIプロジェクトで開発・配布しているライブラリ
○ CNIプロジェクトで開発・配布しているプラグイン
○ プロジェクト外の人が開発・配布している、CNIの仕様に沿って作られたプラグイン
(過去の経験より)
Slide: https://bit.ly/2E88Yca
CNIの概要
● CNIって何?
→コンテナにインターフェイスを追加するためのプラグイン機構を提供する…
○ プロジェクトの名前
○ CNIプロジェクトで管理しているソフトの仕様 (=Spec,Specification)
■ githubのリポジトリに存在
■ https://github.com/containernetworking/cni/blob/master/SPEC.md
● ↑(=master)は開発版・議論中バージョンで変更の可能性大
● タグ付けされているものが確定している仕様(最新はv0.4.0)
○ 例: https://github.com/containernetworking/cni/blob/spec-v0.4.0/SPEC.md
○ CNIプロジェクトで開発・配布しているライブラリ
○ CNIプロジェクトで開発・配布しているプラグイン
○ プロジェクト外の人が開発・配布している、CNIの仕様に沿って作られたプラグイン
(過去の経験より)
Slide: https://bit.ly/2E88Yca
CNIの概要
● CNIって何?
→コンテナにインターフェイスを追加するためのプラグイン機構を提供する…
○ プロジェクトの名前
○ CNIプロジェクトで管理しているソフトの仕様 (=Spec,Specification)
○ CNIプロジェクトで開発・配布しているライブラリ
■ CNIプロジェクトでCNIプラグイン開発に必要なライブラリ、CNIランタイムのライブラ
リをGo言語で開発
■ https://github.com/containernetworking/cni
○ CNIプロジェクトで開発・配布しているプラグイン
○ プロジェクト外の人が開発・配布している、CNIの仕様に沿って作られたプラグイン
(過去の経験より)
Slide: https://bit.ly/2E88Yca
CNIの概要
● CNIって何?
→コンテナにインターフェイスを追加するためのプラグイン機構を提供する…
○ プロジェクトの名前
○ CNIプロジェクトで管理しているソフトの仕様 (=Spec,Specification)
○ CNIプロジェクトで開発・配布しているライブラリ
○ CNIプロジェクトで開発・配布しているプラグイン
■ CNIプロジェクトでサンプルとなるようなシンプルなプラグインを開発・配布
■ https://github.com/containernetworking/plugins
■ このプラグインにもバージョンが存在(最新はv0.8.6) ←上の仕様のバージョンとは独立!
○ プロジェクト外の人が開発・配布している、CNIの仕様に沿って作られたプラグイン
(過去の経験より)
Slide: https://bit.ly/2E88Yca
CNIの概要
● CNIって何?
→コンテナにインターフェイスを追加するためのプラグイン機構を提供する…
○ プロジェクトの名前
○ CNIプロジェクトで管理しているソフトの仕様 (=Spec,Specification)
○ CNIプロジェクトで開発・配布しているライブラリ
○ CNIプロジェクトで開発・配布しているプラグイン
○ プロジェクト外の人が開発・配布している、CNIの仕様に沿って作られたプラグイン
(過去の経験より)
■ 上のCNIの仕様を充たした、他のコミュニティ・ベンダーによるプラグイン
■ Amazon ECS CNI plugins, calico, cilium, Cisco ACI CNI, Nuage CNI, ovn-kubernetes, NSX-T CNI
Plug-in (https://github.com/containernetworking/cni/ から抜粋)
Slide: https://bit.ly/2E88Yca
CNIの概要
● CNIって何?
→コンテナにインターフェイスを追加するためのプラグイン機構を提供する…
○ プロジェクトの名前
○ CNIプロジェクトで管理しているソフトの仕様 (=Spec,Specification)
○ CNIプロジェクトで開発・配布しているライブラリ
○ CNIプロジェクトで開発・配布しているプラグイン
○ プロジェクト外の人が開発・配布している、CNIの仕様に沿って作られたプラグイン
(過去の経験より)
Slide: https://bit.ly/2E88Yca
CNIの概要
● CNIって何?
→コンテナにインターフェイスを追加するためのプラグイン機構を提供する…
○ プロジェクトの名前
○ CNIプロジェクトで管理しているソフトの仕様 (=Spec,Specification)
○ CNIプロジェクトで開発・配布しているライブラリ
○ CNIプロジェクトで開発・配布しているソフトウェア
○ プロジェクト外の人が開発・配布している、CNIの仕様に沿って作られたソフトウェア
(過去の経験より)
Slide: https://bit.ly/2E88Yca
Agenda
● CNIの概要
○ CNIって何?
○ CNIって何をするの?
● CNIの機能
○ CNIってどうやって使われるの?
○ CNIってどうやって設定するの?
● CNIを使ってみよう
○ podmanを使って設定しよう!
○ (中・上級者向け)cnitoolsを使って設定しよう!
Slide: https://bit.ly/2E88Yca
● CNIって何をするの?
コンテナにインターフェイスを追加します。
Linux
CNIの概要
Pod
kubectl create
-f sample_pod.yml
...
nginx (例)
eth0 lo
Slide: https://bit.ly/2E88Yca
● CNIって何をするの?
コンテナにインターフェイスを追加します。
CNIの概要
1) コンテナランタイム(cri-o, docker等)がコンテナ
用の独立されたリソースをLinux kernelから確保し
ます
○ ファイルシステム
○ PID
○ ネットワーク
○ etc (ユーザーとか)...
参考資料:
https://speakerdeck.com/tenforward/jtf2017
https://www.slideshare.net/s1061123/ss-79184035
Linux
Podになるまえのなにか
kubectl create
-f sample_pod.yml
...
Slide: https://bit.ly/2E88Yca
● CNIって何をするの?
コンテナにインターフェイスを追加します。
CNIの概要
2) 独立したリソース空間には最初何も入っていま
せん(独立している訳ですから)。ですのでそこに
必要なものを入れていきます。
● User (UID)
● コンテナイメージをファイルシステム
にマウント
● ネットワークインターフェイスの追加
Linux
Podになるまえのなにか
kubectl create
-f sample_pod.yml
...
これ!! eth0 lo
Slide: https://bit.ly/2E88Yca
● CNIって何をするの?
コンテナにインターフェイスを追加します。
CNIの概要
3) プロセスに必要なリソースが全て揃った後にプ
ロセス(nginxなど…)を起動します
Linux
Pod
kubectl create
-f sample_pod.yml
...
eth0 lo
nginx (例)
Slide: https://bit.ly/2E88Yca
● CNIって何をするの?
コンテナにインターフェイスを追加します。
CNIの概要
コンテナに繋ぎたいネットワークはその環境によ
って異なります。ですので、ネットワークの追加
・削除をシンプルに(抜き差しができる)プラグイ
ンとして実装することで、同一の操作・環境でお
好みのネットワークに接続することができます。
Linux
Podになるまえのなにか
kubectl create
-f sample_pod.yml
...
eth0 lo
ipvlan? AWS
ECS?
ovn?
ACI?
物理NIC?
Slide: https://bit.ly/2E88Yca
● CNIってどこで使っているの?
→CNIプロジェクトのページに記載されているだけでも以下の通りです
● rkt - container engine
● Kubernetes - a system to simplify container operations
● OpenShift - Kubernetes with additional enterprise features
● Cloud Foundry - a platform for cloud applications
● Apache Mesos - a distributed systems kernel
● Amazon ECS - a highly scalable, high performance container management service
● Singularity - container platform optimized for HPC, EPC, and AI
● OpenSVC - orchestrator for legacy and containerized application stacks
CNIの概要
Slide: https://bit.ly/2E88Yca
Agenda
● CNIの概要
○ CNIって何?
○ CNIって何をするの?
● CNIの機能
○ CNIってどうやって使われるの?
○ CNIってどうやって設定するの?
● CNIを使ってみよう
○ podmanを使って設定しよう!
○ (中・上級者向け)cnitoolsを使って設定しよう!
Slide: https://bit.ly/2E88Yca
CNIってどうやって使われるの?
kubectl
k8s apiserver
(kube-scheduler等)
k8s kubelet
cri-o/docker
podman
CNIを使ったコンテナ起動の例
どこか
コントローラ
コンテナを
起動するノード
Slide: https://bit.ly/2E88Yca
CNIを使ったコンテナ起動の例
CNIってどうやって使われるの?
k8s kubelet
cri-o/docker
podman
コントローラーからの依頼
コンテナを
起動するノード
Slide: https://bit.ly/2E88Yca
CNIを使ったコンテナ起動の例 (podmanの場合)
CNIってどうやって使われるの?
podman
ocicni
libcni CNI
Plugin
podmanがocicniライブラリを使ってlibcniを呼ぶこと
で、CNI Pluginを実行し、コンテナにインターフェイ
スを追加する
Slide: https://bit.ly/2E88Yca
CNIを使ったコンテナ起動の例 (podmanの場合)
CNIってどうやって使われるの?
podman
ocicni
libcni CNI
Plugin
https://github.com/containers/podman
https://github.com/cri-o/ocicni
https://github.com/containernetworking/cni
podmanがcri-oプロジェクトのocicniライブラリを使っ
て、CNIプロジェクトのlibcniを呼ぶことで、CNI
Pluginを実行し、コンテナにインターフェイスを追加
する
Slide: https://bit.ly/2E88Yca
CNIを使ったコンテナ起動の例
CNIってどうやって使われるの?
k8s kubelet
cri-o/docker
podman
コントローラーからの依頼
コンテナを
起動するノード
Slide: https://bit.ly/2E88Yca
CNIを使ったコンテナ起動の例 (Kubernetesの場合)
CNIってどうやって使われるの?
k8s kubelet
cri-o
コントローラーからの依頼
k8s kubelet
docker
コントローラーからの依頼
Slide: https://bit.ly/2E88Yca
CNIを使ったコンテナ起動の例 (Kubernetesの場合)
CNIってどうやって使われるの?
k8s kubelet
cri-o
コントローラーからの依頼
k8s kubelet
docker
コントローラーからの依頼
k8s kubelet
ocicni
libcni CNI
Plugin
libcni
ネットワーク無しで
コンテナ作成!
Slide: https://bit.ly/2E88Yca
CNIを使ったコンテナ起動の例
CNIってどうやって使われるの?
k8s kubelet
cri-o/docker
podman コントローラーからの依頼
コンテナを
起動するノード
→コンテナランタイムがCNIを呼び出すライブラリ(主にlibcni)を使ってCNI Pluginを実行する
Slide: https://bit.ly/2E88Yca
CNI Pluginがどうやって実行されるのか?
どうやって設定されていくのか? → 仕様
(SPEC.md)に記載
CNIってどうやって使われるの?
libcni CNI
Plugin
1: Pluginの実行
2: 実行結果を返す
Slide: https://bit.ly/2E88Yca
CNI Pluginがどうやって実行されるのか?
どうやって設定されていくのか? → 仕様
(SPEC.md)に記載
CNIってどうやって使われるの?
libcni CNI
Plugin
1: Pluginの実行
命令
● インターフェイスの追加/削除?
ネットワークの設定情報
● どんなPluginを使って…
● どのIPを割り当てて…
● どんなインターフェイス名で…
設定するコンテナの情報
● KernelでのコンテナID
● (K8sの場合)Podの名前
● (K8sの場合)Namespace
Slide: https://bit.ly/2E88Yca
CNI Pluginがどうやって実行されるのか?
どうやって設定されていくのか? → 仕様
(SPEC.md)に記載
CNIってどうやって使われるの?
libcni CNI
Plugin
1: Pluginの実行
Pluginに渡されるもの
標準入力
● CNIの設定ファイル (コンテナランタイム側
で設定する。主に/etc/cni/net.d)にあるファイ
ルの中身をそのまま送る
環境変数
● CNI_COMMAND: ADD/DEL/CHECK
● CNI_CONTAINERID: コンテナID
● CNI_NETNS: 設定するコンテナの識別子
● CNI_IFNAME: 追加するインターフェイス名
● CNI_ARGS: (やや古い形の)追加の情報
● CNI_PATH: CNIのプラグインのパス (主にど
ちらか
○ /opt/cni/bin
○ /usr/libexec/cni
Slide: https://bit.ly/2E88Yca
CNI Pluginがどうやって実行されるのか?
どうやって設定されていくのか? → 仕様
(SPEC.md)に記載
CNIってどうやって使われるの?
libcni CNI
Plugin
1: Pluginの実行
実際にやっていることをコマンドにすると…
$ export CNI_PATH=/opt/cni/bin
$ export CNI_COMMAND=ADD
$ export PATH=$CNI_PATH:$PATH
$ export CNI_CONTAINERID=$contid
$ export CNI_NETNS=$netns
$ export CNI_IFNAME=eth0
$ /opt/cni/bin/flannel < /etc/cni/net.d/00-flannel.conf
Slide: https://bit.ly/2E88Yca
CNIってどうやって使われるの?
CNI Pluginの設定ファイルの例(最低限必要なものだと)
{
"name": "myflannel",
"cniVersion": "0.4.0",
"type": "flannel"
}
00-flannel.conf
Slide: https://bit.ly/2E88Yca
CNIってどうやって使われるの?
CNI Pluginの設定ファイルの例(最低限必要なものだと)
{
"name": "myflannel",
"cniVersion": "0.4.0",
"type": "flannel"
}
設定ファイルの名前。
自由に設定可能だけれど、ディレクトリ内では固有
にしておくのが吉
使用するCNI(SPEC)のバージョン。最新は0.4.0
古いものだと使えない機能があるかもしれないので
なるべく最新を使うようにするとよい
使用するPluginの名前。Pluginのバイナリのファイル名
flannelプラグインが行なうこと
● インターフェイス作成
● IPアドレス
00-flannel.conf
Slide: https://bit.ly/2E88Yca
CNIってどうやって使われるの?
CNI Pluginの設定ファイルの例(やや複雑)
{
"name": "mymacvlan",
"cniVersion": "0.4.0",
"type": "macvlan",
"master": "eth0",
"ipam": {
"type": "host-local",
"subnet": "10.10.0.0/16"
}
}
Macvlanを作る元の物理インターフェイスを指定。
macvlan CNIプラグイン固有の設定。
IPAM (IP Address Management)=IPアドレスの管理に
使用するプラグイン用の設定ブロック
IPAM (IP Address Management)=IPアドレスの管理に
使用するプラグインを指定。
使用したいIPアドレスのサブネットを指定。
host-localプラグイン固有の設定。
00-macvlan.conf
Slide: https://bit.ly/2E88Yca
CNIってどうやって使われるの?
CNI Pluginの設定ファイルの例(やや複雑)
{
"name": "mymacvlan",
"cniVersion": "0.4.0",
"type": "macvlan",
"master": "eth0",
"ipam": {
"type": "host-local",
"subnet": "10.10.0.0/16"
}
}
macvlanプラグインが行なうこと
● インターフェースの作成
host-localプラグインが行なうこと
● IPアドレスの設定
00-macvlan.conf
Slide: https://bit.ly/2E88Yca
CNIってどうやって使われるの?
CNI Pluginの設定ファイルの例(もっと複雑)
{
"name": "mymacvlan2",
"cniVersion": "0.4.0",
"plugins": [
{
"cniVersion": "0.4.0",
"type": "macvlan",
"master": "eth0",
"ipam": {
"type": "host-
local",
"subnet": "10.10.0.0/16"
},
},
{
"type": "tuning",
"mtu": 1454
}
]
}
00-macvlan.conflist
複数のPluginを記述するためのブロック
直前に設定したインターフェイス(=macvlan)のMTUを
変更する。tuningプラグイン固有の設定
Slide: https://bit.ly/2E88Yca
CNIってどうやって使われるの?
CNI Pluginの設定ファイルの例(もっと複雑)
{
"name": "mymacvlan2",
"cniVersion": "0.4.0",
"plugins": [
{
"cniVersion": "0.4.0",
"type": "macvlan",
"master": "eth0",
"ipam": {
"type": "host-
local",
"subnet": "10.10.0.0/16"
},
},
{
"type": "tuning",
"mtu": 1454
}
]
}
macvlanプラグインが行なうこと
● インターフェースの作成
host-localプラグインが行なうこと
● IPアドレスの設定
tuningプラグインが行なうこと
● macvlanのインターフェイスの
MTUの設定
00-macvlan.conflist
Slide: https://bit.ly/2E88Yca
CNIってどうやって使われるの?
CNI Pluginの設定ファイルの例(最低限必要なものだと)
Q: もし複数のCNIの設定ファイルを同じ/etc/cni/net.d/に置いていたら?
→動作は各ソフトによって異なるので注意です
● K8s/docker: アルファベット順で一番最初にくるファイルを使用
● K8s/cri-o: 最初に置いたファイルを使用
● podman: デフォルトはアルファベット順。実行時に(CNIの'name’の値で)指定可能 (フ
ァイル名での指定ではないので注意)
Slide: https://bit.ly/2E88Yca
CNI Pluginがどうやって実行されるのか?
どうやって設定されていくのか?
CNIってどうやって使われるの?
libcni CNI
Plugin
2: 実行結果を返す
{
"cniVersion": "0.4.0",
"name": "dbnet",
"type": "tuning",
"sysctl": {
"net.core.somaxconn": "500"
},
"prevResult": {
"ips": [
{
"version": "4",
"address": "10.0.0.5/32",
"interface": 2
}
],
"interfaces": [
{
"name": "cni0",
"mac": "00:11:22:33:44:55"
},
{
"name": "veth3243",
"mac": "55:44:33:22:11:11"
},
{
"name": "eth0",
"mac": "99:88:77:66:55:44",
"sandbox": "/var/run/netns/blue"
}
],
"dns": {
"nameservers": [ "10.1.0.1" ]
}
}
}
Slide: https://bit.ly/2E88Yca
Agenda
● CNIの概要
○ CNIって何?
○ CNIって何をするの?
● CNIの機能
○ CNIってどうやって使われるの?
○ CNIってどうやって設定するの?
● CNIを使ってみよう
○ podmanを使って設定しよう!
Slide: https://bit.ly/2E88Yca
CNIを使ってみよう
なぜpodman?
● CNIのコンフィグのテストがしやすい
● 簡単にインストールできる
Slide: https://bit.ly/2E88Yca
CNIを使ってみよう
podmanを使ってコンテナを立ち上げる方法
podman run <イメージ名> <コマン
ド>$ podman run -it docker.io/centos/tools bash
[root@97a44745c491 /]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
(略)
2: tap0: <BROADCAST,UP,LOWER_UP> mtu 65520 qdisc fq_codel state UNKNOWN group default qlen
1000
link/ether 02:b7:68:b2:dc:46 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.100/24 brd 10.0.2.255 scope global tap0
valid_lft forever preferred_lft forever
inet6 fd00::b7:68ff:feb2:dc46/64 scope global mngtmpaddr dynamic
valid_lft 86399sec preferred_lft 14399sec
inet6 fe80::b7:68ff:feb2:dc46/64 scope link
valid_lft forever preferred_lft forever
注:この場合だとrootlessコンテナで起動するので
slirp4netnsで起動します (CNIではない)
Slide: https://bit.ly/2E88Yca
CNIを使ってみよう
podmanを使ってコンテナを立ち上げる方法
sudo podman run --network=<CNIコンフィグ名> <イメージ名> <コマン
ド>
$ sudo podman run -it --network=podman docker.io/centos/tools bash
[root@7886b3e87f9e /]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
(略)
3: eth0@if27: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether be:ac:f8:be:99:39 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 10.88.0.20/16 brd 10.88.255.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::bcac:f8ff:febe:9939/64 scope link
valid_lft forever preferred_lft forever
● --cni-config-dirでCNIコンフィグファイルのパスを変更可
● CNIで起動する場合rootで実行する必要があります
● CNIコンフィグ名は、CNIのコンフィグファイル内にある
”name”を指定します。ファイル名ではないので注意
Slide: https://bit.ly/2E88Yca
Agenda
● CNIの概要
○ CNIって何?
○ CNIって何をするの?
● CNIの機能
○ CNIってどうやって使われるの?
○ CNIってどうやって設定するの?
● CNIを使ってみよう
○ podmanを使って設定しよう!
Slide: https://bit.ly/2E88Yca
このあとは…?
● podman
● 他にも仕様のドキュメントがあるよ!
○ https://github.com/containernetworking/cni/blob/master/CONVENTIONS.md
○ ‘Capabilities’, ‘runtimeConfig’, ‘args’などの仕様はこちらに記載されています
○ 'Capabilities’ / ’runtimeConfig’をテストしたい場合はcnitoolで可能(podmanではまだ無理です…)
○ https://github.com/containernetworking/cni/tree/master/cnitool
● https://github.com/containernetworking/plugins のコードを読んでみよう!
○ ipvlan, macvlan等は比較的シンプルなので読みやすい…はず
● 他のプラグインを使ってみよう!
Slide: https://bit.ly/2E88Yca
Enjoy!
Slide: https://bit.ly/2E88Yca

More Related Content

What's hot

DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較Akihiro Suda
 
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能Kohei Tokunaga
 
containerdの概要と最近の機能
containerdの概要と最近の機能containerdの概要と最近の機能
containerdの概要と最近の機能Kohei Tokunaga
 
kube-system落としてみました
kube-system落としてみましたkube-system落としてみました
kube-system落としてみましたShuntaro Saiba
 
Kubernetes雑にまとめてみた 2020年8月版
Kubernetes雑にまとめてみた 2020年8月版Kubernetes雑にまとめてみた 2020年8月版
Kubernetes雑にまとめてみた 2020年8月版VirtualTech Japan Inc.
 
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方歩 柴田
 
kubernetes(GKE)環境におけるdatadog利用
kubernetes(GKE)環境におけるdatadog利用kubernetes(GKE)環境におけるdatadog利用
kubernetes(GKE)環境におけるdatadog利用Koichi HARUNA
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」Masahito Zembutsu
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Masahito Zembutsu
 
広く知ってほしいDNSのこと ―とあるセキュリティ屋から見たDNS受難の10年間―
広く知ってほしいDNSのこと ―とあるセキュリティ屋から見たDNS受難の10年間―広く知ってほしいDNSのこと ―とあるセキュリティ屋から見たDNS受難の10年間―
広く知ってほしいDNSのこと ―とあるセキュリティ屋から見たDNS受難の10年間―Tomohiro Nakashima
 
大規模環境のOpenStack アップグレードの考え方と実施のコツ
大規模環境のOpenStackアップグレードの考え方と実施のコツ大規模環境のOpenStackアップグレードの考え方と実施のコツ
大規模環境のOpenStack アップグレードの考え方と実施のコツTomoya Hashimoto
 
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門VirtualTech Japan Inc.
 
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48Preferred Networks
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Etsuji Nakai
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)NTT DATA Technology & Innovation
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーToru Makabe
 
Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。Kenjiro Kubota
 
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)NTT DATA Technology & Innovation
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 

What's hot (20)

DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
 
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
 
containerdの概要と最近の機能
containerdの概要と最近の機能containerdの概要と最近の機能
containerdの概要と最近の機能
 
kube-system落としてみました
kube-system落としてみましたkube-system落としてみました
kube-system落としてみました
 
Kubernetes雑にまとめてみた 2020年8月版
Kubernetes雑にまとめてみた 2020年8月版Kubernetes雑にまとめてみた 2020年8月版
Kubernetes雑にまとめてみた 2020年8月版
 
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
 
kubernetes(GKE)環境におけるdatadog利用
kubernetes(GKE)環境におけるdatadog利用kubernetes(GKE)環境におけるdatadog利用
kubernetes(GKE)環境におけるdatadog利用
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
 
広く知ってほしいDNSのこと ―とあるセキュリティ屋から見たDNS受難の10年間―
広く知ってほしいDNSのこと ―とあるセキュリティ屋から見たDNS受難の10年間―広く知ってほしいDNSのこと ―とあるセキュリティ屋から見たDNS受難の10年間―
広く知ってほしいDNSのこと ―とあるセキュリティ屋から見たDNS受難の10年間―
 
大規模環境のOpenStack アップグレードの考え方と実施のコツ
大規模環境のOpenStackアップグレードの考え方と実施のコツ大規模環境のOpenStackアップグレードの考え方と実施のコツ
大規模環境のOpenStack アップグレードの考え方と実施のコツ
 
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門
 
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
 
Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。
 
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 

Similar to CNIふぉーびぎなーず

【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例
【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例
【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例LIFULL Co., Ltd.
 
Nifty cloud automationでクラウド構築・運用の自動化
Nifty cloud automationでクラウド構築・運用の自動化Nifty cloud automationでクラウド構築・運用の自動化
Nifty cloud automationでクラウド構築・運用の自動化NIFTY Cloud
 
Ansible handson ood2016
Ansible handson ood2016Ansible handson ood2016
Ansible handson ood2016Hideki Saito
 
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングPyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングRansui Iso
 
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜Masaya Aoyama
 
持続的な運用開発のために社内基盤を整えている話 〜auditのCI組み込みやlintの社内PKG化〜
持続的な運用開発のために社内基盤を整えている話 〜auditのCI組み込みやlintの社内PKG化〜持続的な運用開発のために社内基盤を整えている話 〜auditのCI組み込みやlintの社内PKG化〜
持続的な運用開発のために社内基盤を整えている話 〜auditのCI組み込みやlintの社内PKG化〜bitbank, Inc. Tokyo, Japan
 
20110819 関西 kinect勉強会 初級編
20110819 関西 kinect勉強会 初級編20110819 関西 kinect勉強会 初級編
20110819 関西 kinect勉強会 初級編誠 山崎
 
CyberAgentのインフラについて メディア事業編 #catechchallenge
CyberAgentのインフラについて メディア事業編 #catechchallengeCyberAgentのインフラについて メディア事業編 #catechchallenge
CyberAgentのインフラについて メディア事業編 #catechchallengewhywaita
 
Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理Masahito Zembutsu
 
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2Preferred Networks
 
サーバ構築自動化 On aws sqaleの場合
サーバ構築自動化 On aws   sqaleの場合サーバ構築自動化 On aws   sqaleの場合
サーバ構築自動化 On aws sqaleの場合Ryo Kuroda
 
ざっくり始めるCloud Native開発
ざっくり始めるCloud Native開発ざっくり始めるCloud Native開発
ざっくり始めるCloud Native開発YASUKAZU NAGATOMI
 
OpenStackを一発でデプロイ – Juju/MAAS - OpenStack最新情報セミナー 2015年2月
OpenStackを一発でデプロイ – Juju/MAAS  - OpenStack最新情報セミナー 2015年2月OpenStackを一発でデプロイ – Juju/MAAS  - OpenStack最新情報セミナー 2015年2月
OpenStackを一発でデプロイ – Juju/MAAS - OpenStack最新情報セミナー 2015年2月VirtualTech Japan Inc.
 
Canonicalが支える、さくっと使えるUbuntu OpenStack - OpenStack Day in ITpro EXPO 2014
Canonicalが支える、さくっと使えるUbuntu OpenStack - OpenStack Day in ITpro EXPO 2014Canonicalが支える、さくっと使えるUbuntu OpenStack - OpenStack Day in ITpro EXPO 2014
Canonicalが支える、さくっと使えるUbuntu OpenStack - OpenStack Day in ITpro EXPO 2014VirtualTech Japan Inc.
 
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tkKubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tkwhywaita
 

Similar to CNIふぉーびぎなーず (20)

【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例
【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例
【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例
 
Openshift 20191108
Openshift 20191108Openshift 20191108
Openshift 20191108
 
Introduction Pycon2010
Introduction Pycon2010Introduction Pycon2010
Introduction Pycon2010
 
Nifty cloud automationでクラウド構築・運用の自動化
Nifty cloud automationでクラウド構築・運用の自動化Nifty cloud automationでクラウド構築・運用の自動化
Nifty cloud automationでクラウド構築・運用の自動化
 
Ansible handson ood2016
Ansible handson ood2016Ansible handson ood2016
Ansible handson ood2016
 
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングPyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
 
Yapc::Asia_2012
Yapc::Asia_2012Yapc::Asia_2012
Yapc::Asia_2012
 
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
 
持続的な運用開発のために社内基盤を整えている話 〜auditのCI組み込みやlintの社内PKG化〜
持続的な運用開発のために社内基盤を整えている話 〜auditのCI組み込みやlintの社内PKG化〜持続的な運用開発のために社内基盤を整えている話 〜auditのCI組み込みやlintの社内PKG化〜
持続的な運用開発のために社内基盤を整えている話 〜auditのCI組み込みやlintの社内PKG化〜
 
20110819 関西 kinect勉強会 初級編
20110819 関西 kinect勉強会 初級編20110819 関西 kinect勉強会 初級編
20110819 関西 kinect勉強会 初級編
 
CyberAgentのインフラについて メディア事業編 #catechchallenge
CyberAgentのインフラについて メディア事業編 #catechchallengeCyberAgentのインフラについて メディア事業編 #catechchallenge
CyberAgentのインフラについて メディア事業編 #catechchallenge
 
DevOps Conference #1
DevOps Conference #1DevOps Conference #1
DevOps Conference #1
 
Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理
 
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
 
サーバ構築自動化 On aws sqaleの場合
サーバ構築自動化 On aws   sqaleの場合サーバ構築自動化 On aws   sqaleの場合
サーバ構築自動化 On aws sqaleの場合
 
ざっくり始めるCloud Native開発
ざっくり始めるCloud Native開発ざっくり始めるCloud Native開発
ざっくり始めるCloud Native開発
 
OpenStackを一発でデプロイ – Juju/MAAS - OpenStack最新情報セミナー 2015年2月
OpenStackを一発でデプロイ – Juju/MAAS  - OpenStack最新情報セミナー 2015年2月OpenStackを一発でデプロイ – Juju/MAAS  - OpenStack最新情報セミナー 2015年2月
OpenStackを一発でデプロイ – Juju/MAAS - OpenStack最新情報セミナー 2015年2月
 
Openshift 20191128
Openshift 20191128Openshift 20191128
Openshift 20191128
 
Canonicalが支える、さくっと使えるUbuntu OpenStack - OpenStack Day in ITpro EXPO 2014
Canonicalが支える、さくっと使えるUbuntu OpenStack - OpenStack Day in ITpro EXPO 2014Canonicalが支える、さくっと使えるUbuntu OpenStack - OpenStack Day in ITpro EXPO 2014
Canonicalが支える、さくっと使えるUbuntu OpenStack - OpenStack Day in ITpro EXPO 2014
 
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tkKubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
 

More from Tomofumi Hayashi

Opnfv primer how to get into opnfv
Opnfv primer  how to get into opnfv Opnfv primer  how to get into opnfv
Opnfv primer how to get into opnfv Tomofumi Hayashi
 
コンテナのネットワークインターフェース その実装手法とその応用について
コンテナのネットワークインターフェース その実装手法とその応用についてコンテナのネットワークインターフェース その実装手法とその応用について
コンテナのネットワークインターフェース その実装手法とその応用についてTomofumi Hayashi
 
OpenStack Summit Boston DMA Appendix
OpenStack Summit Boston DMA AppendixOpenStack Summit Boston DMA Appendix
OpenStack Summit Boston DMA AppendixTomofumi Hayashi
 
OPNFV Meetup Tokyo #1 / Projects Summary
OPNFV Meetup Tokyo #1 / Projects SummaryOPNFV Meetup Tokyo #1 / Projects Summary
OPNFV Meetup Tokyo #1 / Projects SummaryTomofumi Hayashi
 
nftables: the Next Generation Firewall in Linux
nftables: the Next Generation Firewall in Linuxnftables: the Next Generation Firewall in Linux
nftables: the Next Generation Firewall in LinuxTomofumi Hayashi
 
Ocaml lecture slides 01 at axsh
Ocaml lecture slides 01 at axshOcaml lecture slides 01 at axsh
Ocaml lecture slides 01 at axshTomofumi Hayashi
 

More from Tomofumi Hayashi (9)

4 rhtn tohayash-multus
4 rhtn tohayash-multus4 rhtn tohayash-multus
4 rhtn tohayash-multus
 
Opnfv primer how to get into opnfv
Opnfv primer  how to get into opnfv Opnfv primer  how to get into opnfv
Opnfv primer how to get into opnfv
 
コンテナのネットワークインターフェース その実装手法とその応用について
コンテナのネットワークインターフェース その実装手法とその応用についてコンテナのネットワークインターフェース その実装手法とその応用について
コンテナのネットワークインターフェース その実装手法とその応用について
 
Opnfv handson apex intro
Opnfv handson apex introOpnfv handson apex intro
Opnfv handson apex intro
 
OpenStack Summit Boston DMA Appendix
OpenStack Summit Boston DMA AppendixOpenStack Summit Boston DMA Appendix
OpenStack Summit Boston DMA Appendix
 
Software forwarding path
Software forwarding pathSoftware forwarding path
Software forwarding path
 
OPNFV Meetup Tokyo #1 / Projects Summary
OPNFV Meetup Tokyo #1 / Projects SummaryOPNFV Meetup Tokyo #1 / Projects Summary
OPNFV Meetup Tokyo #1 / Projects Summary
 
nftables: the Next Generation Firewall in Linux
nftables: the Next Generation Firewall in Linuxnftables: the Next Generation Firewall in Linux
nftables: the Next Generation Firewall in Linux
 
Ocaml lecture slides 01 at axsh
Ocaml lecture slides 01 at axshOcaml lecture slides 01 at axsh
Ocaml lecture slides 01 at axsh
 

CNIふぉーびぎなーず