さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July...

70
さくらの Docker ホスティング Arukas 解説 とインフラを える 技術 Shuji Yamada ( 山田 修司 ) @uzyexe Jul 24, 2016
  • date post

    13-Jan-2017
  • Category

    Services

  • view

    5.238
  • download

    3

Transcript of さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July...

Page 1: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

さくらのDockerホスティング Arukasの解説とインフラを支える技術

ShujiYamada(山田修司)@uzyexeJul24,2016

Page 2: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

この時間で学習できること

Page 3: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

1. Arukasのインフラについて

Page 4: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

2. Dockerコンテナの基盤運用について

Page 5: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

3. 運用に伴う痛みについて

Page 6: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

Server Server Server Server

Computing Resource Pool

Container Container Container Container

Service Discover

Service Scheduling

Service Registration Health Check

API Job Scheduler

Inter-Connectivity

Authorization

Customer Service

Service

Physical

Abstract

Process

Orchestration

Auth

Support

Service

Page 7: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

Server Server Server Server

Computing Resource Pool

Container Container Container Container

Service Discover

Service Scheduring

Service Registration Health Check

API Job Scheduler

Inter-Connectivity

Authorization

Customer Service

Service

本日はこのレイヤのお話

Physical

Abstract

Process

Orchestration

Auth

Support

Service

Page 8: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

アジェンダ• 自己紹介 • Arukas の紹介 (5分) • Arukas のインフラについて (15分) • Docker コンテナ基盤の運用について (15分) • まとめ (5分)

Page 9: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

SHUJI YAMADA• さくらインターネット9年目• エンジニア• データセンター運用スタッフ• バックボーンネットワーク運用• さくらのクラウド運用• Docker ホスティング Arukas 担当 <- 今ココ

(山田 修司)

@uzyexe

Page 10: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

What’s

Arukas?

Page 11: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

Run Dockerized Applications

450,000+ Dockerized Applications

Page 12: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

1500 Users

1700 Users

1850+ Users

900 Users

2016/04 2015/05 2016/06 Today

Users

Growth

Page 13: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

1850+ Users

4000 Apps

6000 Containers

Page 14: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

Dockerコンテナを直感的に操作できるWEBコントロールパネルを使って、複数台のコンテナでも簡単に管理するこ

とができます。

標準提供されているAPIを利用することで、それぞれのオペレーションに応じたプログラマブルな制御を実現する

ことができます。

コンテナ用に独自設計されたインフラと、高品質なさくらインターネットのインフラを利用して、Dockerコンテナ

をすぐに利用開始できます。

Docker準拠

API対応

高品質な国産サービス

外部サービス連携(開発中)

Page 15: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

LATEST RELEASES最新リリース

internationalization (i18n)Arukasのコントロールパネルが国際化に対応しました。

Webブラウザの言語設定が英語の場合、説明や項目などが英語表示されます。

API対応パブリックAPIを公開しました。ユーザーは、それぞれのオペレーションに応じたプ

ログラマブルなAPI制御を実現することができるようになりました。

CLI対応コマンドライン操作に対応するGolang製バイナリをリリースしました。コマンドラインからの迅速な操作や、Golangモジュールとしての再利用が可能になりました。

Terraform for Arukas

i18n

API Support

CLI Support

システム構成管理ツールTerraformに対応するArukasのサードパーティプラグインが有志によってリリースされました。Infrastructre as Codeが実現できます。

その他

Page 16: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

VISIONビジョン

インフラサービスの抽象化開発者が自分自身で自由にサービス提供環境を構築できる

アプリケーション開発に専念できるサービスをユーザーに提供する。

Arukas セントリックArukasを基盤としてPaas/SaaS/BaaSなどの高レベルなサービスを実現できる環境

を提供する。

インテグレーション機能の提供サードパーティ製の外部クラウドサービスを、

Arukas上からプラグインモジュールのように簡単に連携利用できるようにする。

Abstraction

Arukas Centric

Pluggable

ポータビリティの実現世界標準的なDockerコンテナに対応し、データを永続的には保持しないことで、

Arukasにロックインされない自由度の高い環境をユーザーに提供する。Portability

Page 17: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

Arukasのインフラを支える技術

Page 18: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

IaaS

InfrastructureKey Trend

lightweight PaaS (CaaS)

Baremetal

PaaS?

~2025

~2020

~2010

teal?

Page 19: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

• Infrastructure as Code • Continuous Integration (CI/CD) • Secure Signing/Trust • +++

• Trusted Registries • Access Control • Policies • +++

• Container Management • Deploy and Scaling • Metrics/Monitoring/Logging • +++

Ship RunBuild

What’sContainer as a Service

Page 20: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

Development Test Production

Version Control CI/CD Deploy

DockerfileDocker Image CloudOn-Premise

Registry

Page 21: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

Development Test Production

Version Control CI/CD Deploy

DockerfileDocker Image

Registry

Page 22: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

User Control Panel

Client

Compose

Container Hosting

Onpremises

Infrastructure

Orchestrator

or

or Volume

Netwroking

Logging

Monitoring

Integrations

Registry

Cloud

API

Page 23: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

Container

Bins/Libs

App-3

Container

Operating System

Orchestrator/Container Scheduler

Infrastructure

Bins/Libs

App-1

APACHEZookeeper

Container

Bins/Libs

App-2

Infrastructureインフラ構成概要

Page 24: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

ZooKeeper

Mesos-Master

Mesos-Master

Mesos-Master

Marathon

Mesos-Slave Mesos-Slave

Task Task Task Task

...

Architecture

Zookeeper / Mesos / Marathon

Executer Executer

Request

Page 25: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

ZooKeeper

Mesos-Master

Mesos-Master

Mesos-Master

Marathon

Mesos-Slave Mesos-Slave

Container Container Container Container

...

Architecture

Zookeeper / Mesos / Marathon

Executer Executer

Request

Page 26: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

Marathon API

Arukas API

Container

libcontainer

exec driver (native)

CLI (Command Line Tool)

Mesos Master

rootfs (overlayfs...)

other drivers...

Mesos Slave

docker daemondocker.sock

network driver

UCP(User Control Panel)

graph driver

Mesos/Marathon

Docker Engine

Arukas UIarukas run ...arukas start ...arukas stop ...

Registries(DockerHub)

Page 27: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

Container Container ContainerContainer

コンテナネットワーク構成概要

収容ホストサーバ

veth

--net=“bridge”

eth0

eth0 (veth)

veth

--net=“bridge”

eth0 (veth)

veth

--net=“bridge”

eth0 (veth)

veth

--net=“bridge”

eth0 (veth)

Bridge (docker0)

Page 28: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

ポートマッピング• コンテナには『ランダムな IPアドレス と ポート』がマッピングされる。(下図において、コンテナの Port 80 は収容ホストサーバの Port 49154 にマッピングされている。)

収容ホストサーバ コンテナ

port 49154

Bri

dge port 80

eth0

ランダム!

Page 29: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

エンドポイント• エンドポイントで『 任意の *.arukascloud.io ドメイン URL 』がマッピングされる。(※ HTTP通信限定)

port 49154

Bri

dge

port 80

ホストサーバ#1 コンテナ

port 32632

Bri

dge

port 80

ホストサーバ#2 コンテナ

Endp

oint

HTTP

HTTPS eth0

eth0

*.arukascloud.io

Internet 空間

Page 30: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

Arukas Domain Endpoint

App

App or DB or PaaS or etc...

Endpoint: https://*.arukascloud.io

Instances: 1

Page 31: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

Arukas Domain Endpoint

AppAppAppAppApp

App or DB or PaaS or etc...

Endpoint: https://*.arukascloud.io

Load Balancing

Scale-OutInstances: 5

Page 32: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

Blue-Green Deployment

Version 2

Version 1

EndpointApps

UpdateVersion 2

Version 1

EndpointApps

Page 33: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

エンドポイントの実体• HAProxy によるリバースプロキシ。(marathon-lb)

• Marathon と連携し、コンテナの動的なポート変動にも追従する。

port 49154

Bri

dge

port 80

ホストサーバ#1 コンテナ

port 32632

Bri

dge

port 80

ホストサーバ#2 コンテナmar

atho

n-lb

HTTP

HTTPS eth0

eth0

*.arukascloud.io

Internet 空間

Page 34: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

Arukas API

Domain

Domain

Domain

Route53

Marathon

Architecture

marathon-lb

marathon-lb

DNSimple

polling and

Auto-generate configure

RestfulJSON API

Request

Page 35: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

marathon-lb 以外の候補• haproxy-consul• Hipache• Bamboo• moxy• Træfɪk• Vamp Router• Vulcand

Page 36: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

評価指標• CPS (Connection per Seconds)

• Simple json Rest API

• SSL Support

• WebSocket Support

• Zero-DownTime (Hot-reload)

• Health Check

• Custom Configuration

• Dynamic name resolution

• Event Driven

• Least Connection (LC)

Page 37: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

コンテナ収容リソース(ゾーン)• ユーザーコンテナを収容するリソースは、『ゾーン』という単位で資源管理。

東京第1ゾーン 東京第2ゾーン

Page 38: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

1ゾーンあたりのクラスタ構成

User’s Container

Mesos* 5-node

Mesos Slave’s* 9+ node

Zookeeper * 5-node

Marathon* 5-node

marathon-lb* 5-node

Arukas UI• User Control Panel• Public API• CLI Tool

User’s ContainerUser’s Container ホストサーバ

コントローラーサーバ

Page 39: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

ゾーンのスケール設計

東京第1ゾーン 東京第2ゾーン 東京第3ゾーン

• ゾーンには必ず何らかのボトルネックが存在する。

Page 40: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

ゾーンのスケール設計• サービス全体としてスケールしていくためには、ゾーンを増設していくこと以外の方法はない。

東京第1ゾーン 東京第2ゾーン 東京第3ゾーン

Page 41: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

監視• インフラのメイン監視/メトリクスは Datadog

• コンテナの HealthCheck は Marathon に委任

• L7までの HealthCheck は marathon-lb

Page 42: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

重点監視ポイント

User’s Container

Mesos* 5-node

Mesos Slave’s* 10+ node

Zookeeper * 5-node

Marathon* 5-node

marathon-lb* 5-node

Arukas UI• User Control Panel• Public API• CLI Tool

User’s ContainerUser’s Container ホストサーバ

コントローラーサーバ

コントローラーサーバ群を重点的に監視!

Page 43: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)
Page 44: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

運用に伴う痛みについて

Page 45: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

Arukasを襲ったトラブル

Page 46: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

46

Page 47: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

ビットコインを全力で掘られて収容ホストがフラップ

Page 48: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

Arukasを襲ったトラブル - 症例1

概要: 100コンテナ以上のビットコインマイナーが・・・

原因: iowait上昇でMesos-Slaveの通信がフラッピング

Page 49: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

Zookeeperのログが肥大化してクラスタ不安定化

Page 50: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

Arukasを襲ったトラブル - 症例2

概要: 余力十分だったはずのZookeeperがフラップ・・・

原因: 再起動を繰り返すコンテナがZookeeperログを逼迫

Page 51: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

Zookeeper再起動後にクラスタ崩壊

Page 52: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

Arukasを襲ったトラブル - 症例3

概要: 他のZookeeperがMaster昇格したのにクラスタ崩壊

原因: 半端に同期されたZookeeperがMasterになってた…

Page 53: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

Dockerイメージを大量にダウンロードされてDisk Full

Page 54: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

Arukasを襲ったトラブル - 症例4

症例: Dockerイメージが多すぎてDisk Full

原因: 定期クリーニング処理の実行間隔が甘かった。

Page 55: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

アップデート作業後には大体動かなくなる!

Page 56: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

Arukasを襲ったトラブル - 症例5

症例: アップデート作業後には大体動かなくなる! 原因: ライブラリ仕様変更、設定書式の仕様変更、各種不具合、原因は多岐に渡る・・・。

Page 57: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

対処方法

•こまめな定期クリーニング処理。•各種制限設定。•バージョン管理の徹底。•キレイに落とす処理の追加。

Page 58: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

キレイにKill or rebootする

•メモリ使用率が逼迫しはじめてる?落とせ!•ディスク使用率が逼迫しはじめてる?落とせ!•サーバ起動時の設定が一部おかしい?落とせ!•中途半端に生き残るよりもキレイに落とす!

Page 59: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

コンテナ基盤運用のリスク• 突然のタイミングで動かなくなる可能性がある。

• すぐに直せる人材が近くに居るとは限らない。

• 規模拡大とともに運用負担が肥大化しやすい。

• 冪○性は過信できない。。

Page 60: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

収容効率の課題• 既存の機器はコンテナの運用など想定していない。(ネットワーク、ストレージ製品など)

• サーバすらコンテナ数千台の運用は想定してない。

• これらを大前提にした設計が必要。

Page 61: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

CPU制限• CPUサイクル、または重み付け制限が可能。

• 大抵の環境では重み付け(cpu-share)だけでいい。

• 共用ホスティングは、サイクルでの制御が必要。

• しかし、CPUサイクル制限は固定的。数秒程度のバーストを許可する設定ができると幸せになれる。

Page 62: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

ディスク容量制限• disk quota は一部ファイルシステムでは可能(device mapper, btrfs, zfs...)

• aufs と overlayfs は quota 非サポート

• ちなみに、Arukas は overlayfs を採用。

• 今後の状況次第では、btrfsに乗り換えるかも。

Page 63: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

ディスク I/O 制限• read/write を iops と bps で制御可能。

• bps は [bytes per second] なので注意…。

• 対象とするディスクデバイス名の指定が必要。

• ディスクデバイス名が変動する環境だと一手間必要。

Page 64: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

セキュリティ• ホストのroot権限を奪取されるリスクはある。

• レンタルサーバやVPSにも同等のリスクはある。

• そのような技術を一切使わない(リスク回避)か。

• 迅速にパッチを当てる努力をする(リスク低減)か。

Page 65: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

まとめ

Page 66: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

設計について• 基盤から検討するなら幅広いノウハウが必要。

• コンテナの増加に伴って、何がボトルネック(頭打ち)になるかは、常に見極めなければいけない。

• 各種トラフィック、パケット、ARP、CPU、メモリ、etc...

• 1クラスタあたり○万コンテナ収容!は幻想です。

Page 67: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

運用について• 初めて遭遇するタイプのトラブルが多い。

• 大体なんでも直せるスキルがないとツライ。

• こまめに保守しないと動かなくなる。

• 障害対応スキルがより重要に。

Page 68: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

痛みを軽減できないものか• Dockerは枯れていない。

• 追い付く努力と姿勢は必要。

• しかし、Dockerの作法は大きく変化してない。

• Dockerの世界観 (UI/UX) に乗ると救われる…かも。

Page 69: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

最後は「運用でカバー。」

Page 70: さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代の最新技術、やってみたSP-俺の屍を越えて行け-』)

(C) Copyright 1996-2016 SAKURA Internet Inc.