Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

”30分”ぐらいでわかる「Kubernetes」について

13,351 views

Published on

2017/10/20(金) アイレット様主催の「雲勉」で発表させていただいた「Kubernetes」の資料です!

Published in: Software
  • Be the first to comment

”30分”ぐらいでわかる「Kubernetes」について

  1. 1. ” 30分 ”で分かる 「Kubernetes」の基本 2017.10.20(Fri) ぐらいで Dockerことはじめハンズオン! [Docker Kubernetes Rancher] 雲勉:大阪【勉強会】
  2. 2. 2 少しだけ自己紹介を。。。 氏名:Yuya Ohara 会社:株式会社ビヨンド 職種:プリセールスエンジニア 内容:AWS・GCPなどのクラウド・サーバーの 設計・構築・運用保守の仕事してます。 経歴:1.某通信会社の営業(光回線やOA機器・パッケージ 等々・・) 2.ホスティングサービスのプリセールスエンジニア(物理オンリー) 3.主にクラウドのMSPをする会社 ← いまここ ◎ GCPUG(GCPのユーザー会)OSAKA支部の運営してます。 https://gcpug.jp/ ◎ GCP認定 クラウドアーキテクト取得に向けて勉強中。。。
  3. 3. 3 GCPUGのコミュニティ https://gcpug.jp/ GCPUG(ジーシーパグ)は Google Cloud Platform を 普及させることを目的として Googleと共に GCP をより良くし 盛り上げていくユーザーグループです。 共感していただける方なら GCPUG への参加は自由です。
  4. 4. 4 GCPのコミュニティ ◎ イベント・技術コミュニティ https://gcpug.jp/ ◎ GCPUG JAPAN https://www.facebook.com/groups/gcpug/ ◎ GCPUG OSAKA https://www.facebook.com/groups/988104007868972/
  5. 5. 5 GCPの情報の入手方法 ◎ 公式ドキュメント https://cloud.google.com/docs/ ◎ 公式日本語ブログ https://cloudplatform-jp.googleblog.com/ ◎ Google Cloud Platform 技術サポート https://cloud.google.com/support/ ◎ Google Cloud チャンネル https://www.youtube.com/user/googlecloudplatform
  6. 6. 6 GCPの情報の入手方法 https://www.slideshare.net/GoogleCloudPlatformJP/cloud-on-air-02- gcp
  7. 7. 7 Google Cloud Platform(GCP)
  8. 8. 8 Google Cloud Platform(GCP)
  9. 9. 9 Google Cloud Platform(GCP)
  10. 10. 10 毎分アップロードされる 動画の長さは? 検索インデックスの大きさは? アクティブユーザー数は? 60時間 4億2,500万 100PB (100,000 TB) 0.25 秒検索クエリに応答する時間は? Google Cloud Platform(GCP)
  11. 11. 11 Google Cloud Platform(GCP)
  12. 12. 12 Data Center as a Computer Google Cloud Platform(GCP)
  13. 13. 13 Google Cloud Platform(GCP)
  14. 14. 14 Google Cloud Platform(GCP)
  15. 15. 15 Google Cloud Platform(GCP)
  16. 16. 16 Kubernetes(k8s)とは? ※「クーバーネティス」と 読みます。
  17. 17. 17 Docker / Kubernetes との関係 ・Dockerを使うと、アプリケーションのコード・ インフラの構成情報をまとめて統合的に管理。(疎結合) ・ただし、大規模システムの場合、 複数のホストマシンからなる分散環境の構築が必要。 ・開発したアプリケーションを、効率よく継続的に デプロイしていくか?という開発 / 運用の方法が必要。
  18. 18. 18 単体なら余裕! ただ複数台を管理するときは・・・ 負荷分散は? 監視は? ネットワークは? コンテナ同士の 管理は? Cluster ホスト ホスト ホスト ホスト ホスト Docker / Kubernetes との関係
  19. 19. 19 ” 分散環境でDockerコンテナを稼働するには 「オーケストレーションツール」が必要になる ” Docker / Kubernetes との関係
  20. 20. 20 代表的なオーケストレーションツール ■ Docker Engine ・Dockerの機能で「Swarmモード」がある ・Docker本体に標準でクラスタリング機能 ■ Apache Mesos / Marathon ・複数ホストのCPU / MEM / DISKを抽象化しリソースプール ・コンテナ管理用でフレームワークが必要(Marathon) ■ Kubernetes ・GoogleのBorg(社内コンテナオーケストレーション)の 基盤をインスパイアし、現在も開発が続いている ・Googleの各サービスをコンテナ管理してるKubernetes
  21. 21. 21 代表的なオーケストレーションツール ■ Docker が Kubernete sとの統合およびサポートを発表 http://www.publickey1.jp/blog/17/dockerkubernetesdockercon_eu_2017.html
  22. 22. 22 Kubernetesの基本構成 ■ Kubernetesで出来ること ・複数サーバーでのコンテナ統合管理 ・コンテナ間のネットワーク管理(IPアドレス / ルーティング) ・コンテナに割り当てるストレージの管理 ・コンテナの負荷分散 ・コンテナの監視 ・無停止でのアップデート ・・・etc
  23. 23. 23 etcd 環境の 構成情報 マスターサーバー ノード ノード レジストリサーバー ■ 役割の異なるサーバー群が分散処理をする コンテナの操作 イメージの取得 Kubernetesの基本構成
  24. 24. 24 ■ Kubernetes Master(マスターサーバー) ・Kubernetesクラスタ内のコンテナを操作・制御するサーバー ・kubectlコマンド使って、マスターサーバーがコマンドからの リクエストを受け取り処理をする Kubernetesの基本構成
  25. 25. 25 Kubernetesの基本構成 $ kubectl kubectl controls the Kubernetes cluster manager. Find more information at https://github.com/kubernetes/kubernetes. Basic Commands (Beginner): create Create a resource by filename or stdin expose Take a replication controller, ... run Run a particular image on the cluster set Set specific features on objects Basic Commands (Intermediate): get Display one or many resources explain Documentation of resources edit Edit a resource on the server delete Delete resources by filenames, ...
  26. 26. 26 ■ Node(ノード) ・Dockerコンテナを動作させるサーバー ・複数のノードでクラスタを構成 ■ etcd(バックエンドデータベース) ・ etcdとも呼ばれる Key-Value Store(KVS)で、 クラスタの全データを格納するデータストア ■ Docker Registry(レジストリ サーバー) ・クラスタ内で起動する、Dockerコンテナのモトとなる、 Dockerイメージを管理するサーバー ・Docker Registry で構築することができる Kubernetesの基本構成
  27. 27. 27 Kubernetesのネットワーク構成 ・全てのサーバー を 共通のネットワークに接続するだけで、 kubernetesを利用できる ・それぞれのノードで起動するコンテナは、 専用の内部ネットワークに接続する etcd 環境の 構成情報 マスターサーバー ノード ノード レジストリサーバー サービスネットワーク 192.168.120.0/24 内部ネットワーク 10.1.0.0/16 システム利用者 仮想ブリッジ 仮想ブリッジ
  28. 28. 28 ■ ポイント ・この内部ネットワーク自体は、Kubernetesからは提供していない ・Flannelというツールで構成する https://www.school.ctc-g.co.jp/columns/nakai/nakai65.html ・ちなみGCPのGKEだと、 独自方式の高速内部ネットワークを利用できる・・・ Google Container Engine Kubernetesのネットワーク構成
  29. 29. 29 etcd 環境の 構成情報 マスターサーバー ノード ノード レジストリサーバー サービスネットワーク 192.168.120.0/24 内部ネットワーク 10.1.0.0/16 システム利用者 アクセス システム管理者 コンテナの管理 ・コンテナの起動、停止などの処理は、 マスターサーバーへのAPIに対して指示をする Kubernetesのネットワーク構成
  30. 30. 30 Kubernetesのアーキテクチャ ■ Pod(ポッド) ・仮想NICを共有するコンテナ群をまとめたもの ・Pod単位で作成 / 開始 / 停止 / 削除の操作 ・Pod内のコンテナで共有するディレクトリの配置も可能 仮想NIC Webサーバー コンテナ ログ収集 コンテナ Pod
  31. 31. 31 ■ Replication Controller(レプリケーションコントローラー) ・定義した数量だけのPodを自動配置 ・Podの数量は動的に決められるので、オートスケールできる Replication Controller Podの数=3 ノード1 ノード2 Pod Pod Pod ログ収集 コンテナ ログ収集 コンテナ ログ収集 コンテナ Webサーバー コンテナ Webサーバー コンテナ Webサーバー コンテナ Kubernetesのアーキテクチャ
  32. 32. 32 ■ Service(サービス) ・ただし、Pod起動だけでは外部アクセスできない ・Pod に対して「Service」を定義する必要がある ノード1 ノード2 Pod Pod ログ収集 コンテナ ログ収集 コンテナ Webサーバー コンテナ Webサーバー コンテナ アクセス システム利用者 Serviceを定義させる システム管理者 Kubernetesのアーキテクチャ
  33. 33. 33 ■ Service(サービス) ・ただし、Pod起動だけでは外部アクセスできない ・Pod に対して「Service」を定義する必要がある ノード1 ノード2 Pod Pod ログ収集 コンテナ ログ収集 コンテナ Webサーバー コンテナ Webサーバー コンテナ アクセス システム利用者 システム管理者 Google Container Engine Cloud Load Balancing Serviceを定義させる Kubernetesのアーキテクチャ
  34. 34. 34 ■ Service(サービス) ・ただし、Pod起動だけでは外部アクセスできない ・Pod に対して「Service」を定義する必要がある ノード1 ノード2 Pod Pod ログ収集 コンテナ ログ収集 コンテナ Webサーバー コンテナ Webサーバー コンテナ アクセス システム利用者 システム管理者 Google Container Engine Cloud Load Balancing Serviceを定義させる マネージドで お任せ! Kubernetesのアーキテクチャ
  35. 35. 35 Google Container Engine(GKE) ■ Google Container Engine(GKE)の特徴 ・フルマネージド、ホスト型のKubernetes ・Kubernetesの新バージョンや機能を、 より早く自動的に対応 ・ワンクリックでクラスタを作成、デプロイ ・MasterはGoogleに管理されてるので、 自動更新される ・Nodeの自動修復、自動スケール ・1clusterは5,000以上のNodeをサポート ・5Nodeまで無料 (6Node以上は、$146.5/月 東京リージョン) ※ 使用したGCE(VM)はそのまま課金対象
  36. 36. 36 まとめ ◎ Googleのサービスは 全てコンテナである ◎ Kubernetesは Dockerコンテナを管理するツール ◎ 物理的に離れたコンテナ同士でアプリケーション稼働できる ◎ さらにGKEだと Kubernetesのマネージドをしてくれる ◎ GKEを使って、AWSとの併用もいける(ハズ)※まだ試してない・・・

×