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()操作已成功 

  • 相关阅读:
    无参装饰器
    针对硬盘大于2TB,centos7系统安装问题说明
    Java与Python擅长领域
    Java数据类型
    编译型语言与解释型语言,强类型语言与弱类型语言,动态类型语言与静态类型语言
    Butterfly透明背景设置
    虚拟机重装系统
    手动删除软件垃圾
    清理C盘
    Gitee+HEXO搭建个人博客
  • 原文地址:https://www.cnblogs.com/elaron/p/8037851.html
Copyright © 2011-2022 走看看