7. 経済産業省 エネルギー白書 2015 (http://www.enecho.meti.go.jp/about/whitepaper/2015gaiyou/whitepaper2015pdf_h26_nenji.pdf)
米国における電気料金事情
参考: Map of average US residential electricity price by utility service territory (http://en.openei.org/wiki/File:2012_12_14_Electricity_Price-01.jpg)
データセンタ総コスト
約22%減を試算
61. Image creationCode control Deployment Platform
Bare Metal & VM
Container
次に実行イメージの
deploy先である、
Kubernetesの説明
Kubernetes Architecture
62. VM
KubernetesMaster
VM
Keystone
Cinder
VM
etcd proxy kubelet
kube proxy
Pod
App
App App
Pod
App
App
Pod
App
App App
Pod
App
KubernetesNode
P
Calico
Dockerengine
Pod
etcd proxy kubelet
kube-apiserver
P
CalicoDockerengine
Pod
kube-scheduler
Pod
kube-controller-manager
Pod
VM
etcd proxy kubelet
kube proxy
Pod
App
App App
Pod
App
App
Pod
App
App App
Pod
App
KubernetesNode
P
Calico
Dockerengine
Pod
- クラスタを管理するMasterとコンテ
ナが実行されるNodeがある
- コンテナの集合をPodという
- Kubernetesの認証はバックエンドに
Keystoneを使用
- 認可はKeystoneの情報から
Kubernetesのpolicyファイルへスク
リプトで変換
- 外部ストレージとしてCinderを利用
- ネットワークはProject Calicoを利用
Kubernetes Architecture
63. VM
Kubernetes Master
VM
Loadbalancer Node
VM
Pod
App
App
Kubernetes Node
VM
Pod
App
Kubernetes Node
Pod
App
App
iBGP
iBGP iBGP
iBGP
Route Reflector & Gateway
Redistribute ClusterIP and
Pod IPs to Backbone
Advertise Pod IPs(/26)
Advertise ClusterIP
Advertise PodIPs IP(/26)
ClusterIP range : 10.0.0.0/22
Pod IP range: 192.168.0.0/22
Node IP range: 172.16.0.0/22
Kubernetes Networking
- Route Reflectorと各VMがiBGP接続
- 各NodeへPod用アドレスレンジがア
サイン後(Blackholeの設定もされ
る)、iBGP経由で広報
- Pod起動時にアサインされたアドレ
スレンジよりIPが振られる
- PodのアドレスをBackboneへ再配布
することにより他のクラスタからも
Podへアクセス可能になる
64. 192.168.0.0/24
ClusterIP: 10.0.0.100
200.0.0.100
Src address Dst address
① 200.0.0.100 10.0.0.100
② 172.16.0.100 192.168.0.100
③ 192.168.0.100 172.16.0.100
④ 10.0.0.100 200.0.0.100
VM
Loadbalancer Node
VM
Kubernetes Master
VM
Pod
App
App
Kubernetes Node
①
②
③
④
Pod IP: 192.168.0.100
Node IP : 172.16.0.100
ClusterIP range : 10.0.0.0/22
Pod IP range: 192.168.0.0/22
Node IP range: 172.16.0.0/22
External Service Load Balancing
KubernetesのExternalのロードバランス方式
は複数あるが要件に合うものが存在せず
Internalのロードバランス方式をExternalでも
使えるように工夫して解決
1. ClusterIPが広報されているNodeへ
2. DNAT/SNATをしてパケットを送出
※SNATはKubernetesのデフォルトの動作で
ないので注意
3. 送出されたNodeへ
4. NATの逆変換を経てクライアントへ
65. Docker registry
Jenkins Master
Launch Jenkins slave Pod
and run command
hook
Upload Artifactory
pull repository
issue tracking
track commit
build
result
CI support Kubernetes Cluster
master
deploy
APP
Cinder
Persistent
Volume
Keystone
Auth
Tenant Isolation
push
Launch Pod
pull image
master
APP
Cinder
Persistent
Volume
Keystone
Auth
Tenant Isolation
Launch Pod
Kubernetes Cluster #1
for Datacenter A
Nova
Nova
Boot
Kubernetes
node
OpenStack
Admin
Docker
build
master
Boot
Kubernetes
node
Kubernetes Cluster #2
for Datacenter B
Code
Control
Image Creation Deploy to Platform
OpenStackクラスタ
数が30以上
OpenStack on
Kubernetes on
OpenStack
で効率良く管理
66. APP
Openstack Cluster #1
for Datacenter A
Glance
CI support Kubernetes Cluster
push
OpenStack
Admin
qcow2
Image
Teraform
Packer
Code
Control
Image Creation Deploy to Platform
おまけ
KubernetesもImage
deploy
APP
Openstack Cluster #2
for Datacenter B
Glance