165
Rancherで作る お⼿軽コンテナ運⽤環境!! Kubenetes & Mesos 牧場でコンテナ⽜を飼おう!〜 Rancher JP ”Cowboys” _・)つかまん @tsukaman

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

Embed Size (px)

Citation preview

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

Rancherで作るお⼿軽コンテナ運⽤環境!!

〜 Kubenetes & Mesos 牧場でコンテナ⽜を飼おう!〜

Rancher JP ”Cowboys”_・)つかまん@tsukaman

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

Who am I ?• 名前:_・)つかまん( @tsukaman )• 仕事:⽇本ヒューレット・パッカード株式会社

PointNext Hybrid IT CoE 所属• 担当:打楽器• 参加:Rancher JP、Mesos User Group Tokyo、

TokyoHacker Space 他 いろいろと・・・• 好き:⾳楽、息⼦と遊ぶ、ガジェットIYH、眼鏡• 最近:GPD Pocketが届いて嬉しい

2

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

3

今⽇お伝えしたいこと

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

4

眼鏡っていいよね!

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

5

じゃなくて

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

6

ウシかわいいよウシ

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

7

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

8

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

9

Rancherはオープンソースのコンテナ管理プラットフォーム

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

10

コンテナ(※1)っていいよね!Docker環境さえあればどこでも動くし、イメージをレポジトリで共有しやすいし、HW部分から仮想化するVMと違ってアプリケーションプロセスのみの仮想化だからオーバーヘッドも少なくて起動もはやい!アプリケーションのデプロイにちょうどいいって感じ!

でも実際に運⽤するときは、Docker環境を提供するホストのクラスタ管理とか、コンテナ間の依存を意識したスケジューリングや健全性監視とか、ネットワークやロギングや名前解決やボリュームとかの管理もちょうどいい感じにやってくれる仕組みも何か考えて⽤意しなくちゃいけないのよね〜。

※2 彼⼥達はアプリ開発者で⾃分のお茶を淹れてます

※1 ここではDockerコンテナのことを指しています

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

この仕組みのことを⼀般的に”コンテナオーケストレーションツール”

といいます

11

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

12

このへんのが ソレ です。

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

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として組み込まれて使い勝⼿が向上している。

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

14

主なオーケストレーションツール

これ全部で

できるよ!

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

15

主なオーケストレーションツール

これ全部で

できるよ!

CattleとかWindowsとか

他にもあるよ

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

16

各種コンテナオーケストレーションツールが”環境”としてテンプレート化されており、簡単に構築できるようになっています。

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

17

ちなみにこんなイメージ(私の妄想)らんちゃー(かんりしゃ)

こんてな(うし)

かんきょう(ぼくじょう)

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

18

こんなのが簡単につくれちゃう!

Kubernetes牧場 Mesos牧場 Swarm牧場 Cattle牧場

※必要な⼟地(マシンリソース)は別途購⼊(課⾦)してください。

おんぷれみす帝国内 ぱぶりっくくらうど公国内

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

Rancherの主要なコンポーネント

19http://rancher.com/docs/rancher/v1.6/en/より引⽤

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

20

Rancherのチャームポイント♥

インストールが楽!♥画⾯が綺麗!

ホスト追加も簡単!

カタログが便利!

コミュニティが熱い!

マルチな環境で使える!

実績豊富でサポートも充実!

操作がわかりやすい!

簡単なのにパワフル!

充実のRBAC機能!

とても語りきれません!

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

21

ウシかわいいよウシ♥

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

22

それでは、作ってみましょうか。

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

今回のデモ環境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

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

今回のデモ環境TRY Rancher(https://try.rancher.com)

CloudGarage(https://cloudgarage.jp)

Packet(https://www.packet.co.jp)

24

利⽤無料!!

複数VMが安い!

ベアメタルが安い!

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

今回のデモ環境

25

お財布に優しい!!

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

デモの流れ(完成形)

26

5 Mesos環境ホストデプロイ3 RancherOSインストール

4 K8s環境ホストセットアップ

1 Try Rancherログイン

2 k8s /Mesos 環境の作成

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

参考構成(より安価に使う場合)

27

デモではCloudGarageは BOX3 / 2GB プラン を利⽤しています。BOX3 / 1GB プランだとKubernetes環境にはリソースが不⾜しますので、Packetと環境を⼊れ替えて構築してください(無料お試しプランは現在ポート制限があるので不向き)。

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

デモの流れ

28

5 Mesos環境ホストデプロイ3 RancherOSインストール

4 K8s環境ホストセットアップ

1 Try Rancherログイン

2 k8s /Mesos 環境の作成

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

29

https://try.rancher.com にアクセスし、必要に応じてお好みの表⽰⾔語に切り替えます。

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

30

”GitHubで認証”をクリックします。

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

31

GitHubにログインします。

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

32

認証内容を確認して、問題が無ければ”Authorizerancher”をクリックします。

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

33

TryRancherにログインできたことを確認します。

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

デモの流れ

34

5 Mesos環境ホストデプロイ3 RancherOSインストール

4 K8s環境ホストセットアップ

1 Try Rancherログイン

2 k8s /Mesos 環境の作成

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

デモの流れ

35

5 Mesos環境ホストデプロイ3 RancherOSインストール

4 K8s環境ホストセットアップ

1 Try Rancherログイン

2 k8s /Mesos 環境の作成

できた!

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

デモの流れ

36

5 Mesos環境ホストデプロイ3 RancherOSインストール

4 K8s環境ホストセットアップ

1 Try Rancherログイン

2 k8s /Mesos 環境の作成

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

37

画⾯左上の環境メニューから”環境を管理”をクリックします。

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

38

”環境のテンプレート”の内容を確認します。その後、”環境を追加”をクリックします。

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

39

”名前”と”詳細情報”に任意の内容を⼊⼒し、環境のテンプレートに”Kubernetes“を選択します。その後、”作成”をクリックします。

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

40

同様の⼿順で、“環境の追加”からMesos環境も作成します。

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

41

KubernetesとMesosの環境が作成できたことを確認します。

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

デモの流れ

42

5 Mesos環境ホストデプロイ3 RancherOSインストール

4 K8s環境ホストセットアップ

1 Try Rancherログイン

2 k8s /Mesos 環境の作成

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

デモの流れ

43

5 Mesos環境ホストデプロイ3 RancherOSインストール

4 K8s環境ホストセットアップ

1 Try Rancherログイン

2 k8s /Mesos 環境の作成

✓✓

できた!

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

デモの流れ

44

5 Mesos環境ホストデプロイ3 RancherOSインストール

4 K8s環境ホストセットアップ

1 Try Rancherログイン

2 k8s /Mesos 環境の作成

✓✓

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

45

https://id.cloudgarage.jp/login にアクセスし、CloudGarageにログインします。

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

46

”+ インスタンスを追加する”をクリックします。

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

47

インスタンス選択では”2GBタイプ” を選択し、イメージ選択に”RancehrOS”の”1.0.3_64bit_ISO”を選択します(OSバージョンが異なっても可)。

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

48

”インスタンス名”を任意名で⼊⼒します。その後、”インスタンス作成”をクリックします。

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

49

インスタンスが作成されたことを確認します。その後、インスタス名をクリックします。

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

50

インスタンスのグローバルネットワーク側IPアドレスをメモしておきます。その後、”コンソール表⽰”をクリックします。

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

51

コマンドラインで ʼsudo passwd rancherʼ を実⾏し、rancherユーザのパスワードを変更します。このパスワードはSSHログインで使⽤します。

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

52

コマンドラインで ʼsudo ros enginelistʼ を実⾏し、使⽤可能なdockerバージョンを確認します。現在、Kubernetesは「1.12.XX」のみの対応です。

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

53

SSHログイン⽤の秘密鍵/公開鍵を作成します。今回はローカル環境に作業ディレクトリを作成し、’ssh-keygen –ted25519’を実⾏しています。

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

54

⽣成した公開鍵をコピーして”cloud-config.yml”を作成(1)し、内容を編集(2)します。編集後、メモしておいたIPアドレスを使い、インスタンスにrancherユーザでSCP転送(3)します。

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

cloud-config.ymlの内容#cloud-configssh_authorized_keys:- ssh-ed25519 AAAA…

rancher:docker:engine: docker-1.12.6

55

⽣成した公開鍵の内容をこの⾏に埋め込みます。

以前に確認した利⽤可能な“1.12.XX“のDockerバージョンをこの⾏で指定します。

YAML形式では”TAB”でのインデントは使えません。必ず”空⽩”で各⾏のインデントを⾏ってください。また、インデント位置を各⾏で揃える必要があります。

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

56

インスタンスにrancherユーザでSSHログイン(1)します。ログイン後、”cloud-config.yml”を確認(2)します。ʼsudo ros install–cconfig-engine.yml –d/dev/vdaʼ を実⾏(3)してRancherOSをインストールします。

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

57

インストールの継続と再起動を確認する質問が途中で表⽰されますがどちらも’y’と回答します。

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

58

インストールが完了したらISOを取り出します。コンソール表⽰を確認し、再起動が完了したら”ISOイメージのアンマウント”をクリックします。

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

59

ISOイメージのアンマウントの確認がでますので、”OK”をクリックします。

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

60

ISOイメージアンマウントの完了を確認します。この後、画⾯の指⽰に従ってインスタンスの再起動(強制)を⾏います(コマンド不可)。

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

61

CloudGarageの管理画⾯に戻り、インスタンスの詳細情報から”再起動(強制)”をクリックします。

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

62

インスタンス再起動(強制)の確認がでますので、”OK”をクリックします。

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

63

同様の⼿順を繰り返し、RancherOSインスタンスを合計3台稼働(全て2GBプラン)させ、さらに各インスタンスのグローバルIPの値をメモします。

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

64

各インスタンスのホスト公開鍵情報をローカル環境のknown_hostsから削除します。’ssh-keygen –R各IPアドレス’を実⾏します。

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

デモの流れ

65

5 Mesos環境ホストデプロイ3 RancherOSインストール

4 K8s環境ホストセットアップ

1 Try Rancherログイン

2 k8s /Mesos 環境の作成

✓✓

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

デモの流れ

66

5 Mesos環境ホストデプロイ3 RancherOSインストール

4 K8s環境ホストセットアップ

1 Try Rancherログイン

2 k8s /Mesos 環境の作成

✓✓

できた!

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

デモの流れ

67

5 Mesos環境ホストデプロイ3 RancherOSインストール

4 K8s環境ホストセットアップ

1 Try Rancherログイン

2 k8s /Mesos 環境の作成

✓✓

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

68

Rancher管理画⾯の左上にある環境メニューから、以前に作成したKubernetes環境をクリックします。

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

69

”ホストを追加”をクリックします。

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

70

”Custom”を選択し、5番の項⽬のコマンド内容をクリップボードにコピーします。

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

71

以前に⽣成した秘密鍵を利⽤し各インスタンスにrancherユーザでSSHログイン(1)します。ログイン後、コピーしたコマンドを実⾏します(2)。

1台⽬

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

72

2台⽬

2台⽬のインスタンスでも同様にコピーしたコマンドを実⾏します。

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

73

3台⽬

3台⽬のインスタンスでも同様にコピーしたコマンドを実⾏します。

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

74

コマンドの実⾏が完了したら、ログアウトして構いません。

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

75

Rancher管理画⾯の上部にあるインフラストラクチャメニューから、”ホスト”をクリックします。

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

76

各インスタンス(ホスト)内にKubernetes環境で必要となるコンテナ群が⾃動的にデプロイされていく様⼦が確認できます。

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

デモの流れ

77

5 Mesos環境ホストデプロイ3 RancherOSインストール

4 K8s環境ホストセットアップ

1 Try Rancherログイン

2 k8s /Mesos 環境の作成

✓✓

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

デモの流れ

78

5 Mesos環境ホストデプロイ3 RancherOSインストール

4 K8s環境ホストセットアップ

1 Try Rancherログイン

2 k8s /Mesos 環境の作成

✓✓

✓✓

できた!

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

デモの流れ

79

5 Mesos環境ホストデプロイ3 RancherOSインストール

4 K8s環境ホストセットアップ

1 Try Rancherログイン

2 k8s /Mesos 環境の作成✓✓✓

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

80

https://app.packet.net/#/loginにアクセスし、Packetにログインします。

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

81

Projectを新規作成します。既存のProjectを利⽤しても構いません。

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

82

Project Nameに任意名を⼊⼒します。

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

83

”Create Project”をクリックします。

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

84

Projectが作成されたら、Projectの管理画⾯より”Setting”をクリックします。

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

85

Project IDの値をメモしておきます。

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

86

画⾯左側の”APIKeys”をクリックします。その後、画⾯中央の”here”をクリックして、API Keyを新規作成します。

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

87

API KeyNameに任意名を⼊⼒し、”Generate”をクリックします。

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

88

TOKENの値をメモしておきます。

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

89

Rancher管理画⾯の左上にある環境メニューから、以前に作成したMesos環境をクリックします。

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

90

”ホストを追加”をクリックします。

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

91

”Packet”を選択(1)し、名前を任意名で⼊⼒(2)します。数のスライダーを動かし”3”に設定し(3)、メモしておいたProject ID(4)とAPI Key Token(5)を⼊⼒します。

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

92

任意のサイズ(1)とリージョン(2)を選択(1)し、その後、“⽣成” (2)をクリックします。(今回は ”Sunnyvale、 CA” および ”type0” を選択)

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

93

DockerMachineの仕組みにより、⾃動的にPacket上でServerの作成が開始されます。

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

94

Server作成の様⼦は、Packetの管理画⾯からも確認することが可能です。すべてのServerのStatusがGreenになるまで待ちます。

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

95

各ホスト内にMesos環境で必要となるコンテナ群が⾃動的にデプロイされていく様⼦が確認できます。

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

デモの流れ

96

5 Mesos環境ホストデプロイ3 RancherOSインストール

4 K8s環境ホストセットアップ

1 Try Rancherログイン

2 k8s /Mesos 環境の作成✓✓✓

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

デモの流れ

97

5 Mesos環境ホストデプロイ3 RancherOSインストール

4 K8s環境ホストセットアップ

1 Try Rancherログイン

2 k8s /Mesos 環境の作成✓✓✓

✓✓

できた!

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

98

それでは、使ってみましょうか。

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

99

Kubernetes環境を使ってみよう

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

100

各ホストのデプロイが完了したら画⾯上部にあるKUBERNETESメニューから、”ダッシュボード”をクリックします。

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

101

”Kubernetes UI”をクリックします。

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

102

Kubernetes UIに接続できることを確認します。

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

103

Rancherの管理画⾯に戻り、上部にあるKUBERNETESメニューから”CLI”をクリックします。

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

104

KubernetesCLIの画⾯からは直接シェルでkubectlコマンドを実⾏することが可能(1)です。ローカル環境でkubectlコマンドを実⾏する場合は、”設定の⽣成”をクリック(2)します。

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

105

kubectlの為のコンフィグ内容が表⽰されるのでクリップボードにコピーします。

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

106

ローカル環境にkubectlをインストールします。macOSの場合は homebrewを利⽤します。’brewinstallkubectl’ を実⾏します。

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

107

ローカル環境に”~/.kube/config”を作成し、コピーした内容を保存します。

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

108

kubectlコマンドを実⾏して動作確認をします。‘kubectl version’でバージョン情報が確認できます。‘kubectl getnodes’でノード情報が確認できます。

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

109

kubectlコマンドを利⽤してKubernetes環境上にGuest Bookアプリケーションをデプロイします。‘kubectl create-fhttps://raw.githubusercontent.com/kubernetes/kubernetes/master/examples/guestbook/all-in-one/guestbook-all-in-one.yaml’ のコマンドを改⾏しないで実⾏します。

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

guestbook-all-in-one.yaml(参考)apiVersion: v1kind: Servicemetadata:

name: redis-masterlabels:

app: redistier: backendrole: master

110

spec:ports:- port: 6379

targetPort: 6379selector:

app: redistier: backendrole: master

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

---apiVersion: extensions/v1beta1kind: Deploymentmetadata:

name: redis-masterspec:

replicas: 1template:

metadata:labels:

app: redisrole: mastertier: backend

111

spec:containers:- name: master

image: gcr.io/google_containers/redis:e2e# image: redisresources:

requests:cpu: 100mmemory: 100Mi

ports:- containerPort: 6379

guestbook-all-in-one.yaml(参考)

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

---apiVersion: v1kind: Servicemetadata:

name: redis-slavelabels:

app: redistier: backendrole: slave

112

spec:ports:- port: 6379selector:

app: redistier: backendrole: slave

guestbook-all-in-one.yaml(参考)

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

---apiVersion: extensions/v1beta1kind: Deploymentmetadata:

name: redis-slavespec:

replicas: 2template:

metadata:labels:

app: redisrole: slavetier: backend

113

spec:containers:- name: slave

image: gcr.io/google_samples/gb-redisslave:v1resources:

requests:cpu: 100mmemory: 100Mi

env:- name: GET_HOSTS_FROM

value: dns # or Use -> value: envports:- containerPort: 6379

guestbook-all-in-one.yaml(参考)

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

---apiVersion: v1kind: Servicemetadata:

name: frontendlabels:

app: guestbooktier: frontend

114

spec:# type: LoadBalancer

ports:- port: 80selector:

app: guestbooktier: frontend

guestbook-all-in-one.yaml(参考)

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

---apiVersion: extensions/v1beta1kind: Deploymentmetadata:

name: frontendspec:

replicas: 3template:

metadata:labels:

app: guestbooktier: frontend

115

spec:containers:- name: php-redis

image: gcr.io/google-samples/gb-frontend:v4resources:

requests:cpu: 100mmemory: 100Mi

env:- name: GET_HOSTS_FROM

value: dns # or Use -> value: envports:- containerPort: 80

guestbook-all-in-one.yaml(参考)

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

116

KubernetesUIの画⾯左側にある”Workloads”をクリックすると、アプリケーションのデプロイの様⼦を確認することができます。

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

117

デプロイが完了するまで待機します。

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

118

デプロイが完了したら画⾯左側メニューにある”Services”をクリックし、frontendサービスにExternal Endpointがないことを確認します。

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

119

Rancher管理画⾯の上部にあるKUBERNETESメニューから”インフラストラクチャスタック”をクリックします。

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

120

kubernetes-ingress-lbの項⽬にある” ”をクリックし、”ロードバランサーを追加”を選択します。

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

121

名前(1)とリクエストホストポート(2)に任意の値を⼊⼒します。また、対象サービス(3)は”frontend”、対象ポート(4)は”80”をそれぞれ指定して”作成”(5)をクリックします。

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

122

ロードバランサーが作成されるまで待機します。完了後インフォメーションボタン(1)をクリックし、さらにポート情報のリンクをクリックします。

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

123

Guestbookアプリケーションにアクセスできることを確認します。

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

124

Rancherの管理画⾯に戻り、上部にあるインフラストラクチャメニューから、”ホスト”をクリックします。

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

125

画⾯左上の”システムコンテナの表⽰”のチェックを外し、LBのコンテナを確認します。LBコンテナが載っているホスト名をクリックします。

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

126

ホストの情報を確認します。

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

127

ホスト情報の中にあるコンテナ⼀覧からkubernetes-ingress-lbsのLBコンテナを⾒つけて、名前をクリックします。

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

128

LBコンテナの情報を確認します。

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

129

画⾯右上の” ”をクリックし、”シェルを実⾏”を選択します。

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

130

Rancherの管理画⾯からコンテナ内部のShellが利⽤できることを確認します。確認後は”閉じる”をクリックします。

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

131

画⾯右上の” ”をクリックし、”ログを⾒る”を選択します。

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

132

Rancherの管理画⾯からコンテナのログが確認できることを確認します。確認後は”閉じる”をクリックします。

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

133

Mesos環境を使ってみよう

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

134

各ホストのデプロイが完了したら画⾯上部にあるMESOSメニューから、”概要”をクリックします。

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

135

”Mesos UI”をクリックします。

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

136

Mesos UIに接続できることを確認します。

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

137

Mesos環境に切り替え”概要”の画⾯に進みます。画⾯左側にある”フレームワークを起動”をクリックします。

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

138

Rancherのカタログ画⾯に切り替わります。デフォルトでカタログにはMesosフレームワークの”Chronos”と”Marathon”が登録されています。

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

139

Chronosの”詳細をみる”をクリックします。

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

140

デフォルトの内容のまま”起動”をクリックします。

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

141

Marathonも同様にカタログの”詳細を⾒る”からデフォルトの内容のまま”起動”をクリックします。

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

142

インフラストラクチャスタックの画⾯にChronosとMarathonが追加されたことを確認します。chronosの名前の左側にある”+”をクリックし、展開された項⽬からポート番号をクリックします。

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

143

Chronos UIが表⽰されることを確認します。確認出来たら画⾯上部中央にある”+ New Job”をクリックします。

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

144

NAMEに任意のジョブ名、COMMANDに”date”、SCHEDULEの右端の欄に”T1M”をそれぞれ⼊⼒し、上部の”✓Create”をクリックします。

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

145

ChronosにJobが新しく登録され、さらに実⾏されたことを確認します。

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

146

Mesos UI上でも実⾏されたジョブのTaskが表⽰されることを確認します。確認後、Task右端の”Sandbox”をクリックします。

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

147

”stdout”をクリックし、実⾏したTaskの標準出⼒の内容を表⽰します。

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

148

dateコマンドが実⾏されたことを確認します。

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

149

1分間隔でJobが実⾏されている様⼦を確認します。

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

150

Rancherの管理画⾯に戻ります。インフラストラクチャスタックの中のmarathonの名前の左側にある”+”をクリックし、展開された項⽬からポート番号をクリックします。

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

151

Marathon UIが表⽰されることを確認します。確認出来たら画⾯中央にある”Create Application”をクリックします。

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

152

任意のID名を⼊⼒します。

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

153

左側メニューの”Docker Container”(1)をクリックし、Image名に”nginx”(2)を⼊⼒します。⼊⼒後、”Create Application”(3)をクリックします。

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

154

デプロイが完了するまで待機します。完了後、アプリケーション名をクリックします。

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

155

アプリケーションの情報を確認します。接続先IPアドレスの80番ポートにアクセスします。(表⽰のポート番号はここでは無視します)

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

156

nginxの画⾯が表⽰されることを確認します。

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

157

Marathon UIに戻ります。アプリケーション情報の画⾯左上にある”Scale Application”をクリックします。

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

158

アプリケーションをスケールする数として”3”を⼊⼒します。⼊⼒後、”Scale Application”をクリックします。

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

159

スケール数に応じてコンテナが増減します。スケールする様⼦をMarathon UI上で確認します。

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

160

Mesos UI上でも稼働しているAppplicationのTaskを確認することが可能です。

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

161

同様にRancherのホスト画⾯などからでもApplicationコンテナの情報を確認できます。

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

162

どう?ウシかわいいでしょ?

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

Rancherのことで困ったらRancher JPを頼ってください!!

⽇本のRancherコミュニティである”Rancher JP”では、Slackを開設しており毎⽇活発なコミュニケーションがとられています。Meetupやもくもく会も毎⽉開催されており、困ったことがあったらすぐに相談できる仲間が沢⼭みつかります。

Rancher JPについての詳細は・・・Rancher JPの活動や参加⽅法などは、次のスライドで公開しています。まずは気軽にSlackに参加してみてください!

163

”Rancher JPが仲間になりたそうにこちらを⾒ている”https://www.slideshare.net/tsukaman/rancher-jp

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

今後のRancher JPの予定09/01(⾦) Rancher Meetup #01 in Sapporo

https://rancherjp.connpass.com/event/63218/09/08(⾦) CROSS 2017(パネルディスカッションに参加)

http://2017.cross-party.com09/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ご参加お待ちしております!!

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

165

またな!