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

Infra: Kubernetes and GKE, Network

Infra: Kubernetes and GKE, Network

Next ’17 Extended - Tokyo
で発表されたスライドです

D58fe5089757d3f2f7a32439fe3f19d0?s=128

kumakumakkk

April 01, 2017
Tweet

Transcript

  1. Infra: Kubernetes and GKE, Network KUMA

  2. None
  3. !?

  4. 66 Sessions!

  5. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis

    non erat sem 参考にしたセッション GKE, Kubernetes Sessions: ABCs of Google Container Engine: tips and best practices (Google Cloud Next '17) Kubernetes and Google Container Engine (Google Cloud Next '17) Globally scalable microservices with Container Engine & Cloud Load Balancing (Google Cloud Next ‘17) Deciding between Compute Engine, Container Engine, App Engine and more (Google Cloud Next '17) Network Sessions: Deciding between Compute Engine, Container Engine, App Engine and more (Google Cloud Next '17) A cloud networking blueprint for securing your workloads (Google Cloud Next '17)
  6. Agenda • どの環境を選ぶべきか? GCE, GKE, AppEngine, Cloud Function • Kubernetesとは

    • What’s new in Kubernetes 1.6 • GCPとオンプレミス環境の接続
  7. Proprietary + Confidential どの環境を選ぶべきか

  8. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis

    non erat sem 4つの環境 Compute Engine Container Engine App Engine Cloud Function
  9. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis

    non erat sem Compute Engine いわゆるVM フレキシブルなスペックの設定  CPU, GPU, RAM, Disk(HDD/SSD) 使えば使うほど料金割引、 Preemptable VM、分単位課金 ライブマイグレーション 現状のオンプレにあるシステムをそのままクラウドに持っていきたい
  10. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis

    non erat sem Container Engine フルマネージドなKubernetes  ノード  Kubernetes自体のアップデート  クラスターのオートスケーリング 論理的なインフラ志向
  11. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis

    non erat sem 使いたい場面と制約 使いたい場面 制約 アプリケーションをいろいろな環境 /IaaSで 動かしたい場合 コンテナの利点を最大限活用したい場合 Dev, Ops, セキュリティチームの円滑なコ ミュニケーションが可能な場合 CI/CDを積極的に行いたい場合 HTTP以外のプロトコル、低レイヤのネット ワークまで手を出したい場合 コンテナを使わなければいけない Kubernetes/コンテナを使わないといけない ので、設計に制約がある
  12. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis

    non erat sem App Engine App Engineで動くようにアプリケーションを作成すれば、オペレーションをほぼすべて肩代わ りしてくれる環境  コーディングに集中できる App Engine Flexible  コンテナをフルマネージドで運用  SSHでデバッグできる 現状 1000億リクエスト/日 をさばいている
  13. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis

    non erat sem 使いたい場面と制約 使いたい場面 制約 HTTP(S)でリクエスト、リスポンスを行うアプ リケーションの場合 ステートレスなアプリケーションを運用した い場合 トラフィックが多いウェブサイトを運用する 場合 AppEngine Standard  Python, Java, PHP, Goで実装  Binary Extensionは使えない  設計、実装で制約がある AppEngine Flexible  コンテナを使わなければいけない  スケールに合わせて ComputeEngineが  立ち上がる
  14. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis

    non erat sem Cloud Function サーバーレスでイベントドリブンな環境で機能を提供 GCPのクラウドサービスをトリガにして実行  Cloud Pub/Sub, Cloud Storage 実行した回数だけ料金がかかる Node.jsのランタイムを使用
  15. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis

    non erat sem 使いたい場面と制約 使いたい場面 制約 サーバーレスで運用したい GCPのサービスのイベントをトリガにして何 かを処理したい HTTPのAPIを提供したい Node.js(Javascript)のみに対応 イベントドリブンでなければいけない
  16. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis

    non erat sem 環境を決める要素 チーム、組織の性質 技術的な必須項目 抽象化したいレイヤ
  17. Proprietary + Confidential Kubernetesとは

  18. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis

    non erat sem Kubernetes コンテナクラスターを管理 複数のクラウドベンダー、オンプレミス環境をサポート 複数のコンテナランタイムをサポート オープンソース GOで実装 VMではなく、アプリケーションを管理する
  19. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis

    non erat sem Kubernetes スケジューリング: どこでコンテナが動くか 生存管理: コンテナを常に動かす スケーリング: コンテナを増やしたり部屋したりする サービスディスカバリ : コンテナがどこで動いているか管理 ロードバランシング: 複数コンテナ間の通信 ストレージ: コンテナがデータを保存できる場所を確保 ロギング・モニタリング : コンテナで何が起こっているかを管理 デバッグ・内部検査: コンテナにアタッチ 認証と認可: ユーザの権限を管理
  20. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis

    non erat sem Kubernetesの要素 Pod: 1つ以上のコンテナの集合体。同じ localhost上にあり、必ず同じように    スケジューリングされる Doployment: Podが何個必要かを定義 (ReplicaSet)し、定義通りにPodが動き、また定義      が変更されたらその変更に従って処理を行う Service: アプリケーション(Pod)にアクセスするエンドポイントの管理 Node: Podを動かす計算機。kubeletによって管理される Cluster: Nodeの集合体。Kubernetes Masterによって管理される Namespace: Clusterを仮想的に分割する
  21. Namespace Deployment(ReplicaSet) Pod webserver App Pod webserver App 19.168.1.1:80 Service

    Pod webserver App
  22. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis

    non erat sem
  23. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis

    non erat sem Demo
  24. Proprietary + Confidential Kubernetes 1.6 and GKE

  25. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis

    non erat sem Scale kubectl autoscale deployment [NAME] --min=3 --max=10 5000ノード、150,000 Pods対応可能に 水平Podスケーリング クラスターオートスケーリング gcloud container clusters update [NAME] --enable-autoscaling --min-nodes=3 --max-nodes=10
  26. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis

    non erat sem Cluster Federation kubefed Federated Control plane GCP オンプレ AWS asia-northeast-1a us-east1-b 大手町 sa-east-1 Cross cluster service discovery Cluster healthcheck Federated API
  27. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis

    non erat sem Multi-zone Cluster gcloud container clusters create [NAME] --num-nodes=3 --zone asia-northeast1-a --additional-zones=asia-northeast1-b, asia-northeast1-c ゾーンをまたいでクラスターを構築することにより ゾーン単位の障害を回避
  28. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis

    non erat sem Node Affinity/Anti-Affinity apiVersion: v1 kind: Pod metadata: name: with-node-affinity spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: failure-domain.beta.kubernetes.io/zone operator: In values: - asia-northeast1-a - asia-northeast1-b containers: - name: with-node-affinity image: gcr.io/google_containers/pause:2.0 どんなノード上でポッドを作成するか /しないかを指定
  29. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis

    non erat sem And more... Role-based access control(RBAC) Taints Tolerations Dynamic Storage Provisioning DemonSet updates CRI Per Pod Eviction GPU support (with Docker CRI) etc...
  30. Proprietary + Confidential ネットワーク

  31. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis

    non erat sem XPN (Cross Project Network)
  32. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis

    non erat sem Private/Carrier Interconnect
  33. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis

    non erat sem And more... CDN Interconnect Cloud Router IPSec VPN etc...