Upload
-
View
202
Download
0
Embed Size (px)
Citation preview
加藤 司•北海道出⾝•クラウドコンサルタント/インテグレータ•Microsoft MVP for Microsoft Azure•コミュニティ活動• JAZUG熊本⽀部(くまあず)•熊本クラウド語ろう会(熊クラ会)
⾃⼰紹介
Docker
•「Docker」(ドッカー)は、Docker社(旧dotCloud)が
開発するオープンソースのコンテナ管理ソフトウェア。
•開発者が簡単にアプリケーションを動かす環境を作るとい
う思想のもとに作られている。
Dockerを使うメリット
•サーバー仮想化と違い、コンテナを利⽤するためオー
バーヘッドが少なく動作が軽い。
•各コンテナは様々なディストリビューションやバー
ジョンを構成できる。
•インフラ環境をコード化することが容易(Dockerfile)
App Service on Linux
•現在提供されているApp ServiceのLinux版
• Linux上でのWebアプリのネイティブな実⾏のサポート
•専⽤App Serivceプランで動作
•Dockerのサポート
Preview
アプリ実⾏⽅法
ランタイムスタックの選択Windows版のWeb Appと同様に使⽤するランタイムを
選択してデプロイが可能
Docker イメージの実⾏Azure Container Registry,Docker Hub,プライベート コンテナー
レジストリからカスタム コンテナーを使⽤可能
ランタイムスタック
必要な設定がされたDocker ImageApp Serviceのドキュメントルートをコンテナから参照
独⾃のランタイムスタックの作成も可能https://github.com/Azure-App-Service
公開されているDockerfileをカスタマイズ
ランタイムスタック
以下の⾔語イメージが提供されているNode.js ( 4.4 , 4.5 , 6.2 , 6.6 , 6.9 , 6.10, 6.11, 8.0, 8.1 )
PHP ( 5.6 , 7.0 )
.Net Core ( 1.0 , 1.1 )
Ruby ( 2.3 )
利⽤できるリージョン
現状提供されているのは以下のリージョンSouth Central US, West US, East US, East US 2,North Central US, Central US, Canada Central,Canada East, Brazil South, North Europe, West Europe,
Southeast Asia, East Asia, Japan West, Japan East,
Australia East, Central India, West India, South India
App Service on Linux注意点
Docker Compose未サポート独⾃のオーケストレーターを採⽤しているため、Docker Composeは未サポート
Data Volumeの追加ができない現状はボリューム追加未対応
Azure Container Registry
•Docker プライベートレジストリ
•WindowsとLinuxのコンテナーイメージを単⼀のレジ
ストリで管理できる
• Azure Active Direcotryによるアクセス管理が可能
Azure Container Instances
•仮想マシン不要のコンテナサービス
•即時起動でき、課⾦は秒単位
•Docker HubやAzure Container Registryからコ
ンテナイメージをプルできる
コマンド (Azure CLI 2.0 )
>az groupcreate--nameRGName --locationeastus
>az containercreate--nameContainerName --imagemicrosoft/helloworld--resource-groupRGName --ip-addresspublic
Azure Container Service
•テンプレートを使⽤したDockerクラスターの構成を展開す
るサービス ※マネージドサービスではありません
•選べるオーケストレーターはDocker Swarm、DC/OS、
Kubernetesで、Marathon,Chronosなどの各種ツール・
APIをサポート
Kubernetes コンポーネント
コンポーネント 役割apiserver kubernetesを操作するAPIの提供controller-manager コンテナの状態・ノード管理などetcd 設定情報の共有とサービス検出を⾏うKVSkubelet 各ノード上のコンテナ作成/削除、ボリューム割り当
てなどkubectl API経由でkubernetesを操作するクライアントツー
ルproxy コンテナのネットワークルーティング・負荷分散scheduler 各ノードにコンテナの割り当てなどを⾏う
ACS上でKubernetes を使うには
#AzureCLI2.0接続#az login
###Kubernetesコマンドラインクライアントのインストール#az acs kubernetes install-cli
###Kubernetesクラスター構成ファイルをダウンロード#az acs kubernetes get-credentials--resource-group=$RESOURCE_GROUP--name=$CLUSTER_NAME
###クラスターノードの確認#kubectl getnodes
###コンテナーの実⾏#kubectl runnginx –imagenginx
###サービスの公開#kubectl exposedeploymentsnginx --port=80--type=LoadBalancer
Azure CLI 2.0の場合
Kubernetes ui
#Kubernetesui 起動#kubectl proxyStartingtoserveon127.0.0.1:8001
起動してブラウザでhttp://localhost:8001
に接続する
Windows Server コンテナー
•Windows Server コンテナー•プロセスと名前空間の分離テクノロジを使⽤してアプリケーションの分離。ホスト+ホスト上で実⾏されているすべてのコンテナーとカーネルを共有。
•Hyper-V コンテナー•各コンテナーを最適化された仮想マシンで実⾏する。Windows Serverコンテナーと⽐較して分離性が向上。
Windows Server Containerの種類
43
項⽬ Windows Serverコンテナ Hyper-Vコンテナ
特徴 軽量・⾼速 ⾼い隔離性
コンテナ 起動:速い実⾏:ホスト上のプロセス
起動:遅い実⾏:Hyper-Vゲスト上のプロセス
隔離性• コンテナは同じホスト
OS上で実⾏される• 他のコンテナの影響を受
ける可能性がある
• コンテナ単位で隔離されるので独⽴性が⾼い
• 他のコンテナの影響をほぼ受けない
Windows Server Container
44ハイパーバイザー(Hyper-V)
Windows カーネル
Windows Server コンテナ
システムプロセス
アプリプロセス
Windows Server コンテナ
システムプロセス
アプリプロセス
Hyper-V Container
45ハイパーバイザー(Hyper-V)
Hyper-V Isolation
Hyper-V Isolation
Windows カーネル Linux カーネル
Windows Server Linux
システムプロセス
アプリプロセス
システムプロセス
アプリプロセス
Windows Subsystem for Linux (WSL)
46ハイパーバイザー(Hyper-V)
Hyper-V コンテナ Hyper-V コンテナ
WSLWindows カーネル
WSLWindows カーネル
Windows Server Linux
システムプロセス
アプリプロセス
システムプロセス
アプリプロセス
Windows Subsystem for LinuxWindows カーネル
Windows Server コンテナ
システムプロセス
アプリプロセス
Linux コンテナ
システムプロセス
アプリプロセス
まとめ
•複雑な構成でなければAzure Container Instanceや
App Service on LinuxはDocker⽤途には最適
•管理はAzureに、スケーリングはお⼿軽に
•普段使いのツールやサービスと連携できる
まとめ
•Web App on Linuxも簡単にコンテナを展開できるサー
ビスですが、Azure Container Instancesはさらに簡略
化されたコンテナ展開サービスです。
•コマンド1つで展開・削除ができるので是⾮お試しくだ
さい!