日時:2019年1月31日 18:50~
内容:Mix Leap Study #32 - めっちゃわかるAIとKubernetes(GCPUG共催)
Kubernetes と Yahoo! JAPAN の取り組み
内容:Mix Leap Study #32 - めっちゃわかるAIとKubernetes(GCPUG共催)
Kubernetes と Yahoo! JAPAN の取り組み
- 資料
- kubernetes クバネテス
- kubernetes 3ヶ月に一度のマイナーバージョンアップ
- yahoo 200+ kubernetesクラスタを運用
- kubernetes as a Service をZラボが提供
- Linuxコンテナ システムの他の部分から分離されたプロセス。プロセスがシステムの他の部分に影響しないように隔離し、制限。
- Docker コンテナの実行と管理を行うソフトウェア。ソフトウェアの開発を変えた。
- イミュータブルでポータブルな性質だから、自動化・スケジューリングがしやすい。
- kubernetesはポータブルである。⇒どの環境で動く
- kubernetesは成長している。⇒他のマネージドよりも利用者数が多い。
- なぜkubernetesか?機能面
- 頻繁なデプロイに耐えられる非常に優れた機能を持つ
- 時間のかかるデプロイは問題があったときにの修正も遅れる。
- 頻繁なデプロイは問題もすぐ修正でき、リスク低
- 宣言的設定→以前は順番に変更(インストール・デプロイ)をしないといけなかったが、「のぞましい状態」を記述した設定ファイルを反映する。宣言的設定によるロールバック。
- 自己回復機能「セルフヒーリング」→障害時(ノードが死んでも)に自動回復する。
- コンテナ中心のインフラ
- サーバリソースの隙間問題の解決
- vmの抽象化に加えて、itインフラも抽象化(ロードバランサーや永続ストレージ)
- kubernetesオブジェクト ワークロードやITインフラをアプリケーション指向に抽象化したもの
- Pod 複数コンテナと、ボリューム。デプロイの最小単位
- ReplicaSet コンテナの数を管理
- Deployment デプロイを管理。内部的にはReplicaSetを使用。
- Service 仮想IPとポートを持ち、ラベルセレクタによるPodのグルーピングを行う。Service名によるサービスディスカバリ。
- minikube ローカル開発用クラスタ開発
アプリケーションを Kubernetes 上で動作させるまでの道のり
- 資料
- Podは一時的なオブジェクトとして扱えるようにすべき
- 特定のノードに依存しない
- The Twelve Factor App https://12factor.net/ja/
- kubernetes 絵本がある。
- Dockerfileのベストプラクティス
- エフェメラルであるべき
- コンテナごとに1つのプロセスを実行
- 不要なパッケージのインストールは避ける multi-stage build
- デプロイ 命令的なコマンド、命令的なオブジェクト操作、宣言的なオブジェクト操作
- 長期的には宣言的アプローチで管理すべき。
- セルフヒーリング、自立制御、更新、再現性、可逆性、監査、変更管理、レビュー、コンフリクト
- yamlにkubernetesの考えが詰まっている。
- kubectl .... dry-run -o yamlでyamlファイルのひな型を作る。
- kubectl explainでパラメータの意味を表示。
- kubectl apply -f 差分を検知して変更を反映する。
- Pod 最低限利用するリソース量を設定しないとゼロになる。
- livenessProbe コンテナの状態を監視。ダウンしたら再起動。
- ダウンタイムゼロで更新するオブジェクト
- GracefulShutdown アプリ自体をグレースフルシャットダウンできるように実装する必要がある。
- preStopフックで終了処理を実装
- ReadinessProbe アプリがリクエスト受けれるかを監視。起動が遅いアプリには設定したほうがよい。
- Service ロードバランス先の更新。
- Podの終了、Serviceのロードバランス先の更新は並列に実施される為、考慮が必要。
- クラスタのメンテナンスに対応する。
- kubectl draain node Podを退去する。
- Podが偏っている場合は一気に終了される為、障害となる。PodDisruptionBudgetを使うと防ぐことが可能。
KubernetesでWebサービスをリリースをするまでに必要なものは
- 資料
- Ecosystemは多い。Cloud Native Landscape (CNCF)
- Loggin Podからノードにログを吐いて、それをFulentがtailしてlogginへ送る
- Monitoring Agent型とPull型。kubernetesはPrometheus用のI/Fがある。
- Alerting metrics base/log base それぞれで監視
- CI/CD 色々ありすぎて戦国時代。
- Workflow Engine Scope
「じゃんけんマシン」で学ぶ機械学習とスマートIoT
- デベロッパーアドボケイト
- littleBitsの曲げセンサーモジュール
- littleBitsのArduinoとサーボモジュール
- Google Cloud Datalab → jupiter notebookで動いている
- 1Dから1Dへの線形変換:線形モデル
- ある空間から他の空間へ変換してくれる。
- 式の重みを機械学習で算出する。
- TensorFlow 機械学習開発のためのオープンソース
- ソフトマックス どれぐらいの確率か。
- クロスエントロピー どれだけ間違っているか。
- BQML bigqueryの中で同じ機械学習ができる。
- TensorFlow Object API 物体検知
- Google Cloud IoT Core
- TensorFlow で集合知でなにかできなか。
- Edge TPU
- TensorFlow用のCPU Googleから年内に発表!
https://app2.sli.do/event/76lvrzhz/questions P588
コメント
コメントを投稿