Rancherで作る
お⼿軽コンテナ運⽤環境!!
〜 Kubenetes & Mesos 牧場でコンテナ⽜を飼おう!〜
Rancher JP ”Cowboys”
_・)つかまん
@tsukaman
Who am I ?
• 名前:_・)つかまん( @tsukaman )
• 仕事:⽇本ヒューレット・パッカード株式会社
PointNext Hybrid IT CoE 所属
• 担当:打楽器
• 参加:Rancher JP、Mesos User Group Tokyo、
TokyoHacker Space 他 いろいろと・・・
• 好き:⾳楽、息⼦と遊ぶ、ガジェットIYH、眼鏡
• 最近:GPD Pocketが届いて嬉しい
2
3
今⽇お伝えしたいこと
4
眼鏡っていいよね!
5
じゃなくて
6
ウシかわいいよウシ
7
8
9
Rancherはオープンソースの
コンテナ管理プラットフォーム
10
コンテナ(※1)っていいよね!Docker環
境さえあればどこでも動くし、イメー
ジをレポジトリで共有しやすいし、HW
部分から仮想化するVMと違ってアプリ
ケーションプロセスのみの仮想化だか
らオーバーヘッドも少なくて起動もは
やい!アプリケーションのデプロイに
ちょうどいいって感じ!
でも実際に運⽤するときは、Docker環境
を提供するホストのクラスタ管理とか、
コンテナ間の依存を意識したスケジュー
リングや健全性監視とか、ネットワーク
やロギングや名前解決やボリュームとか
の管理もちょうどいい感じにやってくれ
る仕組みも何か考えて⽤意しなくちゃい
けないのよね〜。
※2 彼⼥達はアプリ開発者で⾃分のお茶を淹れてます
※1 ここではDockerコンテナのことを指しています
この仕組みのことを⼀般的に
”コンテナオーケストレーションツール”
といいます
11
12
このへんのが ソレ です。
13
主なオーケストレーションツール
Kubernetes(k8s)(https://kubernetes.io)
Google社が⾃社サービス向け⼤規模コンテナ管理システムの
”Borg”をベースにオープンソースプとして開発したもの。
⻑年培ったコンテナ運⽤ノウハウを活かしたツールとなっており、
Google Container Engineでも利⽤される。現在はCNCFが管理。
Apache Mesos(http://mesos.apache.org)
UCバークレー校の研究から始まり現在はApache財団で管理される。
DC全体のリソースを集約し、巨⼤なリソースプールとして管理できる。
Marathonなど多様な処理フレームワークと組み合わせることができる。
ビッグデータに強みがあり、TwitterやAirbnb、Appleなどで採⽤される。
Docker Swarm(https://www.docker.com)
Docker社が提供するDocker標準とも⾔えるオーケストレーションツール。
複数のDocker環境(ホスト)を1つのリソースプールのように扱うことができる。
以前はDocker Swarmとして独⽴した存在だったが、現在はDocker Engineに
Swarm Modeとして組み込まれて使い勝⼿が向上している。
14
主なオーケストレーションツール
これ全部
で
できるよ!
15
主なオーケストレーションツール
これ全部
で
できるよ!
Cattleとか
Windowsとか
他にもあるよ
16
各種コンテナオーケストレーションツールが
”環境”としてテンプレート化されており、
簡単に構築できるようになっています。
17
ちなみにこんなイメージ(私の妄想)
らんちゃー
(かんりしゃ)
こんてな
(うし)
かんきょう
(ぼくじょう)
18
こんなのが簡単につくれちゃう!
Kubernetes牧場 Mesos牧場 Swarm牧場 Cattle牧場
※ 必要な⼟地(マシンリソース)は別途購⼊(課⾦)してください。
おんぷれみす帝国内 ぱぶりっくくらうど公国内
Rancherの主要なコンポーネント
19
http://rancher.com/docs/rancher/v1.6/en/	より引⽤
20
Rancherのチャームポイント♥
インストールが楽!
♥
画⾯が綺麗!
ホスト追加も簡単!
カタログが便利!
コミュニティが熱い!
マルチな環境で使える!
実績豊富でサポートも充実!
操作がわかりやすい!
簡単なのにパワフル!
充実のRBAC機能!
とても語りきれません!
21
ウシかわいいよウシ♥
22
それでは、作ってみましょうか。
今回のデモ環境
TRY Rancher(https://try.rancher.com)
Rancher Labs社が提供するRancherのお試し環境。
Githubアカウントがあれば誰でも無償でRancherの機能を利⽤できる。
Rancherがどんなものなのかちょっと触ってみたいって時に最適。
CloudGarage(https://cloudgarage.jp)
NHNテコラス社が提供する定額型パブリッククラウドサービス。
安価に複数台のインスタンスを⽉単位で定額利⽤することができる。
Rancher Agentを複数台⽤意してクラスタ構成を使いたいときに便利。
Packet(https://www.packet.co.jp)
Packet社が提供するベアメタルクラウドサービス。
安価にベアメタルサーバを時間単位で利⽤することができる。
仮想サーバではなく物理サーバを占有利⽤できるので⾼パフォーマンス。
23
今回のデモ環境
TRY Rancher(https://try.rancher.com)
CloudGarage(https://cloudgarage.jp)
Packet(https://www.packet.co.jp)
24
利⽤無料!!
複数VMが安い!
ベアメタルが安い!
今回のデモ環境
25
お財布に優しい!!
デモの流れ(完成形)
26
5 Mesos環境ホストデプロイ3 RancherOSインストール
4 K8s環境ホストセットアップ
1 Try Rancherログイン
2 k8s /Mesos 環境の作成
参考構成(より安価に使う場合)
27
デモではCloudGarageは BOX3 / 2GB プラン を利⽤しています。BOX3 / 1GB プラン
だとKubernetes環境にはリソースが不⾜しますので、Packetと環境を⼊れ替えて
構築してください(無料お試しプランは現在ポート制限があるので不向き)。
デモの流れ
28
5 Mesos環境ホストデプロイ3 RancherOSインストール
4 K8s環境ホストセットアップ
1 Try Rancherログイン
2 k8s /Mesos 環境の作成
29
https://try.rancher.com にアクセスし、
必要に応じてお好みの表⽰⾔語に切り替えます。
30
”GitHubで認証”をクリックします。
31
GitHubにログインします。
32
認証内容を確認して、問題が無ければ
”Authorize	rancher”をクリックします。
33
Try	Rancherにログインできたことを確認します。
デモの流れ
34
5 Mesos環境ホストデプロイ3 RancherOSインストール
4 K8s環境ホストセットアップ
1 Try Rancherログイン
2 k8s /Mesos 環境の作成
デモの流れ
35
5 Mesos環境ホストデプロイ3 RancherOSインストール
4 K8s環境ホストセットアップ
1 Try Rancherログイン
2 k8s /Mesos 環境の作成
✓
できた!
デモの流れ
36
5 Mesos環境ホストデプロイ3 RancherOSインストール
4 K8s環境ホストセットアップ
1 Try Rancherログイン
2 k8s /Mesos 環境の作成
✓
37
画⾯左上の環境メニューから
”環境を管理”をクリックします。
38
”環境のテンプレート”の内容を確認します。
その後、”環境を追加”をクリックします。
39
”名前”と”詳細情報”に任意の内容を⼊⼒し、
環境のテンプレートに”Kubernetes“を選択します。
その後、”作成”をクリックします。
40
同様の⼿順で、“環境の追加”から
Mesos環境も作成します。
41
KubernetesとMesosの環境が
作成できたことを確認します。
デモの流れ
42
5 Mesos環境ホストデプロイ3 RancherOSインストール
4 K8s環境ホストセットアップ
1 Try Rancherログイン
2 k8s /Mesos 環境の作成
✓
デモの流れ
43
5 Mesos環境ホストデプロイ3 RancherOSインストール
4 K8s環境ホストセットアップ
1 Try Rancherログイン
2 k8s /Mesos 環境の作成
✓
✓
できた!
デモの流れ
44
5 Mesos環境ホストデプロイ3 RancherOSインストール
4 K8s環境ホストセットアップ
1 Try Rancherログイン
2 k8s /Mesos 環境の作成
✓
✓
45
https://id.cloudgarage.jp/login にアクセスし、
CloudGarageにログインします。
46
”+ インスタンスを追加する”をクリックします。
47
インスタンス選択では”2GBタイプ” を選択し、
イメージ選択に”RancehrOS”の”1.0.3_64bit_ISO”を
選択します(OSバージョンが異なっても可)。
48
”インスタンス名”を任意名で⼊⼒します。
その後、”インスタンス作成”をクリックします。
49
インスタンスが作成されたことを確認します。
その後、インスタス名をクリックします。
50
インスタンスのグローバルネットワーク側
IPアドレスをメモしておきます。
その後、”コンソール表⽰”をクリックします。
51
コマンドラインで ʼsudo passwd rancherʼ を実⾏し、
rancherユーザのパスワードを変更します。
このパスワードはSSHログインで使⽤します。
52
コマンドラインで ʼsudo ros engine	listʼ を実⾏し、
使⽤可能なdockerバージョンを確認します。
現在、Kubernetesは「1.12.XX」のみの対応です。
53
SSHログイン⽤の秘密鍵/公開鍵を作成します。
今回はローカル環境に作業ディレクトリを作成し、
’ssh-keygen –t	ed25519’		を実⾏しています。
54
⽣成した公開鍵をコピーして”cloud-config.yml”を
作成(1)し、内容を編集(2)します。
編集後、メモしておいたIPアドレスを使い、
インスタンスにrancherユーザでSCP転送(3)します。
cloud-config.ymlの内容
#cloud-config
ssh_authorized_keys:
- ssh-ed25519 AAAA…
rancher:
docker:
engine: docker-1.12.6
55
⽣成した公開鍵の内容をこの⾏に
埋め込みます。
以前に確認した利⽤可能な
“1.12.XX“のDockerバージョンを
この⾏で指定します。
YAML形式では”TAB”でのインデントは使えません。
必ず”空⽩”で各⾏のインデントを⾏ってください。
また、インデント位置を各⾏で揃える必要があります。
56
インスタンスにrancherユーザでSSHログイン(1)します。
ログイン後、”cloud-config.yml”を確認(2)します。
ʼsudo ros install	–c	config-engine.yml –d	/dev/vdaʼ を
実⾏(3)してRancherOSをインストールします。
57
インストールの継続と再起動を確認する質問が
途中で表⽰されますがどちらも’y’と回答します。
58
インストールが完了したらISOを取り出します。
コンソール表⽰を確認し、再起動が完了したら
”ISOイメージのアンマウント”をクリックします。
59
ISOイメージのアンマウントの確認がでますので、
”OK”をクリックします。
60
ISOイメージアンマウントの完了を確認します。
この後、画⾯の指⽰に従ってインスタンスの
再起動(強制)を⾏います(コマンド不可)。
61
CloudGarageの管理画⾯に戻り、インスタンスの
詳細情報から”再起動(強制)”をクリックします。
62
インスタンス再起動(強制)の確認がでますので、
”OK”をクリックします。
63
同様の⼿順を繰り返し、RancherOSインスタンスを
合計3台稼働(全て2GBプラン)させ、さらに
各インスタンスのグローバルIPの値をメモします。
64
各インスタンスのホスト公開鍵情報を
ローカル環境のknown_hostsから削除します。
’ssh-keygen –R	各IPアドレス’を実⾏します。
デモの流れ
65
5 Mesos環境ホストデプロイ3 RancherOSインストール
4 K8s環境ホストセットアップ
1 Try Rancherログイン
2 k8s /Mesos 環境の作成
✓
✓
デモの流れ
66
5 Mesos環境ホストデプロイ3 RancherOSインストール
4 K8s環境ホストセットアップ
1 Try Rancherログイン
2 k8s /Mesos 環境の作成
✓
✓
✓
できた!
デモの流れ
67
5 Mesos環境ホストデプロイ3 RancherOSインストール
4 K8s環境ホストセットアップ
1 Try Rancherログイン
2 k8s /Mesos 環境の作成
✓
✓
✓
68
Rancher管理画⾯の左上にある環境メニューから、
以前に作成したKubernetes環境をクリックします。
69
”ホストを追加”をクリックします。
70
”Custom”を選択し、5番の項⽬のコマンド内容を
クリップボードにコピーします。
71
以前に⽣成した秘密鍵を利⽤し各インスタンスに
rancherユーザでSSHログイン(1)します。
ログイン後、コピーしたコマンドを実⾏します(2)。
1台⽬
72
2台⽬
2台⽬のインスタンスでも同様に
コピーしたコマンドを実⾏します。
73
3台⽬
3台⽬のインスタンスでも同様に
コピーしたコマンドを実⾏します。
74
コマンドの実⾏が完了したら、
ログアウトして構いません。
75
Rancher管理画⾯の上部にある
インフラストラクチャメニューから、
”ホスト”をクリックします。
76
各インスタンス(ホスト)内にKubernetes環境で
必要となるコンテナ群が⾃動的に
デプロイされていく様⼦が確認できます。
デモの流れ
77
5 Mesos環境ホストデプロイ3 RancherOSインストール
4 K8s環境ホストセットアップ
1 Try Rancherログイン
2 k8s /Mesos 環境の作成
✓
✓
✓
デモの流れ
78
5 Mesos環境ホストデプロイ3 RancherOSインストール
4 K8s環境ホストセットアップ
1 Try Rancherログイン
2 k8s /Mesos 環境の作成
✓
✓
✓
✓
できた!
デモの流れ
79
5 Mesos環境ホストデプロイ3 RancherOSインストール
4 K8s環境ホストセットアップ
1 Try Rancherログイン
2 k8s /Mesos 環境の作成 ✓
✓✓
✓
80
https://app.packet.net/#/login	にアクセスし、
Packetにログインします。
81
Projectを新規作成します。
既存のProjectを利⽤しても構いません。
82
Project Nameに任意名を⼊⼒します。
83
”Create Project”をクリックします。
84
Projectが作成されたら、Projectの管理画⾯より
”Setting”をクリックします。
85
Project IDの値をメモしておきます。
86
画⾯左側の”API	Keys”をクリックします。
その後、画⾯中央の”here”をクリックして、
API Keyを新規作成します。
87
API Key	Nameに任意名を⼊⼒し、
”Generate”をクリックします。
88
TOKENの値をメモしておきます。
89
Rancher管理画⾯の左上にある環境メニューから、
以前に作成したMesos環境をクリックします。
90
”ホストを追加”をクリックします。
91
”Packet”を選択(1)し、名前を任意名で⼊⼒(2)します。
数のスライダーを動かし”3”に設定し(3)、メモして
おいたProject ID(4)とAPI Key Token(5)を⼊⼒します。
92
任意のサイズ(1)とリージョン(2)を選択(1)し、
その後、“⽣成” (2)をクリックします。
(今回は ”Sunnyvale、 CA” および ”type0” を選択)
93
Docker	Machineの仕組みにより、
⾃動的にPacket上でServerの作成が開始されます。
94
Server作成の様⼦は、Packetの管理画⾯からも
確認することが可能です。
すべてのServerのStatusがGreenになるまで待ちます。
95
各ホスト内にMesos環境で必要となる
コンテナ群が⾃動的にデプロイされていく
様⼦が確認できます。
デモの流れ
96
5 Mesos環境ホストデプロイ3 RancherOSインストール
4 K8s環境ホストセットアップ
1 Try Rancherログイン
2 k8s /Mesos 環境の作成 ✓
✓✓
✓
デモの流れ
97
5 Mesos環境ホストデプロイ3 RancherOSインストール
4 K8s環境ホストセットアップ
1 Try Rancherログイン
2 k8s /Mesos 環境の作成 ✓
✓✓
✓
✓
できた!
98
それでは、使ってみましょうか。
99
Kubernetes環境を使ってみよう
100
各ホストのデプロイが完了したら
画⾯上部にあるKUBERNETESメニューから、
”ダッシュボード”をクリックします。
101
”Kubernetes UI”をクリックします。
102
Kubernetes UIに接続できることを確認します。
103
Rancherの管理画⾯に戻り、上部にある
KUBERNETESメニューから”CLI”をクリックします。
104
Kubernetes	CLIの画⾯からは直接シェルで
kubectlコマンドを実⾏することが可能(1)です。
ローカル環境でkubectlコマンドを実⾏する場合は、
”設定の⽣成”をクリック(2)します。
105
kubectlの為のコンフィグ内容が表⽰されるので
クリップボードにコピーします。
106
ローカル環境にkubectlをインストールします。
macOSの場合は home	brew	を利⽤します。
’brew	install	kubectl’ を実⾏します。
107
ローカル環境に”~/.kube/config”を作成し、
コピーした内容を保存します。
108
kubectlコマンドを実⾏して動作確認をします。
‘kubectl version’でバージョン情報が確認できます。
‘kubectl get	nodes’でノード情報が確認できます。
109
kubectlコマンドを利⽤してKubernetes環境上に
Guest Bookアプリケーションをデプロイします。
‘kubectl create	-f	https://raw.githubusercontent.com/
kubernetes/kubernetes/master/examples/guestbook/
all-in-one/guestbook-all-in-one.yaml’ のコマンドを
改⾏しないで実⾏します。
guestbook-all-in-one.yaml(参考)
apiVersion: v1
kind: Service
metadata:
name: redis-master
labels:
app: redis
tier: backend
role: master
110
spec:
ports:
- port: 6379
targetPort: 6379
selector:
app: redis
tier: backend
role: master
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: redis-master
spec:
replicas: 1
template:
metadata:
labels:
app: redis
role: master
tier: backend
111
spec:
containers:
- name: master
image: gcr.io/google_containers/redis:e2e
# image: redis
resources:
requests:
cpu: 100m
memory: 100Mi
ports:
- containerPort: 6379
guestbook-all-in-one.yaml(参考)
---
apiVersion: v1
kind: Service
metadata:
name: redis-slave
labels:
app: redis
tier: backend
role: slave
112
spec:
ports:
- port: 6379
selector:
app: redis
tier: backend
role: slave
guestbook-all-in-one.yaml(参考)
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: redis-slave
spec:
replicas: 2
template:
metadata:
labels:
app: redis
role: slave
tier: backend
113
spec:
containers:
- name: slave
image: gcr.io/google_samples/gb-redisslave:v1
resources:
requests:
cpu: 100m
memory: 100Mi
env:
- name: GET_HOSTS_FROM
value: dns # or Use -> value: env
ports:
- containerPort: 6379
guestbook-all-in-one.yaml(参考)
---
apiVersion: v1
kind: Service
metadata:
name: frontend
labels:
app: guestbook
tier: frontend
114
spec:
# type: LoadBalancer
ports:
- port: 80
selector:
app: guestbook
tier: frontend
guestbook-all-in-one.yaml(参考)
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: frontend
spec:
replicas: 3
template:
metadata:
labels:
app: guestbook
tier: frontend
115
spec:
containers:
- name: php-redis
image: gcr.io/google-samples/gb-frontend:v4
resources:
requests:
cpu: 100m
memory: 100Mi
env:
- name: GET_HOSTS_FROM
value: dns # or Use -> value: env
ports:
- containerPort: 80
guestbook-all-in-one.yaml(参考)
116
Kubernetes	UIの画⾯左側にある”Workloads”を
クリックすると、アプリケーションのデプロイの
様⼦を確認することができます。
117
デプロイが完了するまで待機します。
118
デプロイが完了したら画⾯左側メニューにある
”Services”をクリックし、frontendサービスに
External Endpointがないことを確認します。
119
Rancher管理画⾯の上部にあるKUBERNETESメニュー
から”インフラストラクチャスタック”をクリック
します。
120
kubernetes-ingress-lbの項⽬にある” ”を
クリックし、”ロードバランサーを追加”を
選択します。
121
名前(1)とリクエストホストポート(2)に任意の値を
⼊⼒します。また、対象サービス(3)は”frontend”、
対象ポート(4)は”80”をそれぞれ指定して
”作成”(5)をクリックします。
122
ロードバランサーが作成されるまで待機します。
完了後インフォメーションボタン(1)をクリックし、
さらにポート情報のリンクをクリックします。
123
Guestbookアプリケーションに
アクセスできることを確認します。
124
Rancherの管理画⾯に戻り、上部にある
インフラストラクチャメニューから、
”ホスト”をクリックします。
125
画⾯左上の”システムコンテナの表⽰”の
チェックを外し、LBのコンテナを確認します。
LBコンテナが載っているホスト名をクリックします。
126
ホストの情報を確認します。
127
ホスト情報の中にあるコンテナ⼀覧から
kubernetes-ingress-lbsのLBコンテナを⾒つけて、
名前をクリックします。
128
LBコンテナの情報を確認します。
129
画⾯右上の” ”をクリックし、
”シェルを実⾏”を選択します。
…
130
Rancherの管理画⾯からコンテナ内部の
Shellが利⽤できることを確認します。
確認後は”閉じる”をクリックします。
131
画⾯右上の” ”をクリックし、
”ログを⾒る”を選択します。
…
132
Rancherの管理画⾯からコンテナのログが
確認できることを確認します。
確認後は”閉じる”をクリックします。
133
Mesos環境を使ってみよう
134
各ホストのデプロイが完了したら
画⾯上部にあるMESOSメニューから、
”概要”をクリックします。
135
”Mesos UI”をクリックします。
136
Mesos UIに接続できることを確認します。
137
Mesos環境に切り替え”概要”の画⾯に進みます。
画⾯左側にある”フレームワークを起動”を
クリックします。
138
Rancherのカタログ画⾯に切り替わります。
デフォルトでカタログにはMesosフレームワークの
”Chronos”と”Marathon”が登録されています。
139
Chronosの”詳細をみる”をクリックします。
140
デフォルトの内容のまま”起動”をクリックします。
141
Marathonも同様にカタログの”詳細を⾒る”から
デフォルトの内容のまま”起動”をクリックします。
142
インフラストラクチャスタックの画⾯に
ChronosとMarathonが追加されたことを確認します。
chronosの名前の左側にある”+”をクリックし、
展開された項⽬からポート番号をクリックします。
143
Chronos UIが表⽰されることを確認します。
確認出来たら画⾯上部中央にある”+ New Job”を
クリックします。
144
NAMEに任意のジョブ名、COMMANDに”date”、
SCHEDULEの右端の欄に”T1M”をそれぞれ⼊⼒し、
上部の”✓Create”をクリックします。
145
ChronosにJobが新しく登録され、
さらに実⾏されたことを確認します。
146
Mesos UI上でも実⾏されたジョブのTaskが
表⽰されることを確認します。
確認後、Task右端の”Sandbox”をクリックします。
147
”stdout”をクリックし、実⾏したTaskの
標準出⼒の内容を表⽰します。
148
dateコマンドが実⾏されたことを確認します。
149
1分間隔でJobが実⾏されている様⼦を確認します。
150
Rancherの管理画⾯に戻ります。
インフラストラクチャスタックの中の
marathonの名前の左側にある”+”をクリックし、
展開された項⽬からポート番号をクリックします。
151
Marathon UIが表⽰されることを確認します。
確認出来たら画⾯中央にある”Create Application”を
クリックします。
152
任意のID名を⼊⼒します。
153
左側メニューの”Docker Container”(1)をクリックし、
Image名に”nginx”(2)を⼊⼒します。
⼊⼒後、”Create Application”(3)をクリックします。
154
デプロイが完了するまで待機します。
完了後、アプリケーション名をクリックします。
155
アプリケーションの情報を確認します。
接続先IPアドレスの80番ポートにアクセスします。
(表⽰のポート番号はここでは無視します)
156
nginxの画⾯が表⽰されることを確認します。
157
Marathon UIに戻ります。
アプリケーション情報の画⾯左上にある
”Scale Application”をクリックします。
158
アプリケーションをスケールする数として
”3”を⼊⼒します。
⼊⼒後、”Scale Application”をクリックします。
159
スケール数に応じてコンテナが増減します。
スケールする様⼦をMarathon UI上で確認します。
160
Mesos UI上でも稼働しているAppplicationのTaskを
確認することが可能です。
161
同様にRancherのホスト画⾯などからでも
Applicationコンテナの情報を確認できます。
162
どう?ウシかわいいでしょ?
Rancherのことで困ったら
Rancher JPを頼ってください!!
⽇本のRancherコミュニティである”Rancher JP”では、
Slackを開設しており毎⽇活発なコミュニケーションがとられています。
Meetupやもくもく会も毎⽉開催されており、困ったことがあったら
すぐに相談できる仲間が沢⼭みつかります。
Rancher JPについての詳細は・・・
Rancher JPの活動や参加⽅法などは、次のスライドで公開しています。
まずは気軽にSlackに参加してみてください!
163
”Rancher JPが仲間になりたそうにこちらを⾒ている”
https://www.slideshare.net/tsukaman/rancher-jp
今後のRancher JPの予定
09/01(⾦) Rancher Meetup #01 in Sapporo
https://rancherjp.connpass.com/event/63218/
09/08(⾦) CROSS 2017(パネルディスカッションに参加)
http://2017.cross-party.com
09/09(⼟)-10(⽇) OSC Tokyo / Fall(出展 & セミナー)
https://www.ospn.jp/osc2017-fall/
09/13(⽔) Rancher Meetup Tokyo #09
https://rancherjp.connpass.com/event/63963/
9/下旬 Rancher ハンズオン #03 & もくもく会(仮)
164ご参加お待ちしております!!
165
またな!

Rancherで作る お手軽コンテナ運用環境!! ~ Kubenetes & Mesos 牧場でコンテナ牛を飼おう!~