元RX-7乗りの適当な日々 このページをアンテナに追加 RSSフィード Twitter

RX-7(FD3S)WRX STI関連のキーワードで検索されて来られた方へ。
右サイドのカテゴリ『』をクリックすると関連する項目だけが表示されます。
日々の写真は『Flickr』で公開しています。

2018/02/16

デブサミ2018「Kubernetesを用いた最強のマイクロサービス環境をGKEで実現しよう」講演メモ #devsumi


Googleのパワーを強く感じられるセッション。さすがでございました。そのセッションのメモでございます。


  • 福田 潔 氏
    • Google Cloud Japan
    • Customer Engineer
  • GKE = Google kubernetes Engine

他のクラウドと比べてGoogleが勝っている点3つ

  • ビッグデータ関連での利用
  • ML/AIでの利用
  • コンテナの利用

kubecon 2017 keynote => 「kubectl is the new ssh...」

  • kubernetesの世界では、低レイヤを気にしなくてよくなる
  • kubectlは、これからのエンジニア全員が覚えるべきコマンドである

なぜkubernetesが注目されるのか

  • VM => コンテナ => コンテナオーケストレータ
    • アプリケーションのコンテナ化が進んでいる
  • モダンアプリケーションのインフラとして

コンテナオーケストレータ

  • Dockerだけではできないこと
    • 複数のノードに対するコンテナのデプロイは?
    • ノード障害が発生した場合は?
    • コンテナ障害は?
    • アップデートは?

モダンアプリケーション

  • デジタル空間でのビジネスが当たり前になっているので、ネットを通じて顧客接点となるアプリは非常に重要
  • 使いにくいアプリは顧客獲得機会の損失を意味する
  • 要件
    • ユーザビリティ、24/7、アジリティ、性能、マルチデバイス
  • それを支える技術要素
    • 自己修復能力、モジュール化、スケール、リリースパイプライン、Blue/Green、カナリアデプロイ、ロールバック、モニタリング
  • これらをkubernetesは機能としてほぼ持っている

kubernetesとは

  • クーバネティス
  • ギリシャ語で「操舵手」「統治者」といった語が語源
  • コンテナをどこで実行するのかを管理
  • Googleの社内システムからインスピレーション
  • 100%オープンソース
    • 様々な企業が開発に携わっている
  • Write Once Run Anywhere
  • 複数のコンテナランタイムをサポート

デファクトスタンダードへ

  • MSとAWSがkubernetesに対応した
  • 3大クラウドベンダ全てがkubernetesにコミットしている
  • CNCFによって32個の認証プラットフォームを認定

Google kubernetes Engine (GKE)

  • GCP上で動作するマネージドkubernetes
  • 2014年に登場
  • アルファクラスタ機能
  • Zero-Opsクラスタを目指す
    • GKEのランタイムはGCEで出来ている
    • GCEにSSHする必要はない = VMは気にしなくて良い
  • 特徴
    • 簡単 (Simple)
    • 信頼性が高い (Reliable)
    • 効率性 (Efficient)
    • GCP各サービスとの統合 (Integrate)
  • クラスタはgcloudコマンドかGUIコンソールから、4〜5分で作成可能
  • クラスタへの接続はGUIコンソールから案内される
    • 5分後にはkubectlが実行できる

クラスタのアップグレード

  • kubernetesはおよそ3ヶ月に1度マイナーバージョンアップ
  • マスタとノード、両方のバージョンを気にする必要がある
  • マスタは自動でアップグレードされる
  • アップグレードスケジュールは、Release Noteに公開

ノードの自動アップグレード

  • 管理オーバーヘッドが少なくなる
  • セキュリティの強化
  • 新しい機能へのアクセス
  • 設定は、コマンドかGUIでフラグをつけるだけ

メンテナンスウィンドウ

  • 自動アップグレードのタイミングを制御できるように、マスタ・ノードともに特定の曜日、4時間単位で設定が可能

マスターのearly upgrade

  • 自動アップグレードを待たず、いち早くアップグレードさせることも可能
  • 手動でコマンドを実行する感じ

ノードのヘルスチェック・自動修復

  • マスターはノードのヘルスチェックを10秒間隔で行なっている
  • 継続的にヘルスチェックを行い、長時間(10分前後)ヘルスチェックに失敗すると修復プロセスを開始する(COSを洗濯した場合)
  • マニュアルでヘルスチェック・修復させることもできる

マルチゾーンクラスタ

  • デフォルトでは指定したゾーンに対してクラスタマスターとノードが作成される
  • 追加のゾーンを指定することもできる
    • 新規作成時や既存クラスタに設定可能

リージョナルクラスタ

  • ノードだけではなく、マスタも複数ゾーンに分散できる
    • マスタも冗長化できる
    • ただしまだベータ扱い
  • GKEでは、現状マスタには課金されないので、使えるなら美味しそう

COS = Container-Optimized OS

  • OSイメージの選択肢はCOSまたはUbuntu
  • COS:Docker利用に最適かされた軽量OS

GKEにおけるスケール戦略

  • ポッドレベル (kubernetes)
    • SO(スケールアウト)はPod数を制御(HPA)、SU(スケールアップ)はPodに対するリソース割り当てを制御(VPA)
  • クラスタレベル (GKE)
    • SOはNode数を制御(クラスタオートスケーラ)、SUはNodeのリソース割り当て(インスタンスタイプ)を変更
  • クラスタサイズの変更はコマンドで簡単にできる
  • クラスタオートスケーラでは、同じ種類のノードがスケールしていく(ノードプールに設定されたノードテンプレートが使用される)

VMインスタンスタイプの変更

  • 既存インスタンスを無停止で変更することはできない
  • 新しいノードプールを作成し、そのプールに既存のワークロードを移行する
  • ダウンタイムなしでワークロードを移行することも可能

プリエンプティブルVM

  • 中断される可能性がある
  • 非常に安価に利用可能
  • 任意のマシンタイプ
  • ワークロードによっては、VMのコストを大幅に下げることもできる
  • 作り方はフラグをつけるだけ

GKEにおけるGCPの役割

  • GKEクラスタの実行基盤
    • ノード => GCE、永続ディスク
    • ノードプール => Instance Group
    • Service/Ingress => TCP/UDP/HTTP(s) LB
    • VPC
  • アドンコンポーネントをマネージメントサービスとして提供
    • データストア => cloud spanner, Cloud Datastore, Cloud SQL
    • DWH => BigQuery
    • メッセージング => Cloud PubSub
    • 運用管理
    • CI/CD

メルカリ導入事例

「ロードバランサとGKEが導入の決め手」


GCPのロードバランサ

  • アプリケーションフロントエンドは強力なLBが必要
  • グローバル負荷分散:クロスリージョン フェイルオーバー
    • リージョンがダウンしても別リージョンにルーティングしてくれる
  • Googleのグローバルインフラ
    • LBはエッジで動いていて負荷分散している
    • 世界各地にエッジポイントが存在する
    • エッジ + バックボーン = 低レイテンシ = 優れたUX

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。

トラックバック - http://d.hatena.ne.jp/rx7/20180216/p2

オススメ (一部は、最近読んでいる本とも言う)
Chef実践入門 ~コードによるインフラ構成の自動化 (WEB+DB PRESS plus) クラウド Amazon EC2/S3のすべて~実践者から学ぶ設計/構築/運用ノウハウ~ [Web開発者のための]大規模サービス技術入門 ―データ構造、メモリ、OS、DB、サーバ/インフラ (WEB+DB PRESS plusシリーズ) エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド [24時間365日] サーバ/インフラを支える技術 ~スケーラビリティ、ハイパフォーマンス、省力運用 Linux-DB システム構築/運用入門 (DB Magazine SELECTION) キャパシティプランニング ― リソースを最大限に活かすサイト分析・予測・配置 スケーラブルWebサイト 実践ハイパフォーマンスMySQL 第3版 ウェブオペレーション ―サイト運用管理の実践テクニック (THEORY/IN/PRACTICE) SQLアンチパターン インターネットのカタチ―もろさが織り成す粘り強い世界― ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化 Linuxの教科書―ホントに読んでほしいroot入門講座 (IDGムックシリーズ)