Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Seeking_Container_入門_2021.pdf

6ed12627fec46a135f1bce5d56f3568e?s=47 nwiizo
April 22, 2021
360

 Seeking_Container_入門_2021.pdf

2021年04月22日 #技育CAMP のコンテナ技術の資料
https://github.com/nwiizo/2020_gtb_container_work

超大作ではなく雑多なまとめ集になります。

6ed12627fec46a135f1bce5d56f3568e?s=128

nwiizo

April 22, 2021
Tweet

Transcript

  1. None
  2. ⚫ ⚫ ⚫ ⚫

  3. None
  4. None
  5. 喧嘩商売より引用

  6. None
  7. ダニング=クルーガー効果 で検索してください

  8. ⚫ ⚫ ⚫ ⚫ ⚫

  9. #技育CAMP で見た!といったら Twitter やFacebook で (インスタはくそみたいな投稿しかしてないので見 つけても申請しないでください) DM等の質問に対応します (その時の発言は個人の見解であって、所属組織を代表するものではありません。)

  10. None
  11. ⚫ ⚫

  12. ⚫ ⚫ ⚫ 一部コマンドは docker container 及び docker image コマンドに再編集されました

  13. • •

  14. • • • • • •

  15. • • • • • •

  16. None
  17. None
  18. None
  19. ⚫ ⚫

  20. ⚫ ⚫ ⚫

  21. ⚫ ⚫ https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#leverage-build-cache Leverage build cache

  22. ⚫ ⚫ https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#leverage-build-cache Leverage build cache

  23. ⚫ ⚫

  24. ⚫ ⚫ ⚫ ⚫ ⚫

  25. ⚫ ⚫

  26. ⚫ ⚫ ⚫ ⚫

  27. ⚫ ⚫ ⚫ • •

  28. ⚫ ⚫ ⚫ ⚫

  29. ⚫ ⚫

  30. ⚫ ⚫ ⚫ ⚫ local remote

  31. ⚫ ⚫ ⚫ 最初に実行される

  32. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ Dockerfile リファレンス https://docs.docker.com/engine/reference/builder/

  33. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ https://docs.docker.com/develop/develop-images/dockerfile_best-practices/

  34. • • • • •

  35. None
  36. None
  37. None
  38. None
  39. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫

  40. https://docs.docker.com/docker-hub/builds/automated-testing/

  41. None
  42. ⚫ https://docs.docker.com/docker-hub/builds/automated-testing/

  43. OSパッケージの脆弱性検知

  44. None
  45. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫

    ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ https://12factor.net/ja/
  46. ⚫ ⚫ https://12factor.net/ja/codebase

  47. ⚫ ⚫ ⚫ https://12factor.net/ja/codebase

  48. ⚫ ⚫ ⚫ https://12factor.net/ja/dependencies

  49. ⚫ ⚫ ⚫ ⚫ ⚫ https://12factor.net/ja/config

  50. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ https://12factor.net/ja/config

  51. ⚫ ⚫ ⚫ ⚫ 従来型のVMは全てを内包 The Twelve Factorsは疎結合

  52. ⚫ ⚫ ⚫

  53. ⚫ ⚫ ⚫

  54. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫

  55. ⚫ ⚫ ⚫

  56. ⚫ ⚫ ⚫

  57. ⚫ ⚫ ⚫ https://adam.herokuapp.com/past/2011/5/9/applying_the_unix_process_model_to_web_apps/

  58. ⚫ ⚫ ⚫ https://lwn.net/Articles/191059/ Golang HTTP Server Graceful Shutdown

  59. ⚫ ⚫ ⚫ ⚫ https://lwn.net/Articles/191059/

  60. ⚫ ⚫ ⚫ ⚫ ⚫

  61. ⚫ ⚫

  62. ⚫ ⚫ 動作するきれいなコード: SeleniumConf Tokyo 2019 基調講演文字起こし+α

  63. ⚫ ⚫ ⚫ ⚫

  64. ⚫ ⚫ https://kubernetes.io/docs/concepts/cluster-administration/logging/ Logging at the node level Using a

    node logging agent Streaming sidecar container Exposing logs directly from the application Sidecar container with a logging agent
  65. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫

  66. https://learning.oreilly.com/library/view/beyond-the-twelve-factor/9781492042631/ @_inductor_

  67. 分散システムもDockerも何も分からんのにKubernetesに入門するけど大丈夫ですか?

  68. None
  69. None
  70. None
  71. None
  72. None
  73. None
  74. None
  75. None
  76. None
  77. None
  78. ⚫ ⚫ ⚫ https://ai.google/research/pubs/pub43438 Large-scale cluster management at Google with

    Borg
  79. ⚫ ⚫

  80. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫

  81. ⚫ ⚫ replicaset.yaml

  82. None
  83. None
  84. None
  85. None
  86. None
  87. None
  88. None
  89. None
  90. None
  91. None
  92. None
  93. None
  94. None
  95. None
  96. None
  97. None
  98. ⚫ ⚫ ⚫ ⚫

  99. None
  100. None
  101. None
  102. None
  103. None
  104. None
  105. None
  106. None
  107. None
  108. None
  109. None
  110. ⚫ ⚫

  111. None
  112. テンプレート containerの変更 v1 v2

  113. テンプレート containerの変更 v1 v2

  114. None
  115. None
  116. None
  117. None
  118. None
  119. None
  120. None
  121. None
  122. None
  123. None
  124. https://github.com/nwiizo/2020_gtb_container_work

  125. None
  126. None
  127. ⚫ ⚫

  128. ⚫ ⚫

  129. ⚫ ⚫

  130. ⚫ ⚫

  131. ⚫ ⚫

  132. ⚫ ⚫ ⚫

  133. ⚫ ⚫

  134. ⚫ ⚫

  135. ⚫ ⚫ ⚫ ⚫ ⚫

  136. https://kubernetes.io/docs/concepts/overview/components/#kube-controller-manager

  137. • • • Garbage Collection https://kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/

  138. ⚫ ⚫

  139. ⚫ ⚫ ⚫ ⚫ ⚫

  140. None
  141. None
  142. None
  143. None
  144. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫

  145. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫

    ⚫ ⚫ ⚫ ⚫ ⚫ ⚫
  146. None
  147. None
  148. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ IX. 廃棄容易性 https://12factor.net/ja/disposability

  149. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/

    Container Lifecycle Hooks
  150. None
  151. None
  152. ⚫ ⚫ ⚫ ⚫ The Gotchas of Zero-Downtime Traffic /w

    Kubernetes - Leigh Capili, Weaveworks https://kccncna19.sched.com/event/Uads/the-gotchas-of-zero-downtime-traffic- w-kubernetes-leigh-capili-weaveworks
  153. ⚫ ⚫ The Gotchas of Zero-Downtime Traffic /w Kubernetes -

    Leigh Capili, Weaveworks https://kccncna19.sched.com/event/Uads/the-gotchas-of-zero-downtime-traffic- w-kubernetes-leigh-capili-weaveworks @tukejonny 談
  154. ⚫ ⚫ The Gotchas of Zero-Downtime Traffic /w Kubernetes -

    Leigh Capili, Weaveworks https://kccncna19.sched.com/event/Uads/the-gotchas-of-zero-downtime-traffic- w-kubernetes-leigh-capili-weaveworks
  155. None
  156. https://12factor.net/ja/config

  157. ⚫ ⚫ ⚫ ⚫ https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/

  158. None
  159. None
  160. ⚫ ⚫ ⚫ ⚫ https://kubernetes.io/docs/tasks/run-application/configure-pdb/

  161. None
  162. None
  163. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫

  164. None
  165. None
  166. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫

  167. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫

  168. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫

  169. None
  170. None
  171. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ Vertical Pod

    Autoscaling Horizontal Pod Autoscaler
  172. None
  173. None
  174. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫

  175. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ この辺は別途説明が必要なので割愛だお

  176. None
  177. None
  178. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫

  179. ⚫ ⚫ ⚫

  180. ⚫ ⚫

  181. ⚫ ⚫

  182. ⚫ ⚫

  183. ⚫ ⚫ ⚫ ⚫

  184. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫

  185. ⚫ ⚫ ⚫ ⚫      

     
  186. ⚫ ⚫ ⚫ ⚫ ⚫

  187. None
  188. ⚫ ⚫ ⚫ ⚫

  189. ⚫ Docker/Kubernetes開発・運用のための セキュリティ実践ガイド

  190. None
  191. None
  192. ⚫ ⚫ ⚫ ⚫ ⚫

  193. None
  194. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫

  195. ⚫ ⚫ ⚫ https://github.com/cncf/toc/blob/master/DEFINITION.md 最近日本語が登場したので差し替えます. ありがとう @yokawasa さん

  196. ⚫ ⚫ ⚫ https://github.com/cncf/toc/blob/master/DEFINITION.md 最近日本語が登場したので差し替えます. ありがとう @yokawasa さん

  197. None
  198. … … … ⚫ ⚫ ⚫

  199. ⚫ ⚫ ⚫

  200. ⚫ Building Microservices ⚫ Production-Ready Microservices

  201. ⚫ ⚫ ⚫ マイクロサービスパターン 実践的システムデザインのためのコード解説 書籍紹介より

  202. ⚫ ⚫ ⚫ Site Reliability Engineering

  203. https://github.com/cncf/presentations

  204. None
  205. 206

  206. 207

  207. None
  208. • • • •

  209. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫

  210. https://kubernetes.io/docs/concepts/overview/components/#kube-controller-manager ⚫ ⚫

  211. ⚫ ⚫ ⚫

  212. None
  213. ⚫ ⚫ ⚫ ⚫ ⚫ Table: Human

  214. ⚫ ⚫ ⚫ https://kubernetes.io/docs/concepts/extend-kubernetes/operator/

  215. None
  216. ⚫ ”Site Reliability Engineering Eliminating Toil” より 引用。

  217. ⚫ ⚫ ⚫ ⚫ ⚫

  218. ⚫ ⚫ ⚫ ⚫ Level Triggering and Reconciliation in Kubernetes

    https://hackernoon.com/level-triggering-and-reconciliation-in-kubernetes-1f17fe30333d ※ のように漏れが発生する場合がある これから学ぶKubernetesのReconciliation Loop https://speakerdeck.com/yosshi_/korekaraxue-hukubernetesfalsereconciliation-loop
  219. ⚫ ⚫ ⚫ ⚫ ⚫ Operator Capacity Levels https://sdk.operatorframework.io/docs/advanced-topics/operator-capabilities/operator-capabilities/ 様々なオペレーターが載っているサイト

  220. None
  221. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫

  222. None
  223. コードの雛型/ビルドファイル/テスト 環境構築スクリプトなど開発に必要な一 式を生成してくれるSDK Kubebuilder のサブプロジェクトで マニュフェストやコードを生成 controller 開発に必要なライブラリー セットOperatorSDKでも利用 Kubernetes

    のClient ライブラリで、 controller-runtime様々な処理で利用さ れる
  224. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ https://godoc.org/github.com/kubernetes-sigs/controller-runtime/pkg

  225. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ KubeBuilder Design Principles https://github.com/kubernetes-sigs/kubebuilder/blob/master/DESIGN.md

    api/YY/XX_types.go
  226. None
  227. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫

  228. ⚫ ⚫ ⚫ ⚫

  229. ⚫ ⚫ ⚫

  230. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫

    ⚫ ⚫ ⚫ ⚫
  231. ⚫ ⚫ ⚫

  232. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫

  233. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ https://kubernetes.io/blog/2019/03/21/a-guide-to-kubernetes-admission-controllers/

  234. ⚫ ⚫ ⚫ ⚫ ⚫

  235. ⚫ ⚫ ⚫ ⚫ ⚫

  236. None
  237. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫

  238. ⚫ ⚫

  239. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫

  240. ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫

  241. None
  242. ※裏側では後述する技術を使いまくってる

  243. None