Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GKE Introduction @ gcp ja night #31

Ian Lewis
January 21, 2016

GKE Introduction @ gcp ja night #31

Ian Lewis

January 21, 2016
Tweet

More Decks by Ian Lewis

Other Decks in Technology

Transcript

  1. 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
  2. Confidential & Proprietary Google Cloud Platform 4 Ian Lewis Developer

    Advocate - Google Cloud Platform Tokyo, Japan google.com/+IanLewis-hoge @IanMLewis
  3. 2012 2015 MapReduce Spanner 2003 2006 2010 2011 GFS Borg

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

    伝統的なIT環境において、インフラエンジニアはアプリケーションの実 行環境を正しく整えることが重要 • コンテナはアプリケーションとその依存性がまとまっているので、例え ば、開発環境、テスト環境、本番環境をまたいだデプロイが容易になる • オンプレミス、プライベートクラウド、パブリッククラウド等ことなる実行 環境間の移動が容易になる コンテナとは?
  5. 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
  6. 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?
  7. 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!
  8. Copyright 2015 Google Inc コンテナ管理の課題 Node Node Cluster Node ???

    • 複数のノードに対するコンテナの デプロイは? • ノード障害が発生した場合は? • コンテナ障害が発生した場合は? • アプリケーションのアップグレードはどうやって管理する?
  9. 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 ノード
  10. 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 ポッド : デプロイ単位 コンテナ コンテナ ポッド
  11. 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 多数のポッドを識別するには?
  12. 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 ラベル: オブジェクトを識別
  13. 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 ラベル: オブジェクトを識別
  14. 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 レプリケーションコントローラ : ポッドの実行状態を管理
  15. 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 レプリケーションコントローラ : ポッドの実行状態を管理
  16. 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 レプリケーションコントローラ : ポッドの実行状態を管理
  17. 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にアクセスするの?
  18. Redis Master Master Service Redis Slave Redis Slave Slave Service

    PHP Frontend PHP Frontend PHP Frontend Frontend Service Public IP