Hejdaの見る夢

一人前のエンジニアを目指して頑張ったこととかをつらつら書くブログ

Japan Container Days v18.04に行ってきた時の個人メモ

日時

2018.04.19(Thu) @ BELLESALLE KANDA

イベントページ

containerdays.jp

Twitter

twitter.com

keynote K-1 Production User Stories

サイバーエージェントにおけるプライベートコンテナ基盤AKEを支える技術

  • 登壇
  • AKEとは
  • AKEの特徴
    • k8s & swarm(マルチコンテナオートスケールエンジン)
      • docker swatm
      • kubernetes
    • openstak integration
      • openstackのintegrationが使用可能
    • L4/L7 ロードバランサ
      • cloud provider integrationで実装
      • ingress controller
        • GKE
          • 1step
        • nginx
          • 数step
    • アドオン機能(datadog, kibana, fluentd etc)
      • datadog, prometeus
      • kibana, fluentd
    • アドテクようにチューニング済み
      • network
      • k8s
      • kernel
      • hypervisor
    • container runtime
      • これから実装

マイクロサービスアプリケーションとしての機械学習

  • 登壇
    • Takuma Yamaguchi(Mercari)

"Yahoo! JAPANのKubernetes-as-a-Service"で加速するアプリケーション開発

  • 登壇
  • 構成
  • サービス
    • いい買い物の日
  • 開発フローの改善
    • k8s導入前
      • jenkinsを中心にテストをデプロイ
      • リリースまの時間
        • 数時間
      • 障害調査
        • 全サーバのログ集め
    • k8s導入後
      • コンコースが中心のテストとデプロイ
      • github上でデプロイまでいける?
      • リリースまの時間
        • 10分程度
      • 障害調査
        • splunkによるログ検索やグラフ化
  • k8s導入で大変だったこと
    • 考え方/設計方針のスイッチ
  • 今後実施したいこと
    • worker nodeの適正数の自動算出
    • 共通機能の切り出し
    • リリース手段の検討
  • Kubernetes as a service
    • 特徴
      • セルフヒーリング
      • ゼロダウンタイムのアップグレード
      • クラスタのアドオン
    • 価値
      • 煩雑なk8sのオペレーションから運用者を開放する
    • 要件
      • スケーラブル
        • 管理対象が数万台でも問題なく動作する
      • 非同期モデル
        • マシン(VM)の準備などの処理が完了するまで時間がかかる
      • 堅牢性
        • 処理が失敗しても再開出来る
    • kubernetes as a service on kubernetes
      • 有用な機能
        • CustomResourceDefinitions(CRD)
        • カスタムコントローラの実装
  • まとめ

CFP C-1 (13:00-13:40)

Custom MetricsとMultiple Metricsを使ってKubernetesのクラスタの強みを最大限活用する

  • 登壇
  • wontedly
    • multi cloud
  • HPA
    • Horizontal Pod Autoscalers
  • なぜ検討するか
    • 突然のスパイクにも勝てるインフラ
    • microservicesをする上でscaleの課題を無くす
    • 新規サービスも反映出来るgeneralな設定

speaker decで資料公開

Container Networking Deep Dive

C-2

Spinnakerを利用したKubernetesへの継続的デリバリ

  • 登壇
    • Takashi Mizouchi(AP Communications)
  • 最初は基礎的な話
  • spinnakerとは
    • 用途
      • k8s上でCI/CDをするツール
      • CI/CDの機能は無い
    • Netflixの作ったOSS
    • マルチクラウド対応
    • アプリケーションの自動デプロイに必要な機能搭載
  • 機能
    • 複数のデプロイメント方法
      • red/black deploy(blue/greenと同じ)
      • rolling red/black deploy(rolling deployと同じ)
      • canary deploy(カナリアデプロイ)
    • 進捗状況の通知
      • mail, slack
  • その他の機能
    • white-listed execution windows
    • chaos monkey integration
    • enable monitoring
      • datadog
      • prometheus
  • 所感
    • CDする上で必要な機能が過不足無く揃っている
    • spinnaker上でk8sのコンポーネントを作成出来るのは便利
    • 機能充実が進んでおり、今後も期待

CFP C-3

Helmを利用したKubernetes as a Serviceの実装

  • 登壇
    • Motohiro Otsuka(NEC Solution Innovators)
  • helm
    • k8sにおけるパッケージマネージャ
  • KaaSを実現する
    • k8sでhelmを使って、k8sをデプロイする
  • demo
    • KaaSでnginxをデプロイする

Google Kubernetes Engineにおけるバッチ処理のパターン

  • 登壇

    • Shota Yoshikai(Kabuku)
  • gkeにおけるバッチ処理

    • どのようなパターンがあるか
    • 構成例
  • バッチ処理の定義

    • 数秒から、数時間かかる
    • 非同期(今回のみ)
  • バッチ処理のパターン

    • k8sのjob
    • メッセージキューイングと合わせる 
  • k8sのjob
    • 一度きりの処理を実行させるためのコンテナ
      • 処理が終わるとコンテナが終了
    • k8sの標準
    • リトライ機能
  • jobのみを使う構成
    • メリ
    • デリ
      • jobの数が増えると管理が肥大化
  • メッセージキューイング
    • メリ
      • jobのみの構成の問題解決
        • リソースの負荷軽減
      • 処理順番を制御
    • デリ
  • クラウドのメッセージキューイング
    • GCP
      • Cloud Pub/Sub
  • 構成例
    • タスクのリトライ
    • 3D解析
    • CPU/GPUをともに使う

C-4

『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法!

  • 登壇
    • Kazuto Kusama(Pivotal)
  • アンケート
    • 参加者の46%が本番環境でコンテナ運用している
  • なぜコンテナが普及しないのか
    • 技術的に楽しい
    • コンテナは辛いとこがある
  • なぜつらいのか
    • コンテナ技術は抽象度が低すぎる
    • エンジニアがカバーしないといけない責任範囲が広い
    • k8sはgoogleのbrogが元
      • googleのエンジニアだから出来る…
      • googleの社員だから理解出来る…
  • クラウドについて
    • 10年前
      • IaaSの基礎
    • 5年前
      • 自動化
    • 循環している…
  • PaaS
    • エントリーポイントは変わっていないが、バックアンドは日々進化している
  • Serverless
    • FaaS(function as a service)
    • BaaS(backend as a service)
  • CaaS,PaaS,Serverlessのうち何を採択するか
    • どの選択肢のメリットを取るか
    • CNCF Serverless Whitepaper
    • CaaSのメッリット
      • 柔軟性
    • PaaSのメリット
      • 開発に集中できる
    • FaaSのメリット
      • スケーラブル
  • 評価するべき点
    • 強靭性
    • スケーラビリティ
    • パフォーマンス 
    • アプリケーションはステートフルかステートレスか
    • アプリケーションの更新頻度
  • 潜在的なコストも考慮
    • 誰もが一からアプリを作れる恵まれた環境にいるわけではない
    • 依存サービスとの関係性
    • CaaSにおけるセキュリティの問題
    • ベストプラクティスへの取り組み
    • ベンダーロックインへの考え方

A-5

Istioと共にマイクロサービスに立ち向かえ!

  • 登壇
    • Aya Igarashi(Z Lab)

https://speakerdeck.com/ladicle/istiotogong-nimaikurosabisunili-tixiang-kae