GKE Introduction @ gcp ja night #31

01dc8e954957a10b428aa60b28c89d52?s=47 Ian Lewis
January 21, 2016

GKE Introduction @ gcp ja night #31

01dc8e954957a10b428aa60b28c89d52?s=128

Ian Lewis

January 21, 2016
Tweet

Transcript

  1. gcp ja night #31 Welcome!

  2. Agenda Kubernetes/GKE Overview GKEで半年運用してみた Beer & 中華 GCPで新規サービスを開発した話 広告配信システムにおけるGCEでのAutoscalerと CloudLoggingの活用

    オンライン広告配信システムのデータ解析チームとCloud DatalabとBigQuery 終了 7:15 7:45 8:15 8:45 9:15 9:45 10:15
  3. Google Container Engine 概要

  4. Confidential & Proprietary Google Cloud Platform 4 Ian Lewis Developer

    Advocate - Google Cloud Platform Tokyo, Japan google.com/+IanLewis-hoge @IanMLewis
  5. None
  6. Googleは過去15年間にわたり、地 球上で最も高速でパワフルそして 高品質なクラウドインフラストラク チャを構築してきました

  7. 世界を駆け巡るGoogle バックボーンネットワーク

  8. Building what’s next 8 33カ国 70箇所のエッジロケーション クラウドプロバイダーの中で最大 Google-Grade Networking

  9. 2012 2015 MapReduce Spanner 2003 2006 2010 2011 GFS Borg

    Colossus Dremel Bigtable Chubby 2004
  10. 管理 モバイル 開発ツール コンピュート ネットワーク ビッグデー タ ストレージ

  11. Copyright 2015 Google Inc Googleでは10年間に渡り、すべてのサービスをコンテナ で動かしてきた 毎週20億以上のコンテナを立ち上げている Images by Connie

    Zhou
  12. コンテナ イメージ 依存性 アプリケーション コード コンテナはアプリケーションコードとその依存性を一つの ユニットとしてまとめる これにより、アプリケーションとインフラを疎結合にするこ とができる •

    伝統的なIT環境において、インフラエンジニアはアプリケーションの実 行環境を正しく整えることが重要 • コンテナはアプリケーションとその依存性がまとまっているので、例え ば、開発環境、テスト環境、本番環境をまたいだデプロイが容易になる • オンプレミス、プライベートクラウド、パブリッククラウド等ことなる実行 環境間の移動が容易になる コンテナとは?
  13. 軽量 仮想マシンに比べて 軽量でシンプル。数十ミリ秒 で起動 ポータブル 様々な実行環境に対応し、 デプロイメントが容易 効率性 リソース使用量が少なく、コ ンピュートリソースを細分化

    して効率的に利用可能 なぜコンテナなのか?
  14. Confidential & Proprietary Google Cloud Platform 14 http://research.google.com/pubs/pub43438.html

  15. http://research.google.com/pubs/pub43438.html

  16. Image by Connie Zhou

  17. job hello_world = { runtime = { cell = 'ic'

    } // Cell (cluster) to run in binary = '.../hello_world_webserver' // Program to run args = { port = '%port%' } // Command line parameters requirements = { // Resource requirements ram = 100M disk = 100M cpu = 0.1 } replicas = 5 // Number of tasks } 10000 Developer View
  18. Developer View

  19. web browsers BorgMaster link shard UI shard BorgMaster link shard

    UI shard BorgMaster link shard UI shard BorgMaster link shard UI shard Scheduler borgcfg web browsers scheduler Borglet Borglet Borglet Borglet Config file BorgMaster link shard UI shard persistent store (Paxos) Binary Developer View What just happened?
  20. Hello world! Hello world! Hello world! Hello world! Hello world!

    Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Image by Connie Zhou Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world! Hello world!
  21. None
  22. Copyright 2015 Google Inc コンテナ管理の課題 Node Node Cluster Node ???

    • 複数のノードに対するコンテナの デプロイは? • ノード障害が発生した場合は? • コンテナ障害が発生した場合は? • アプリケーションのアップグレードはどうやって管理する?
  23. Kubernetes κυβερνήτης: Greek for “pilot” or “helmsman of a ship”

    the open source cluster manager from Google
  24. CNCF(Cloud Native Computing Foundation)の発足

  25. Container Engine Google Cloud Platform

  26. Kubernetes Master/Scheduler クラスタ : 実行環境 Machine Host Machine Host Machine

    Host Machine Host Machine Host Machine Host Machine Host Container Agent Container Agent Container Agent Container Agent Container Agent Container Agent Container Agent ノード
  27. Log Roller Web Server Machine Host Machine Host Machine Host

    Machine Host Machine Host Machine Host Machine Host Container Agent Container Agent Container Agent Container Agent Container Agent Container Agent Container Agent Kubernetes Master/Scheduler ポッド : デプロイ単位 コンテナ コンテナ ポッド
  28. FE FE FE FE FE FE BE BE BE BE

    BE BE BE BE BE Machine Host Machine Host Machine Host Machine Host Machine Host Machine Host Machine Host Container Agent Container Agent Container Agent Container Agent Container Agent Container Agent Container Agent Kubernetes - Master/Scheduler 多数のポッドを識別するには?
  29. labels: role: frontend FE FE FE FE FE FE BE

    BE BE BE BE BE BE BE BE Machine Host Machine Host Machine Host Machine Host Machine Host Machine Host Machine Host Container Agent Container Agent Container Agent Container Agent Container Agent Container Agent Container Agent Kubernetes - Master/Scheduler ラベル: オブジェクトを識別
  30. labels: role: frontend stage: production Machine Host Machine Host Machine

    Host Machine Host Machine Host Machine Host Machine Host Container Agent Container Agent Container Agent Container Agent Container Agent Container Agent Container Agent Kubernetes - Master/Scheduler FE FE FE FE FE FE BE BE BE BE BE BE BE BE BE ラベル: オブジェクトを識別
  31. FE FE FE FE replicas: 4 template: ... labels: role:

    frontend stage: production Machine Host Machine Host Machine Host Machine Host Machine Host Machine Host Machine Host Container Agent Container Agent Container Agent Container Agent Container Agent Container Agent Container Agent Kubernetes - Master/Scheduler レプリケーションコントローラ : ポッドの実行状態を管理
  32. FE replicas: 1 template: ... labels: role: frontend stage: production

    Machine Host Machine Host Machine Host Machine Host Machine Host Machine Host Machine Host Container Agent Container Agent Container Agent Container Agent Container Agent Container Agent Container Agent Kubernetes - Master/Scheduler レプリケーションコントローラ : ポッドの実行状態を管理
  33. FE FE FE replicas: 3 template: ... labels: role: frontend

    stage: production Machine Host Machine Host Machine Host Machine Host Machine Host Machine Host Machine Host Container Agent Container Agent Container Agent Container Agent Container Agent Container Agent Container Agent Kubernetes - Master/Scheduler レプリケーションコントローラ : ポッドの実行状態を管理
  34. id: backend-service port: 9000 labels: role: backend stage: production Backend

    Service BE BE BE BE Machine Host Machine Host Machine Host Machine Host Machine Host Machine Host Container Agent Container Agent Container Agent Container Agent Container Agent Container Agent サービス: エンドポイントを抽象化 FE port: 9000 Load-Balancing ポッドは自動配置される! でも、FEはどうやってBEにアクセスするの?
  35. デモ

  36. Redis Master Master Service Redis Slave Redis Slave Slave Service

    PHP Frontend PHP Frontend PHP Frontend Frontend Service Public IP
  37. None
  38. Thank you! ありがとうございました #gcpja twitter.com/IanMLewis