Copyright (C) 2018Yahoo Japan Corporation. All Rights Reserved.Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
私のミッション
5.
Copyright (C) 2018Yahoo Japan Corporation. All Rights Reserved.
私のミッション
5
Kubernetes Cluster Admin
としてホスティング環境を提供する
6.
Copyright (C) 2018Yahoo Japan Corporation. All Rights Reserved.
Why
6
エンジニアがアプリケーションの
開発に注力できる環境を作るため
7.
Copyright (C) 2018Yahoo Japan Corporation. All Rights Reserved.
Kubernetes導入前
7
チームA
チームB
End Users
VM or BareMetal(IaaS)
Dev/Ops
Dev/Ops
Use
Use
アプリケーションの開発・運用
デプロイ・ロールバック
ランタイム管理
VIPなどのネットワーク設定
Kernelなどのバージョン管理・脆弱性対応
8.
Copyright (C) 2018Yahoo Japan Corporation. All Rights Reserved.
Kubernetes導入後
8
チームA
チームB
End Users
Kubernetes Cluster
deploy/publish
deploy/publish
Use
Use
Docker Imageの管理
アプリケーションの開発
デプロイ管理
Kubernetes
Cluster
Admin
Kubernetes自体の管理
Kernelのバージョン管理・脆弱性対応
VIPなどネットワーク設定
Docker
Image
Docker
Image
9.
Copyright (C) 2018Yahoo Japan Corporation. All Rights Reserved.Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
戦いの日々
10.
Copyright (C) 2018Yahoo Japan Corporation. All Rights Reserved.
OS問題
10
CentOS 7.xでIssue踏みまくり。
Container Linux化を目指してます。
11.
Copyright (C) 2018Yahoo Japan Corporation. All Rights Reserved.
Update時間かかる問題
11
OSSを使おうとした
• kubeadm → Production非推奨
• kubespray → Updateに4時間!
独自にIaC化。それでも40分くらい。
Container Linux化でおそらく変わる。
12.
Copyright (C) 2018Yahoo Japan Corporation. All Rights Reserved.
Updateの安全性問題
12
安全にKubernetes Updateしたい。
• 利用者の使い方にもよってしまう
• サービスの瞬断が発生しうる状況
Service Discoveryが必要?
13.
Copyright (C) 2018Yahoo Japan Corporation. All Rights Reserved.
権限管理問題
13
マルチテナントで提供
• 他のチームのアプリは操作不可能に
• Clusterの権限は利用者に付与しない
KubernetesのRBACで権限管理。
14.
Copyright (C) 2018Yahoo Japan Corporation. All Rights Reserved.
Fat Image問題
14
Docker Imageが大きすぎ
• Pullに時間がかかる
• デプロイやスケールが遅い
ネットワークの調整(10G)で対応。
利用者には小さくしてもらうことを呼びかけ。
15.
Copyright (C) 2018Yahoo Japan Corporation. All Rights Reserved.
セキュリティ問題
15
役割と責任範囲の分離のため
• NodeにSSHさせない。
• ホストOSのdocker.sockは使用禁止。
• マルチテナントなのでPod間通信を抑制。
Pod Security Policy/Pod Network Policy
サーバのアカウント設定で対応。
16.
Copyright (C) 2018Yahoo Japan Corporation. All Rights Reserved.
Kubernetesのリリースサイクル問題
16
バージョンアップが早い
• 3ヶ月に1回マイナーバージョンが上がる
• 2017/09 v1.8 → 2018/09 v1.12
• キャッチアップが追いつかない
ひたすら追いかける
17.
Copyright (C) 2018Yahoo Japan Corporation. All Rights Reserved.
more and more and more …
17
• Multiple Zone/Federation
• Stateless or Stateful(Storage)
• キャパシティプランニング
• モニタリング(Prometheus)
• コンテナのログは消えますよね
…
18.
Copyright (C) 2018Yahoo Japan Corporation. All Rights Reserved.Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
得た学び
19.
Copyright (C) 2018Yahoo Japan Corporation. All Rights Reserved.
得た学び
19
コンテナをProductionで動かす時は
1. 管理者/利用者を分けましょう
2. マルチテナント or シングルテナント
を決めましょう
20.
Copyright (C) 2018Yahoo Japan Corporation. All Rights Reserved.
管理者/利用者を分ける
20
Node
Orchestration
Container アプリを作る人。
Containerの動作環境を
管理する人。
21.
Copyright (C) 2018Yahoo Japan Corporation. All Rights Reserved.
管理者/利用者を分ける
21
アプリ開発者が
アプリの開発に注力するため。
22.
Copyright (C) 2018Yahoo Japan Corporation. All Rights Reserved.
マルチテナント or シングルテナント
22
マルチテナント
• クラスタ数が少なくて済む
• サーバリソース(CPU/Memory)
の有効活用
23.
Copyright (C) 2018Yahoo Japan Corporation. All Rights Reserved.
マルチテナント or シングルテナント
23
シングルテナント
• 権限管理が比較的楽
• コンテナ間通信の防止が不要
• Statefulを実現しやすい
• スケールを担保しやすい
24.
Copyright (C) 2018Yahoo Japan Corporation. All Rights Reserved.
マルチテナント or シングルテナント
24
正解はありません。
状況によってどちらが適切かの
判断が必要。
25.
Copyright (C) 2018Yahoo Japan Corporation. All Rights Reserved.Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
心がけていたこと
26.
Copyright (C) 2018Yahoo Japan Corporation. All Rights Reserved.
心がけていたこと
26
• とにかくTry & Errorをしよう
• 早く失敗しよう
• ミニマムにシンプルに始めよう