zoukankan      html  css  js  c++  java
  • [rook] rook的控制流

    以下是rook为一个pod准备可用块存储的过程:

    1. rook operator运行,并且在k8s每台机器上运行一个rook agent的pod;

    2. 用户创建一个pvc,并指定storageclass使用rook.io/block provisionor;

    3. operator provisionor的Provision()函数被调用,用以在集群中创建一个block image。此时,Provision阶段已完成,pvc/pv被考虑绑定到一起;

    4. 当消费该pvc的pod被创建时,kubelet将会调用Rook Flexvolume的Mount()函数,用以消费预定的存储;

    ps:kubelet调用的Mount()是一个阻塞型的函数,只有在driver的mapping/mounting操作完成且agent同步了该操作后,才会继续往下执行。

    5. 随后,agent将会按照CRD的描述创建一个volume并attach到该物理机上;(?The agent then creates a volume attach CRD that represents the attachment of the cluster volume to the node. )

    6. 接着,agent将volume map到本地机器上,并更新CRD的状态以及设备的路径值(例如/dev/rbd0)

    7. 控制权接着转交给driver,如果mapping能够成功执行,则driver将把指定的设备mount到指定的路径上。若在配置文件中还指明了文件系统的类型,则driver还会对该卷进行文件系统格式化操作。

    8. driver将反馈kubelet Mount()操作已成功 

  • 相关阅读:
    「UVA12293」 Box Game
    「CF803C」 Maximal GCD
    「CF525D」Arthur and Walls
    「CF442C」 Artem and Array
    LeetCode lcci 16.03 交点
    LeetCode 1305 两棵二叉搜索树中的所有元素
    LeetCode 1040 移动石子直到连续 II
    LeetCode 664 奇怪的打印机
    iOS UIPageViewController系统方法崩溃修复
    LeetCode 334 递增的三元子序列
  • 原文地址:https://www.cnblogs.com/elaron/p/8037851.html
Copyright © 2011-2022 走看看