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

VolumePluginの仕組みと実装解説

0f5f81b602e9ad7f24e7ebe9b994d04c?s=47 kyo
February 22, 2021

 VolumePluginの仕組みと実装解説

0f5f81b602e9ad7f24e7ebe9b994d04c?s=128

kyo

February 22, 2021
Tweet

Transcript

  1. VolumePluginの仕組みと実装解説

  2. varsion: v2 name: "Kyohei Mizumoto" role: "SRE" interests: - "kubernetes"

    - "public cloud" - "golang" twitter: "@kyohmizu" url: "https://kyohmizu.com/" whoami
  3. 今⽇話すこと VolumePluginの概要 Volume作成の仕組み 実装解説 VolumeManager VolumePlugin (emptyDir/ConfigMap/Secret)

  4. 注意点 kubernetes v1.20.2ベースでお話しします Linuxノードに直接作成するVolumeが対象です (Windowsノード、CSI等は取り扱いません) 理解不⾜により内容に誤りがある可能性があります…︕

  5. kubeletについて こちらを参照 https://speakerdeck.com/bells17/kubelet

  6. VolumePluginについて kubelet内で動作するPlugin pod.spec.volumesに基づいてノード上にVolumeを作成する Volumeの種類ごとにPluginが⽤意されている https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#volume-v1-core

  7. Volume作成の仕組み

  8. 引⽤︓https://speakerdeck.com/bells17/kubelet?slide=17

  9. None
  10. None
  11. Volume作成の仕組み desired state of world ノードに作成・アタッチすべきVolume⼀覧 actual state of world

    ノードに作成・アタッチされたVolume⼀覧 desired state of world populator ノードにスケジュールされたPod⼀覧からdswを更新する reconciler dswとaswを⽐較し、未作成のVolumeの作成とaswの更新を⾏う
  12. 実装解説

  13. 実装解説 VolumePlugin定義 初期化 (kubelet起動時) Volume作成の流れ VolumePluginの実装 emptyDir ConfigMap Secret

  14. 実装解説 emptyDir/ComfigMap/Secretの保存パスについて Secretはメモリ領域(tmpfs)に作成される ComfigMap/Secretの動的更新と修復 emptyDirのv1.20での修正内容

  15. 実装解説 資料のリンク https://gist.github.com/kyohmizu/23ab1e76ebc2a2984694b144a0be9b78