Recap: [Code fresh] Deploying to kubernetes thousands of times per day @kuber...Masaya Aoyama
Kubernetes Meetup #9 @CyberAgent は KubeCon + CNCon 2017 North America Austin の Recap スペシャルということで、「Deploying to Kubernetes Thousands of Times Per Day」 についてお話させていただきました。
High Velocity の重要性と、CI/CD Pipeline を作るときに注意するべきポイントを話した上で、CodeFresh について紹介しました。
This presentation was used for Japan Container Days 2018.
I explained the important point to use the k8s on Production environment for Japanese Audience.
Recap: [Code fresh] Deploying to kubernetes thousands of times per day @kuber...Masaya Aoyama
Kubernetes Meetup #9 @CyberAgent は KubeCon + CNCon 2017 North America Austin の Recap スペシャルということで、「Deploying to Kubernetes Thousands of Times Per Day」 についてお話させていただきました。
High Velocity の重要性と、CI/CD Pipeline を作るときに注意するべきポイントを話した上で、CodeFresh について紹介しました。
This presentation was used for Japan Container Days 2018.
I explained the important point to use the k8s on Production environment for Japanese Audience.
Kubecon NA 2019 Recap: Your Path to Production Ready Kubernetes hosted by Wea...Tomohiro Tsuchida
Kubernetes Meetup Tokyo #26
Kubecon NA 2019 Recap: Your Path to Production Ready Kubernetes hosted by Weaveworks
Original Workshop materials:
“Created by Weaveworks / Derived from material create by Weaveworks. Original available at https://tinyurl.com/kubecon-2019-workshop”
2022/3/24に開催した「オンプレML基盤 on Kubernetes」の資料です。機械学習モデルの開発者が、よりモデルの開発にのみ集中できるようにすることを目指して開発している「LakeTahoe(レイクタホ)」について紹介します。
https://ml-kubernetes.connpass.com/event/239859/
2022/3/24に開催した「オンプレML基盤 on Kubernetes」の資料です。オンプレミス環境のKubernetesを使って構築した機械学習基盤の開発、運用の取り組みをご紹介します。
https://ml-kubernetes.connpass.com/event/239859/
4. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
私のミッション
5. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
私のミッション
5
Kubernetes Cluster Admin
としてホスティング環境を提供する
6. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
Why
6
エンジニアがアプリケーションの
開発に注力できる環境を作るため
7. Copyright (C) 2018 Yahoo 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) 2018 Yahoo 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) 2018 Yahoo Japan Corporation. All Rights Reserved.Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
戦いの日々
10. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
OS問題
10
CentOS 7.xでIssue踏みまくり。
Container Linux化を目指してます。
11. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
Update時間かかる問題
11
OSSを使おうとした
• kubeadm → Production非推奨
• kubespray → Updateに4時間!
独自にIaC化。それでも40分くらい。
Container Linux化でおそらく変わる。
12. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
Updateの安全性問題
12
安全にKubernetes Updateしたい。
• 利用者の使い方にもよってしまう
• サービスの瞬断が発生しうる状況
Service Discoveryが必要?
13. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
権限管理問題
13
マルチテナントで提供
• 他のチームのアプリは操作不可能に
• Clusterの権限は利用者に付与しない
KubernetesのRBACで権限管理。
14. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
Fat Image問題
14
Docker Imageが大きすぎ
• Pullに時間がかかる
• デプロイやスケールが遅い
ネットワークの調整(10G)で対応。
利用者には小さくしてもらうことを呼びかけ。
15. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
セキュリティ問題
15
役割と責任範囲の分離のため
• NodeにSSHさせない。
• ホストOSのdocker.sockは使用禁止。
• マルチテナントなのでPod間通信を抑制。
Pod Security Policy/Pod Network Policy
サーバのアカウント設定で対応。
16. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
Kubernetesのリリースサイクル問題
16
バージョンアップが早い
• 3ヶ月に1回マイナーバージョンが上がる
• 2017/09 v1.8 → 2018/09 v1.12
• キャッチアップが追いつかない
ひたすら追いかける
17. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
more and more and more …
17
• Multiple Zone/Federation
• Stateless or Stateful(Storage)
• キャパシティプランニング
• モニタリング(Prometheus)
• コンテナのログは消えますよね
…
18. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
得た学び
19. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
得た学び
19
コンテナをProductionで動かす時は
1. 管理者/利用者を分けましょう
2. マルチテナント or シングルテナント
を決めましょう
20. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
管理者/利用者を分ける
20
Node
Orchestration
Container アプリを作る人。
Containerの動作環境を
管理する人。
21. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
管理者/利用者を分ける
21
アプリ開発者が
アプリの開発に注力するため。
22. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
マルチテナント or シングルテナント
22
マルチテナント
• クラスタ数が少なくて済む
• サーバリソース(CPU/Memory)
の有効活用
23. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
マルチテナント or シングルテナント
23
シングルテナント
• 権限管理が比較的楽
• コンテナ間通信の防止が不要
• Statefulを実現しやすい
• スケールを担保しやすい
24. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
マルチテナント or シングルテナント
24
正解はありません。
状況によってどちらが適切かの
判断が必要。
25. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
心がけていたこと
26. Copyright (C) 2018 Yahoo Japan Corporation. All Rights Reserved.
心がけていたこと
26
• とにかくTry & Errorをしよう
• 早く失敗しよう
• ミニマムにシンプルに始めよう